喂,
我们正在尝试在Rails开发环境中设置Neo4j HA群集,就像这里解释的那样:https://github.com/andreasronge/neo4j/wiki/Neo4j%3A%3ARails-Config
我们在群集中有两个实例。服务器1是应用程序,服务器2是Rails控制台。它们都开始很好,但最终其中一个会倒下。通常,它是以下之一:
1)java.io.FileNotFound:/server_1_path/path/to/some/RailsModel_exact/_2.fxm文件。不知何故,索引期望存在一个不存在的文件。有时,该文件不存在于EITHER服务器目录中,唯一有用的是通过将一个索引文件复制到另一个来使两组索引文件相同。
2)孤立的index.lock文件。此处的错误将表示某个索引已锁定,并且删除特定的.lock
文件可解决此问题。烦人。(也许是similar issue)
3)在一个实例中添加数据,从不在另一个实例中显示。在这种情况下,我在Rails控制台中创建一个节点,它永远不会出现在应用程序中,反之亦然。在这种情况下,似乎两个实例都作为主实例启动,并且永远不会同步。通常必须删除其中一个dbs并重新启动才能让它们再次运行。
我不确定新的1.9 HA是否还没有准备好迎接黄金时段,或者我们对于退出应用程序/控制台并且Neo4j没有彻底关闭而过于冷漠。
这是一个非常令人沮丧的问题。我们非常感谢任何帮助/指示,以使其正常工作。
我们正在使用1.9 M03版本的gem,这是我们的配置:
server_id = ((defined? Rails::Console)) ? 2 : 1
config.neo4j['enable_ha'] = true
config.neo4j['enable_remote_shell'] = "port=133#{server_id}"
config.neo4j['ha.server_id'] = server_id
config.neo4j['ha.server'] = "localhost:600#{server_id}"
config.neo4j['ha.pull_interval'] = '1s'
config.neo4j['ha.discovery.enabled'] = false
config.neo4j['ha.initial_hosts'] = [1,2,3].map{|id| ":500#{id}"}.join(',')
config.neo4j['ha.cluster_server'] = ":5001-5099" #"#{server_id}"
config.neo4j.storage_path = File.expand_path("db/ha_neo_#{server_id}", Object::Rails.root)
config.neo4j['online_backup_server']= "localhost:636#{server_id}"
config.neo4j['ha.cluster_server'] = "localhost:500#{server_id}"
config.neo4j['webserver.port'] = "747#{server_id}"
config.neo4j['webserver.https.port'] = "748#{server_id}"
config.neo4j['enable_remote_shell'] = "port=933#{server_id}"
config.neo4j['use_adaptive_cache'] = false
puts "Config HA cluster, ha.server_id: #{config.neo4j['ha.server_id']}, db: #{config.neo4j.storage_path}"
感谢您提供任何/所有帮助/建议。