neo4j因果集群搭建

neo4j因果集群搭建

neo4j集群模式

  • HA集群
  • 因果集群

本文的介绍来自于neo4j官网操作手册。

HA集群

HA集群已经被启用,将会在4.x被删除,这是官网的原话
在这里插入图片描述

因此本文对HA集群不费口舌,重点介绍因果集群的搭建。

因果集群

其实官网介绍的已经很清晰了,只是全英文需要你去翻译感兴趣的可以看官网介绍【点击进入官网搭建手册】即使官网介绍了这里也写一下备用不用下次翻译了。

主要配置详解,这些配置是主要配置的内容,这要这几个配置搞清楚了就可以搭建出来集群。

选项名称描述
dbms.connectors.default_listen_address本机用于侦听传入消息的地址或网络接口。设置此值以0.0.0.0允许Neo4j绑定到任何可用的网络接口。
dbms.connectors.default_advertised_address告知其他机器连接的地址。在典型情况下,应将其设置为完全限定的域名或此服务器的IP地址。
dbms.mode单个数据库实例的操作模式。对于因果聚类,有两种可能的模式:COREREAD_REPLICA
causal_clustering.minimum_core_cluster_size_at_formation集群中Core机器的最小数量
causal_clustering.minimum_core_cluster_size_at_runtime共识组中将存在的最小Core实例数。
causal_clustering.initial_discovery_members可用于引导此Core或Read Replica实例的初始Core集群成员集的网络地址。发现服务的默认端口为:5000

官网给出的实例:3台核心节点的集群,这三台节点的地址分别为core01.example.comcore02.example.comcore03.example.com

我们通过在每台服务器上准备neo4j.conf来配置它们。请注意,它们都是相同的,但配置dbms.connectors.default_advertised_address除外

core01.example.com上的neo4j.conf:

dbms.connectors.default_listen_address=0.0.0.0
dbms.connectors.default_advertised_address=core01.example.com
dbms.mode=CORE
causal_clustering.minimum_core_cluster_size_at_formation=3
causal_clustering.minimum_core_cluster_size_at_runtime=3
causal_clustering.initial_discovery_members=core01.example.com:5000,core02.example.com:5000,core03.example.com:5000

core02.example.com上的neo4j.conf:

dbms.connectors.default_listen_address=0.0.0.0
dbms.connectors.default_advertised_address=core02.example.com
dbms.mode=CORE
causal_clustering.minimum_core_cluster_size_at_formation=3
causal_clustering.minimum_core_cluster_size_at_runtime=3
causal_clustering.initial_discovery_members=core01.example.com:5000,core02.example.com:5000,core03.example.com:5000

core03.example.com上的neo4j.conf:

dbms.connectors.default_listen_address=0.0.0.0
dbms.connectors.default_advertised_address=core03.example.com
dbms.mode=CORE
causal_clustering.minimum_core_cluster_size_at_formation=3
causal_clustering.minimum_core_cluster_size_at_runtime=3
causal_clustering.initial_discovery_members=core01.example.com:5000,core02.example.com:5000,core03.example.com:5000

现在我们准备启动Neo4j服务器了。启动顺序无关紧要。

启动命令 进入neo4j目录下运行 bin/neo4j start 即可

添加新的core服务器

通过使用适当的配置启动新的数据库服务器,可以将core服务器添加到现有集群。新服务器将自身与现有集群集成,并在从对等服务器复制数据后可用。如果现有群集包含大量数据,则新实例可能需要一些时间才能执行副本。

如果要将新服务器作为群集的永久成员,则最好causal_clustering.discovery_members在群集中的所有服务器上进行更新以包含新服务器。

将Core Server添加到现有群集

在此示例中,我们将向core04.example.com我们在刚刚创建的集群添加核心服务器。

在neo4j.conf配置以下那日容:

core04.example.com上的neo4j.conf:

dbms.connectors.default_listen_address=0.0.0.0
dbms.connectors.default_advertised_address=core04.example.com
dbms.mode=CORE
causal_clustering.minimum_core_cluster_size_at_formation=3
causal_clustering.minimum_core_cluster_size_at_runtime=3
causal_clustering.initial_discovery_members=core01.example.com:5000,core02.example.com:5000,core03.example.com:5000

请注意,配置与以前的服务器非常相似。在此示例中,新服务器不是集群的永久成员,因此不包括在内causal_clustering.discovery_members

现在可以启动新的Core Server并让它自己添加到现有的集群中。

添加新的只读副本节点

通过neo4j.conf提供与核心服务器类似的初始只读副本配置。由于只读副本不参与群集仲裁决策,因此其配置较短; 他们只需要知道他们可以绑定到的某些核心服务器的地址,以便发现集群。然后,他们可以选择适当的Core Server来复制数据。

