Hazelcast
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*Hazelcast [#mfb3b986]
** goal [#q461af38]
Hazelcastをjavaで動かす.
** What Hazelcast [#c861b721]
- インメモリ・データグリッドのフレームワーク
- オープンソース
- javaで動く.
** What in-memory data grid [#c5a232d3]
- キーと値の1対1でデータを管理
- 極めて単純なデータ構造であり, メモリ上で動かすので, デ...
- 検索やトランザクション管理には向いていない(というか, そ...
- メモリーにデータを分散して管理する.
- パーティションもできる.
** GetStarted [#t7d128f7]
[[Get Started with Hazelcast IMDG:https://hazelcast.org/g...
*** IntelliJの設定 [#fba6e8b2]
- [[ここ:https://hazelcast.org/download/]]からHazelcast I...
- intelliJで, プロジェクトを作成.
- プロジェクト作成後, クラスパスを指定
-- Project Structure -> Platform Setting -> SDKs -> 9.0 -...
-- ダウンロードし, 解答した「hazelcast-3.9.x」フォルダの...
*** サーバーのたて方 [#pdee5f8d]
- 新しいjavaファイルを作成. javaのファイル名を「GettingSt...
import com.hazelcast.core.*;
import com.hazelcast.config.*;
import java.util.Map;
import java.util.Queue;
public class GettingStarted {
public static void main(String[] args) {
Config cfg = new Config();
HazelcastInstance instance = Hazelcast.newHazelc...
Map<Integer, String> mapCustomers = instance.get...
mapCustomers.put(1, "Joe");
mapCustomers.put(2, "Ali");
mapCustomers.put(3, "Avi");
System.out.println("Customer with key 1: "+ mapC...
System.out.println("Map Size:" + mapCustomers.si...
Queue<String> queueCustomers = instance.getQueue...
queueCustomers.offer("Tom");
queueCustomers.offer("Mary");
queueCustomers.offer("Jane");
System.out.println("First customer: " + queueCus...
System.out.println("Second customer: "+ queueCus...
System.out.println("Queue size: " + queueCustome...
}
}
実行結果
Members {size:1, ver:1} [
Member [192.168.0.5]:5701 - f2eb4e2f-028e-4cf4-af5a-005...
]
Customer with key 1: Joe
Map Size:3
First customer: Tom
Second customer: Mary
Queue size: 2
2台目
Members {size:2, ver:2} [
Member [192.168.0.5]:5701 - f2eb4e2f-028e-4cf4-af5a-005...
Member [192.168.0.5]:5702 - dc880f43-e9d4-4ad4-8428-2ca...
]
12月 29, 2017 5:09:32 午後 com.hazelcast.core.LifecycleS...
情報: [192.168.0.5]:5702 [dev] [3.9.1] [192.168.0.5]:570...
Customer with key 1: Joe
Map Size:3
First customer: Mary
Second customer: Jane
Queue size: 4
mapは, <Integer, String>である. そのため, 2台目の場合は上...
Queueはpushしているので, 2台目のデータの数と同じである.
*** クライアントの動かし方 [#scbbef9a]
- 新しいjavaファイルを作成. javaのファイル名を「GettingSt...
package com.hazelcast.test;
import com.hazelcast.client.config.ClientConfig;
import com.hazelcast.client.HazelcastClient;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.IMap;
public class GettingStartedClient {
public static void main(String[] args) {
ClientConfig clientConfig = new ClientConfig();
clientConfig.addAddress("127.0.0.1:5701");
HazelcastInstance client = HazelcastClient.newHa...
IMap map = client.getMap("customers");
IQueue queue = client.getQueue("customers");
System.out.println("Map Size : " + map.size());
System.out.println("mapCustomers 1 : " + map.get...
System.out.println("Queue Size : " + queue.size(...
System.out.println("queueCustomers poll : " + qu...
}
}
実行結果
Members [3] {
Member [192.168.0.5]:5701 - f2eb4e2f-028e-4cf4-af5a-005...
Member [192.168.0.5]:5702 - dc880f43-e9d4-4ad4-8428-2ca...
}
Map Size : 3
mapCustomers 1 : Joe
Queue Size : 4
queueCustomers poll : Mary
とりあえず, サーバーで指定したgetMap(String)のStringと同...
** 内部について [#z7953b1a]
この2サイトに詳しい説明が書いてある.
- http://d.hatena.ne.jp/Kazuhira/20160928/1475077755
- http://d.hatena.ne.jp/Kazuhira/20161028/1477663801
パーティションでデータを保存しているため, 例えば4つサーバ...
> HazelcastはNodeを起動すると、指定された方法に沿って他の...
#ref(http://cdn-ak.f.st-hatena.com/images/fotolife/K/Kazu...
** 教えてもらったもの [#k597e712]
このリンク先の記事がとっても役に立つらしい
- https://hazelcast.com/resources/hazelcast-jet-datasheet/
** goal2 先輩の手伝い [#u4d6141d]
1.以下のテストを書いてほしいです。
・1つのローカル内で2つのノードに見立てて立ち上げ、デ...
・相手ノードのノード名と相手側のデータの2つの入力が揃...
・データをインクリメントしてそれを繰り返します
インプット:
1
アウトプット:
A : 1
B: 2
A : 3
B: 4
A : 5
B : 6
A: 7
B : 8
A: 9
2.調査:ノード間でトポロジー(ツリーとかリングとか)を...
3.調査:送信するデータを圧縮したいとき、それをサポート...
** 1 コード [#j32ec29b]
package jp.ac.uryukyu.ie.aka;
import com.hazelcast.core.*;
import com.hazelcast.config.*;
public class Incrementer {
public static void main(String[] args){
int initData = 0; // dataの初期値
int maxData = 10; // dataの最大値
int nodeNum = 2; // 最終的なnodeの数
char nodeBaseName = 'A';
// nodeの生成
Config config = new Config();
HazelcastInstance instance = Hazelcast.newHazel...
// 名前の生成とアウトプット
int memberSize = instance.getCluster().getMembe...
String localName = String.valueOf((char)(nodeBa...
String remoteName = String.valueOf((char)(nodeB...
System.out.println("local : " + localName);
System.out.println("remote : " + remoteName);
// 自分と相手のデータ構造体Topicの作成, get
ITopic<Integer> localTopic = instance.getTopic(l...
ITopic<Integer> remoteTopic = instance.getTopic(...
// 自分のTopicはリッスンする.
localTopic.addMessageListener(message -> {
// 送られてきたデータを受け取る
int data = message.getMessageObject();
System.out.println("from : " + remoteTopic.g...
System.out.println("data : " + data);
// maxDataに到達するまで, 相手にdata + 1を送...
if(data < maxData) {
remoteTopic.publish(data + 1);
}else{
//instance.getLifecycleService().termina...
Hazelcast.shutdownAll();
}
});
// 相手のTopicにデータを送る.
remoteTopic.publish(initData);
}
}
** 実行結果 [#fd9c0e80]
Node A
local : A
remote : B
Members {size:2, ver:2} [
Member [10.10.10.167]:5701 - 30098b8c-ebaf-479a-85ed-6f...
Member [10.10.10.167]:5702 - d7d30c33-ee10-43d8-aab4-b9...
]
from : B
data : 0
from : B
data : 2
from : B
data : 4
from : B
data : 6
from : B
data : 8
from : B
data : 10
Node B
Members {size:2, ver:2} [
Member [10.10.10.167]:5701 - 30098b8c-ebaf-479a-85ed-6f...
Member [10.10.10.167]:5702 - d7d30c33-ee10-43d8-aab4-b9...
]
local : B
remote : A
from : A
data : 1
from : A
data : 3
from : A
data : 5
from : A
data : 7
from : A
data : 9
** 2. ノード間でトポロジー(ツリーとかリングとか)を形成...
Q: ノード間でトポロジー(ツリーとかリングとか)を形成した...
A: 読めてないけど解説はありました.
http://docs.hazelcast.org/docs/latest-development/manual/...
ただ, AliceのTopologyManagerみたいなものはなく, プログラ...
http://docs.hazelcast.org/docs/latest-development/manual/...
** 3. 送信するデータを圧縮したいとき、それをサポートする...
Q: 送信するデータを圧縮したいとき、それをサポートする機能...
A: あるっぽいです.
https://blog.hazelcast.com/kryo-serializer/
Kryoというシリアライズ + 圧縮をするフレームワーク? 的なも...
** 参考サイト [#e924f21a]
- [Message](https://hazelcast.org/use-cases/messaging/)
- [Map](http://docs.hazelcast.org/docs/latest/manual/html...
- [Map Listener](http://docs.hazelcast.org/docs/latest-de...
- [Kryo](http://d.hatena.ne.jp/Kazuhira/20150425/14299467...
終了行:
*Hazelcast [#mfb3b986]
** goal [#q461af38]
Hazelcastをjavaで動かす.
** What Hazelcast [#c861b721]
- インメモリ・データグリッドのフレームワーク
- オープンソース
- javaで動く.
** What in-memory data grid [#c5a232d3]
- キーと値の1対1でデータを管理
- 極めて単純なデータ構造であり, メモリ上で動かすので, デ...
- 検索やトランザクション管理には向いていない(というか, そ...
- メモリーにデータを分散して管理する.
- パーティションもできる.
** GetStarted [#t7d128f7]
[[Get Started with Hazelcast IMDG:https://hazelcast.org/g...
*** IntelliJの設定 [#fba6e8b2]
- [[ここ:https://hazelcast.org/download/]]からHazelcast I...
- intelliJで, プロジェクトを作成.
- プロジェクト作成後, クラスパスを指定
-- Project Structure -> Platform Setting -> SDKs -> 9.0 -...
-- ダウンロードし, 解答した「hazelcast-3.9.x」フォルダの...
*** サーバーのたて方 [#pdee5f8d]
- 新しいjavaファイルを作成. javaのファイル名を「GettingSt...
import com.hazelcast.core.*;
import com.hazelcast.config.*;
import java.util.Map;
import java.util.Queue;
public class GettingStarted {
public static void main(String[] args) {
Config cfg = new Config();
HazelcastInstance instance = Hazelcast.newHazelc...
Map<Integer, String> mapCustomers = instance.get...
mapCustomers.put(1, "Joe");
mapCustomers.put(2, "Ali");
mapCustomers.put(3, "Avi");
System.out.println("Customer with key 1: "+ mapC...
System.out.println("Map Size:" + mapCustomers.si...
Queue<String> queueCustomers = instance.getQueue...
queueCustomers.offer("Tom");
queueCustomers.offer("Mary");
queueCustomers.offer("Jane");
System.out.println("First customer: " + queueCus...
System.out.println("Second customer: "+ queueCus...
System.out.println("Queue size: " + queueCustome...
}
}
実行結果
Members {size:1, ver:1} [
Member [192.168.0.5]:5701 - f2eb4e2f-028e-4cf4-af5a-005...
]
Customer with key 1: Joe
Map Size:3
First customer: Tom
Second customer: Mary
Queue size: 2
2台目
Members {size:2, ver:2} [
Member [192.168.0.5]:5701 - f2eb4e2f-028e-4cf4-af5a-005...
Member [192.168.0.5]:5702 - dc880f43-e9d4-4ad4-8428-2ca...
]
12月 29, 2017 5:09:32 午後 com.hazelcast.core.LifecycleS...
情報: [192.168.0.5]:5702 [dev] [3.9.1] [192.168.0.5]:570...
Customer with key 1: Joe
Map Size:3
First customer: Mary
Second customer: Jane
Queue size: 4
mapは, <Integer, String>である. そのため, 2台目の場合は上...
Queueはpushしているので, 2台目のデータの数と同じである.
*** クライアントの動かし方 [#scbbef9a]
- 新しいjavaファイルを作成. javaのファイル名を「GettingSt...
package com.hazelcast.test;
import com.hazelcast.client.config.ClientConfig;
import com.hazelcast.client.HazelcastClient;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.IMap;
public class GettingStartedClient {
public static void main(String[] args) {
ClientConfig clientConfig = new ClientConfig();
clientConfig.addAddress("127.0.0.1:5701");
HazelcastInstance client = HazelcastClient.newHa...
IMap map = client.getMap("customers");
IQueue queue = client.getQueue("customers");
System.out.println("Map Size : " + map.size());
System.out.println("mapCustomers 1 : " + map.get...
System.out.println("Queue Size : " + queue.size(...
System.out.println("queueCustomers poll : " + qu...
}
}
実行結果
Members [3] {
Member [192.168.0.5]:5701 - f2eb4e2f-028e-4cf4-af5a-005...
Member [192.168.0.5]:5702 - dc880f43-e9d4-4ad4-8428-2ca...
}
Map Size : 3
mapCustomers 1 : Joe
Queue Size : 4
queueCustomers poll : Mary
とりあえず, サーバーで指定したgetMap(String)のStringと同...
** 内部について [#z7953b1a]
この2サイトに詳しい説明が書いてある.
- http://d.hatena.ne.jp/Kazuhira/20160928/1475077755
- http://d.hatena.ne.jp/Kazuhira/20161028/1477663801
パーティションでデータを保存しているため, 例えば4つサーバ...
> HazelcastはNodeを起動すると、指定された方法に沿って他の...
#ref(http://cdn-ak.f.st-hatena.com/images/fotolife/K/Kazu...
** 教えてもらったもの [#k597e712]
このリンク先の記事がとっても役に立つらしい
- https://hazelcast.com/resources/hazelcast-jet-datasheet/
** goal2 先輩の手伝い [#u4d6141d]
1.以下のテストを書いてほしいです。
・1つのローカル内で2つのノードに見立てて立ち上げ、デ...
・相手ノードのノード名と相手側のデータの2つの入力が揃...
・データをインクリメントしてそれを繰り返します
インプット:
1
アウトプット:
A : 1
B: 2
A : 3
B: 4
A : 5
B : 6
A: 7
B : 8
A: 9
2.調査:ノード間でトポロジー(ツリーとかリングとか)を...
3.調査:送信するデータを圧縮したいとき、それをサポート...
** 1 コード [#j32ec29b]
package jp.ac.uryukyu.ie.aka;
import com.hazelcast.core.*;
import com.hazelcast.config.*;
public class Incrementer {
public static void main(String[] args){
int initData = 0; // dataの初期値
int maxData = 10; // dataの最大値
int nodeNum = 2; // 最終的なnodeの数
char nodeBaseName = 'A';
// nodeの生成
Config config = new Config();
HazelcastInstance instance = Hazelcast.newHazel...
// 名前の生成とアウトプット
int memberSize = instance.getCluster().getMembe...
String localName = String.valueOf((char)(nodeBa...
String remoteName = String.valueOf((char)(nodeB...
System.out.println("local : " + localName);
System.out.println("remote : " + remoteName);
// 自分と相手のデータ構造体Topicの作成, get
ITopic<Integer> localTopic = instance.getTopic(l...
ITopic<Integer> remoteTopic = instance.getTopic(...
// 自分のTopicはリッスンする.
localTopic.addMessageListener(message -> {
// 送られてきたデータを受け取る
int data = message.getMessageObject();
System.out.println("from : " + remoteTopic.g...
System.out.println("data : " + data);
// maxDataに到達するまで, 相手にdata + 1を送...
if(data < maxData) {
remoteTopic.publish(data + 1);
}else{
//instance.getLifecycleService().termina...
Hazelcast.shutdownAll();
}
});
// 相手のTopicにデータを送る.
remoteTopic.publish(initData);
}
}
** 実行結果 [#fd9c0e80]
Node A
local : A
remote : B
Members {size:2, ver:2} [
Member [10.10.10.167]:5701 - 30098b8c-ebaf-479a-85ed-6f...
Member [10.10.10.167]:5702 - d7d30c33-ee10-43d8-aab4-b9...
]
from : B
data : 0
from : B
data : 2
from : B
data : 4
from : B
data : 6
from : B
data : 8
from : B
data : 10
Node B
Members {size:2, ver:2} [
Member [10.10.10.167]:5701 - 30098b8c-ebaf-479a-85ed-6f...
Member [10.10.10.167]:5702 - d7d30c33-ee10-43d8-aab4-b9...
]
local : B
remote : A
from : A
data : 1
from : A
data : 3
from : A
data : 5
from : A
data : 7
from : A
data : 9
** 2. ノード間でトポロジー(ツリーとかリングとか)を形成...
Q: ノード間でトポロジー(ツリーとかリングとか)を形成した...
A: 読めてないけど解説はありました.
http://docs.hazelcast.org/docs/latest-development/manual/...
ただ, AliceのTopologyManagerみたいなものはなく, プログラ...
http://docs.hazelcast.org/docs/latest-development/manual/...
** 3. 送信するデータを圧縮したいとき、それをサポートする...
Q: 送信するデータを圧縮したいとき、それをサポートする機能...
A: あるっぽいです.
https://blog.hazelcast.com/kryo-serializer/
Kryoというシリアライズ + 圧縮をするフレームワーク? 的なも...
** 参考サイト [#e924f21a]
- [Message](https://hazelcast.org/use-cases/messaging/)
- [Map](http://docs.hazelcast.org/docs/latest/manual/html...
- [Map Listener](http://docs.hazelcast.org/docs/latest-de...
- [Kryo](http://d.hatena.ne.jp/Kazuhira/20150425/14299467...
ページ名: