设置参考

参数 说明

initial.server.mode_constraint

此设置将数据库的操作模式限制为仅在主模式或辅助模式下使用。默认设置为 NONE,即没有约束。作为初始设置,此处的设置值在首次启用服务器时使用。启用后,服务器的模式约束只能使用 ALTER SERVER 'name' SET OPTIONS {modeConstraint:'PRIMARY'} 更改。

示例:配置了initial.server.mode_constraint=SECONDARY的服务器仅分配拓扑结构包含一个或多个辅助节点的数据库。此服务器始终仅以SECONDARY模式托管这些数据库。

initial.dbms.automatically_enable_free_servers

此设置允许自动启用处于FREE状态的服务器。启动后,可以使用dbms.cluster.setAutomaticallyEnableFreeServers过程进行更改。

server.cluster.system_database_mode

每个集群成员都托管system数据库。此配置控制给定实例以PRIMARYSECONDARY模式托管system数据库。

示例:server.cluster.system_database_mode=SECONDARY表示此实例仅保存system数据库的辅助副本。

应该有相当多的(5-7个)system主节点,分布在不同的可用区。但是,如果启用超过10个服务器,建议将后面的服务器设置为辅助节点。

dbms.cluster.minimum_initial_system_primaries_count

配置为server.cluster.system_database_mode=PRIMARY的服务器的最小数量,以形成集群。

示例:dbms.cluster.minimum_initial_system_primaries_count=3指定当至少3个system数据库主节点相互发现时,集群被认为已启动并且DBMS处于联机状态。

dbms.cluster.discovery.resolver_type

此设置指定实例用于确定集群中其他实例的地址以进行引导的策略。可能的取值有

LIST

dbms.cluster.discovery.endpoints(或dbms.cluster.discovery.v2.endpoints,如果您使用Neo4j 5.23及更高版本提供的发现服务v2)视为要联系的服务器地址列表,以进行发现。

DNS

dbms.cluster.discovery.endpoints(或dbms.cluster.discovery.v2.endpoints,如果您使用Neo4j 5.23及更高版本提供的发现服务v2)视为要通过DNS解析的域名。期望DNS解析提供包含服务器主机名或IP地址的A记录,以便在dbms.cluster.discovery.endpoints指定的端口上进行发现。

SRV

dbms.cluster.discovery.endpoints(或dbms.cluster.discovery.v2.endpoints,如果您使用Neo4j 5.23及更高版本提供的发现服务v2)视为要通过DNS解析的域名。期望DNS解析提供包含服务器主机名或IP地址和端口的SRV记录,以便进行发现。

K8S

访问Kubernetes列表服务API以获取要联系的服务器地址,以便进行发现。需要dbms.kubernetes.label_selector作为每个服务器运行的Kubernetes服务的Kubernetes标签选择器,并且dbms.kubernetes.service_port_name作为识别集群服务器服务的发现端口的服务端口名称。对于此选项,dbms.cluster.discovery.endpoints(或dbms.cluster.discovery.v2.endpoints,如果您使用Neo4j 5.23及更高版本提供的发现服务v2)的值将被忽略。有关更多详细信息,请参阅Kubernetes中的发现

从Neo4j 5.23开始,根据您使用的发现服务版本,您需要在neo4j.conf文件中设置dbms.cluster.discovery.endpointsdbms.cluster.discovery.v2.endpoints。有关发现和发现配置选项的详细信息,请参阅服务器发现方法

dbms.cluster.discovery.endpoints 在5.23中已弃用

用于发现集群中其他服务器的一个或多个网络地址。用于将端点解析为其他集群成员的确切方法由dbms.cluster.discovery.resolver_type的值确定。在默认情况下,初始发现成员以地址/端口对的逗号分隔列表形式给出,发现服务的默认端口为:5000

最佳实践是在集群中的所有服务器上将此参数设置为相同的值。

示例:dbms.cluster.discovery.resolver_type=LISTserver01.example.com:5000,server02.example.com:5000,server03.example.com:5000结合使用,尝试访问在server01.example.comserver02.example.comserver03.example.com上侦听的Neo4j实例;所有实例都在端口5000上。

dbms.cluster.discovery.v2.endpoints 在5.22中引入

服务器应联系以发现其他集群成员的端点列表,以逗号分隔。通常,必须在此列表中指定所有集群成员,包括当前服务器。该设置配置发现服务v2的端点。

示例:dbms.cluster.discovery.resolver_type=LISTserver01.example.com:6000,server02.example.com:6000,server03.example.com:6000结合使用,尝试访问在server01.example.comserver02.example.comserver03.example.com上侦听的Neo4j实例;所有实例都在端口6000上。

dbms.cluster.discovery.version 在5.22中引入

此设置允许您选择要启动哪个发现服务。可能的取值有

  • V1_ONLY -— 它仅运行发现服务v1。

  • V1_OVER_V2 -— 它同时运行发现服务v1和发现服务v2,其中v1是主要服务,v2在后台运行。

  • V2_OVER_V1 -— 它同时运行发现服务v1和发现服务v2,其中v2是主要服务,v1在后台运行。

  • V2_ONLY — 它仅运行发现服务v2。

默认值为V1_ONLY

发现服务v1和v2设计为并行运行。它们彼此完全独立,因此允许您在从v1切换到v2时保持集群正常运行。有关如何从发现服务v1迁移到v2的详细信息,请参阅从发现服务v1迁移到v2

server.discovery.advertised_address 在5.23中已弃用

指定实例在何处发布它侦听来自集群其他成员的发现协议消息的地址/端口设置。如果此服务器包含在其他集群成员的discovery.endpoints中,则那里的值必须与该发布地址**完全**匹配。

示例:server.discovery.advertised_address=192.168.33.21:5001表示其他集群成员可以使用主机192.168.33.20和端口5001上的发现协议与该服务器通信。

server.cluster.raft.advertised_address

指定Neo4j服务器在何处发布它侦听集群中Raft消息的地址/端口设置。

示例:server.cluster.raft.advertised_address=192.168.33.20:7000侦听绑定到192.168.33.20的网络接口上端口7000上的集群通信。

server.cluster.advertised_address

指定实例在何处发布它侦听事务发送追赶协议中事务请求的地址/端口设置。

示例:causal_clustering.transaction_advertised_address=192.168.33.20:6001侦听绑定到192.168.33.20的网络接口上端口6001上的集群成员的事务。

server.discovery.listen_address 在5.23中已弃用

指定Neo4j实例为集群发现协议绑定到的网络接口和端口的地址/端口设置。

示例:server.discovery.listen_address=0.0.0.0:5001侦听任何网络接口上端口5001上的集群成员通信。

server.cluster.raft.listen_address

指定Neo4j实例为集群通信绑定到的网络接口和端口的地址/端口设置。必须与该实例在server.cluster.raft.advertised_address设置中发布的侦听地址协调设置此设置。

示例:server.cluster.raft.listen_address=0.0.0.0:7000侦听任何网络接口上端口7000上的集群通信。

server.cluster.listen_address

指定Neo4j实例为集群通信绑定到的网络接口和端口的地址/端口设置。必须与该实例在server.cluster.advertised_address设置中发布的侦听地址协调设置此设置。

示例:server.cluster.listen_address=0.0.0.0:6001侦听任何网络接口上端口6001上的集群通信。