将只读副本添加到现有群集

在此示例中,我们将向replica01.example.com我们在创建的集群添加只读副本。

我们在neo4j.conf配置以下条目:

replica01.example.com上的neo4j.conf:

dbms.mode=READ_REPLICA
causal_clustering.initial_discovery_members=core01.example.com:5000,core02.example.com:5000,core03.example.com:5000

现在可以启动新的只读副本,并让它自己添加到现有的群集中。

官网的错误

好的,你如果按照官网的配置配下来了而且没看完我的文章,那么你很可能配错了,如果你按照本文的配置配起来了没错,那么不奇怪,我把官网写错的地方修改了一下。官网写错了一个参数,因此你会遇到这个异常

nohup: ignoring input
2019-06-10 01:21:50.768+0000 ERROR [c.n.s.e.CommercialBootstrapper] Failed to start Neo4j on unknown address. Missing value for 'causal_clustering.initial_discovery_members', which is mandatory with 'causal_clustering.discovery_type=LIST'
org.neo4j.graphdb.config.InvalidSettingException: Missing value for 'causal_clustering.initial_discovery_members', which is mandatory with 'causal_clustering.discovery_type=LIST'
	at org.neo4j.causalclustering.core.CausalClusterConfigurationValidator.lambda$validateInitialDiscoveryMembers$0(CausalClusterConfigurationValidator.java:72)
	at java.util.Arrays$ArrayList.forEach(Arrays.java:3880)
	at org.neo4j.causalclustering.core.CausalClusterConfigurationValidator.validateInitialDiscoveryMembers(CausalClusterConfigurationValidator.java:69)
	at org.neo4j.causalclustering.core.CausalClusterConfigurationValidator.validate(CausalClusterConfigurationValidator.java:32)
	at org.neo4j.kernel.configuration.Config.migrateAndValidateAndUpdateSettings(Config.java:813)
	at org.neo4j.kernel.configuration.Config.<init>(Config.java:420)
	at org.neo4j.kernel.configuration.Config.<init>(Config.java:84)
	at org.neo4j.kernel.configuration.Config$Builder.build(Config.java:314)
	at org.neo4j.server.ServerBootstrapper.start(ServerBootstrapper.java:108)
	at org.neo4j.server.ServerBootstrapper.start(ServerBootstrapper.java:91)
	at com.neo4j.server.enterprise.CommercialEntryPoint.main(CommercialEntryPoint.java:22)
2019-06-10 01:21:50.777+0000 INFO [c.n.s.e.CommercialBootstrapper] Neo4j Server shutdown initiated by request

这一点都不奇怪,因为参数的正确名称为 causal_clustering.initial_discovery_members,但是官网写的时候却写成了causal_clustering.discovery_members 缺少了一个.initial_因此按照官网配置会出错一点也不意外。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Neo4j 是一款图数据库,可以用于存储和查询大规模的图数据。为了保证高可用性和性能,可以通过搭建 Neo4j 集群来实现。下面是 Neo4j 集群安装的步骤: 1. 下载 Neo4j Enterprise 版本,并解压到多个节点上。 2. 修改每个节点的配置文件 conf/neo4j.conf。将以下配置项修改为相应的值: ``` dbms.mode=CORE dbms.connectors.default_listen_address=<本机IP地址> dbms.connector.bolt.listen_address=:7687 dbms.connector.http.listen_address=:7474 ha.server_id=<节点ID,不同节点ID不同> ha.initial_hosts=<所有节点的IP地址和端口号> ``` 3. 在主节点上,执行以下命令启动集群: ``` bin/neo4j-admin ha-init ``` 4. 在所有节点上执行以下命令启动 Neo4j 服务: ``` bin/neo4j start ``` 5. 在主节点上,执行以下命令将其他节点加入到集群中: ``` bin/neo4j-admin cluster join --host=<其他节点的IP地址> --port=5001 ``` 6. 在主节点上,执行以下命令将其他节点设置为从节点: ``` bin/neo4j-admin ha-slave ``` 7. 在从节点上,执行以下命令启动副本模式: ``` bin/neo4j-backup -from <主节点的IP地址> -backupDir <备份目录> bin/neo4j-admin unbind bin/neo4j-admin set-cluster-role --role=READ_REPLICA bin/neo4j start ``` 8. 测试集群是否正常工作。可以使用浏览器或者 Neo4j 客户端连接到集群,并执行一些查询操作。 以上是 Neo4j 集群安装的基本步骤,具体实现还需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天心有情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值