设置参考

参数 说明

initial.server.mode_constraint

此设置将数据库的运行模式限制为仅在主(primary)或从(secondary)模式下使用。默认设置为 NONE,即无限制。作为初始设置,该值在服务器首次启用时使用。服务器启用后,其模式限制只能通过 ALTER SERVER 'name' SET OPTIONS {modeConstraint:'PRIMARY'} 进行更改。

示例:配置了 initial.server.mode_constraint=SECONDARY 的服务器仅会被分配拓扑中包含 1 个或多个从节点的数据库。此服务器将始终仅以 SECONDARY 模式托管这些数据库。

initial.dbms.automatically_enable_free_servers

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

server.cluster.system_database_mode

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

示例: server.cluster.system_database_mode=SECONDARY 表示该实例仅持有 system 数据库的从副本。

system 主节点数量应保持在较多水平(5-7 个),并分布在不同的可用区。但是,如果启用的服务器超过 10 台,建议将后续添加的服务器设为从节点。

dbms.cluster.minimum_initial_system_primaries_count

形成集群所需的配置了 server.cluster.system_database_mode=PRIMARY 的服务器的最小数量。

示例: dbms.cluster.minimum_initial_system_primaries_count=3 指定当至少 3 个 system 数据库主节点相互发现时,集群被视为已引导(bootstrapped),且 DBMS 在线。

dbms.cluster.discovery.resolver_type

此设置指定实例用于确定集群中其他实例地址以进行引导(bootstrapping)的策略。可选值包括:

LIST

dbms.cluster.endpoints 视为用于发现的服务器地址列表。

DNS

dbms.cluster.endpoints 视为通过 DNS 解析的域名。期望 DNS 解析提供带有主机名或 IP 地址的 A 记录,以便在 dbms.cluster.endpoints 指定的端口上联系这些服务器进行发现。

SRV

dbms.cluster.endpoints 视为通过 DNS 解析的域名。期望 DNS 解析提供带有主机名或 IP 地址及端口的 SRV 记录,以便联系这些服务器进行发现。

K8S

访问 Kubernetes 列表服务 API 以获取用于发现的服务器地址。要求 dbms.kubernetes.label_selector 为运行服务器的 Kubernetes 服务的标签选择器,并且 dbms.kubernetes.discovery.service_port_name 为标识集群服务器服务发现端口的服务端口名称。对于此选项,dbms.cluster.endpoints 的值将被忽略。更多详细信息,请参阅 Kubernetes 中的发现

您需要在 neo4j.conf 文件中设置 dbms.cluster.endpoints。有关发现及发现配置选项的详细信息,请参阅 服务器发现方法

dbms.cluster.endpoints 在 2025.01 版本中重命名

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

示例: dbms.cluster.discovery.resolver_type=LISTserver01.example.com:6000,server02.example.com:6000,server03.example.com:6000 结合使用,将尝试连接监听在 server01.example.comserver02.example.comserver03.example.com 上且端口均为 6000 的 Neo4j 实例。

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

该地址/端口设置指定了实例通告其监听事务传输(transaction-shipping)追赶协议请求的位置。

示例: causal_clustering.transaction_advertised_address=192.168.33.20:6001 表示在绑定到 192.168.33.20 的网络接口上,于 6001 端口监听来自集群成员的事务。

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 端口监听集群通信。