ドメイン固有の REST サービス (読み取り、更新) を公開する Spring MVC アプリケーションで Neo4j 1.9.M01 を使用しています。Web アプリケーションは同じ Web コンテナー (Tomcat 6) に 3 回デプロイされ、各「ノード」には同じクラスターの独自の組み込み Neo4j HA インスタンス部分があります。
3 つの Neo4j 構成:
#node 1
ha.server_id=1
ha.server=localhost:6361
ha.cluster_server=localhost:5001
ha.initial_hosts=localhost:5001,localhost:5002,localhost:5003
#node 2
ha.server_id=2
ha.server=localhost:6362
ha.cluster_server=localhost:5002
ha.initial_hosts=localhost:5001,localhost:5002,localhost:5003
#node 3
ha.server_id=3
ha.server=localhost:6363
ha.cluster_server=localhost:5003
ha.initial_hosts=localhost:5001,localhost:5002,localhost:5003
問題:ノードの 1 つで更新を実行すると、変更が他の 1 つのノードにのみレプリケートされ、3 番目のノードは古い状態のままになり、クラスターの一貫性が損なわれます。
マイルストーンを使用しているのは、Web コンテナーの外部で何かを実行することが許可されていないため、1.9 より前のバージョンの古い ZooKeeper ベースの調整に頼ることができないためです。ここでいくつかの設定が抜けているのでしょうか、それとも 1.9 で導入された新しい調整メカニズムの問題でしょうか?