机器 共四台,三台 8核cpu 120G 内存 10.5TB 一台 24核CPU 120G 15TB
全部 centos 7
三个月前 鉴于 小组要上 图数据库的研究,在 测试机器上 曾经搭建了 neo4j 3.3版本的单机但是吧,有一些地方还是不够理想
后来 测试机器 一口气给了四台,朋友赠送了 neo4j 企业最新版的 3.4 版本,据说性能提升了 50% --70%,故 又开始搭建新一轮的Neo4j HA cluster
NEO4J 首先 解压 并把 路径加入到环境变量中,相关机器都设置 了 主机名 及相互 ssh 免登陆,全部内网连接
剩下的其实 就是 neo4j/conf/neo4jconf 这个文件的配置。
无奈就是这个配置文件折腾了 半天 ,恰巧 ss连接google又出意外,并且 国内 基本很少人能用到3.4 的 企业版,基本上没有答案。
今天早上 看了 neo4j 官网的 tutorial ,感觉 还是有点可能
参考
https://neo4j.com/docs/operations-manual/current/tutorial/highly-available-cluster/
# Unique server id for this Neo4j instance
# can not be negative id and must be unique
ha.server_id=1
# List of other known instances in this cluster
ha.initial_hosts=neo4j-01.local:5001,neo4j-02.local:5001,neo4j-03.local:5001
# Alternatively, use IP addresses:
#ha.initial_hosts=192.168.0.20:5001,192.168.0.21:5001,192.168.0.22:5001
# HA - High Availability
# SINGLE - Single mode, default.
dbms.mode=HA
# HTTP Connector
dbms.connector.http.enabled=true
dbms.connector.http.listen_address=:7474
看到是不是很简单,但是按照 官网的配置还是失败了,这个错误就是它
Component 'org.neo4j.cluster.client.ClusterJoin@6a48a7f3'
was successfully initialized,
but failed to start. Please see the attached cause exception
"Conversation-response mapping:
总之就是通信异常 ,节点之间相互无法通信
然后尝试着不断修改 neo4j.conf ,并 监听 每个 节点的neo4j的输出日志
tail -f /opt/neo4j/logs/neo4j.log
最后发现 最关键的 其实是这两个
dbms.connector.bolt.enabled=true
dbms.connector.bolt.listen_address=:7687
上次搭建单机 neo4j也是毁在 这里
另外 还有两个配置比较 慎重
dbms.allow_format_migration=true
dbms.security.allow_csv_import_from_file_urls=true
最后 几台节点 restart ,发现 真的就 都OK 启动了,刚才只是完成了 正常启动了
https://neo4j.com/docs/operations-manual/current/tutorial/local-highly-available-cluster/
其实还需要 这些配置
dbms.connector.http.type=HTTP
dbms.connector.http.enabled=true
dbms.connector.http.address=101.111.32.18:7474
dbms.connectors.default_listen_address=101.111.32.18
下面 罗列一下 所有的 配置
# master: 一般谁第一个 在前 谁是master
ha.server_id=1
ha.initial_hosts=101.111.32.18:5001,101.111.32.19:5001,101.111.32.17:5001
dbms.mode=HA
dbms.connector.http.enabled=true
dbms.connector.http.listen_address=:7474
dbms.allow_format_migration=true
dbms.security.allow_csv_import_from_file_urls=true
dbms.connector.bolt.enabled=true
dbms.connector.bolt.listen_address=:7687
dbms.connector.http.type=HTTP
dbms.connector.http.enabled=true
dbms.connector.http.address=101.111.32.18:7474
dbms.connectors.default_listen_address=101.111.32.18
#slave 1 # slave2 相同 只是 ha.server_id 各不同
ha.server_id=2
ha.initial_hosts=101.111.32.18:5001,101.111.32.19:5001,101.111.32.17:5001
dbms.mode=HA
dbms.connector.http.enabled=true
dbms.connector.http.listen_address=:7474
dbms.allow_format_migration=true
dbms.security.allow_csv_import_from_file_urls=true
dbms.connector.bolt.enabled=true
dbms.connector.bolt.listen_address=:7687
dbms.connector.http.type=HTTP
dbms.connector.http.enabled=true
dbms.connector.http.address=0.0.0.0:7474
另外 master启动一会后的日志 会报
org.neo4j.bolt.v1.runtime.BoltConnectionFatality:
The client is unauthorized due to authentication failure.
这个错误 其实 是一个类似警告,其实就是 账号登录超时,但是吧 不一定准确
未来应该会有一个 配置项可以把时间无限拉长
这里有配置项
https://neo4j.com/docs/operations-manual/current/reference/configuration-settings/
可能是这个 [browser.credential_timeout] dbms.browser.credential_timeout