---
title: Paraya MicroのDockerイメージでHazelcastのクラスタリングを試す
tags: ["Docker", "Hazelcast", "Payara", "Payara Micro"]
categories: ["Middleware", "AppServer", "Payara"]
date: 2015-05-25T14:55:20Z
updated: 2015-05-25T14:55:20Z
---

[前回の記事](/#/entries/344)に続き、[@kazuhira_r](https://twitter.com/kazuhira_r)さんの記事「[JCache（Hazelcast） on Payara Microを試す](http://d.hatena.ne.jp/Kazuhira/20150523/1432366272)」の内容を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直接叩くのと大差ありませんが、環境セットアップが楽です。
