IK.AM

@making's tech note


Paraya MicroのDockerイメージでHazelcastのクラスタリングを試す

🗃 {Middleware/AppServer/Payara}
🏷 Docker 🏷 Hazelcast 🏷 Payara 🏷 Payara Micro 
🗓 Updated at 2015-05-25T14:55:20Z  🗓 Created at 2015-05-25T14:55:20Z   🌎 English Page

前回の記事に続き、@kazuhira_rさんの記事「JCache(Hazelcast) on Payara Microを試す」の内容をDockerイメージで試してみました。

まずはかずひらさんのサンプルをビルド

$ git clone https://github.com/kazuhira-r/hazelcast-examples.git
$ cd payara-micro-jcache-example
$ mvn package
$ cd target

雑にホストネットワーク(--net=host)使ってマルチキャストでクラスタリングさせます。

ノード1

$ docker run --rm -it --net=host -v `pwd`:/tmp payaradocker/payara-micro:4.1.152.1.micro.oraclejdk8 java -jar payara-micro-4.1.152.1.jar --deploy /tmp/payara-micro-jcache-example.war

ノード2(ポートを変えます)

$ docker run --rm -it --net=host -v `pwd`:/tmp payaradocker/payara-micro:4.1.152.1.micro.oraclejdk8 java -jar payara-micro-4.1.152.1.jar --deploy /tmp/payara-micro-jcache-example.war --port 8081

ログを見ると、

ノード1には

Members [2] {
    Member [172.17.42.1]:5900 this
    Member [172.17.42.1]:5901
}
]]

ノード2には

Members [2] {
    Member [172.17.42.1]:5900
    Member [172.17.42.1]:5901 this
}
]]

が出ており、クラスタが構成されたことがわかりました。

記事のようにアクセスしてみます。

$ time curl "http://[Docker Host]:8080/payara-micro-jcache-example/rest/calc/add?a=10&b=2"
12
real	0m3.030s
user	0m0.007s
sys	0m0.005s

ノード1へのアクセスは3秒かかっていますが、、

$ time curl "http://[Docker Host]:8081/payara-micro-jcache-example/rest/calc/add?a=10&b=2"
12
real	0m0.030s
user	0m0.007s
sys	0m0.005s

キャッシュが共有されたノード2のアクセスはすぐに返りました。

できましたね。

Payara Micro直接叩くのと大差ありませんが、環境セットアップが楽です。


✒️️ Edit  ⏰ History  🗑 Delete