Neo4j学习笔记(四.1) (转)neo4j因果集群搭建

文章转自:https://blog.csdn.net/sinat_35045195/article/details/92793777

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值