外部の Play アプリケーションを cassandra クラスター (mesos 上の docker コンテナーで実行されている) に接続しようとしているときに、ここで奇妙な状況に直面しています。
問題は:
Cassandra ノードが 1 つしかない場合でも、Play アプリケーションから適切に接続できます。しかし、それに 2 つ目のノードを追加すると、どのノードにも接続できなくなります。
次のようにノードを配置しています。
最初のノード (SEED)
{
"id": "cassandra-seed",
"constraints": [["hostname", "CLUSTER", "docker-sl-vm"]],
"container": {
"type": "DOCKER",
"docker": {
"image": "cassandra:latest",
"network": "BRIDGE",
"portMappings": [ {"containerPort": 9042,"protocol": "tcp"} ]
}
},
"env": {
"CASSANDRA_SEED_COUNT": "1"
},
"cpus": 0.5,
"mem": 512.0,
"instances": 1,
"backoffSeconds": 1,
"backoffFactor": 1.15,
"maxLaunchDelaySeconds": 3600
}
この時点で、playy アプリを cassandra-seed に接続できます。
カサンドラノード2
{
"id": "cassandra",
"constraints": [["hostname", "CLUSTER", "docker-sl-vm"]],
"container": {
"type": "DOCKER",
"docker": {
"image": "cassandra:latest",
"network": "BRIDGE",
"portMappings": [ {"containerPort": 9042,"protocol": "tcp"} ]
}
},
"env": {
"CASSANDRA_SEED_COUNT": "1",
"CASSANDRA_SEEDS": "cassandra-seed.marathon.mesos"
},
"cpus": 0.5,
"mem": 512.0,
"instances": 1,
"backoffSeconds": 1,
"backoffFactor": 1.15,
"maxLaunchDelaySeconds": 3600
}
このノードが起動した後、それに接続することも、cassandra-seed に接続することもできません。
nodetool ステータスの結果:
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UJ 172.17.0.3 92.91 KB 256 ? ccf83479-beed-44f5-9e36-6c997fd8855c rack1
UN 172.17.0.2 96.96 KB 256 ? 1e42609d-ba3f-4c35-80c2-424a095b4db7 rack1
2 番目のノードが起動した後、cassandra はアドレスにバインドされていないように見え、ホストはそれを認識しなくなります。私は何をすべきか?