配置设置

本页面提供了对 Neo4j 配置设置的完整参考,这些设置可以在 neo4j.conf 中设置。有关如何使用配置设置的详细信息,请参阅 neo4j.conf 文件

动态配置设置

动态设置可以在运行时更改,无需重启服务。

动态设置标记为 动态

运行时对配置的更改不会持久化。为了避免在重启 Neo4j 时丢失更改,请确保也更新 neo4j.conf

在集群环境中,CALL dbms.setConfigValue 仅影响其运行的服务器,不会传播到其他成员。如果要更改所有集群成员的配置设置,则必须针对每个成员运行该过程并更新其 neo4j.conf 文件。

集群的每个成员都有自己的 neo4j.conf 文件。建议数据库的设置在整个集群的所有成员中保持一致。

有关如何更新动态配置设置的更多信息,请参阅 更新动态设置

检查点设置

检查点是指将所有挂起的页面更新从页面缓存刷新到存储文件的过程。这会定期完成,用于在发生崩溃时恢复数据库。检查点设置控制检查点的频率以及每次检查点写入磁盘的数据量。另请参阅 事务日志设置

db.checkpoint

表 1. db.checkpoint

描述

配置检查点应何时发生的通用策略。可能的值是

有效值

[PERIODIC, CONTINUOUS, VOLUME, VOLUMETRIC] 之一。

默认值

PERIODIC

db.checkpoint.interval.time

表 2. db.checkpoint.interval.time

描述

配置检查点之间的时间间隔。数据库不会比指定的间隔更频繁地执行检查点(除非检查点由其他事件触发),但如果执行检查点所需的时间比配置的间隔更长,则可能会更少地执行检查点。检查点是事务日志中的一个点,从该点开始恢复。更长的检查点间隔通常意味着恢复在发生崩溃的情况下需要更长的时间才能完成。另一方面,更长的检查点间隔还可以减少数据库对系统施加的 I/O 负载,因为每个检查点都意味着刷新和强制所有存储文件。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

15m

db.checkpoint.interval.tx

表 3. db.checkpoint.interval.tx

描述

配置检查点之间的事务间隔。数据库不会比指定的间隔更频繁地执行检查点(除非检查点由其他事件触发),但如果执行检查点所需的时间比配置的间隔更长,则可能会更少地执行检查点。检查点是事务日志中的一个点,从该点开始恢复。更长的检查点间隔通常意味着恢复在发生崩溃的情况下需要更长的时间才能完成。另一方面,更长的检查点间隔还可以减少数据库对系统施加的 I/O 负载,因为每个检查点都意味着刷新和强制所有存储文件。默认值为 100000,即每 100000 个事务进行一次检查点。

有效值

最小值为 1 的整数。

默认值

100000

db.checkpoint.interval.volume

表 4. db.checkpoint.interval.volume

描述

配置检查点之间的事务日志量。数据库不会比指定的间隔更频繁地执行检查点(除非检查点由其他事件触发),但如果执行检查点所需的时间比配置的间隔更长,则可能会更少地执行检查点。检查点是事务日志中的一个点,恢复将从该点开始。更长的检查点间隔通常意味着恢复在发生崩溃的情况下需要更长的时间才能完成。另一方面,更长的检查点间隔还可以减少数据库对系统施加的 I/O 负载,因为每个检查点都意味着刷新和强制所有存储文件。

有效值

字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小值为 1.00KiB

默认值

250.00MiB

db.checkpoint.iops.limit

企业版 动态

表 5. db.checkpoint.iops.limit

描述

限制后台检查点过程每秒消耗的 I/O 数量。此设置是建议性的。它在 Neo4j 社区版中被忽略,在企业版中被尽力遵循。在这种情况下,I/O 是 8 KiB(大多是顺序)写入。以这种方式限制写入 I/O 会在 I/O 子系统中保留更多带宽来处理随机读取 I/O,这对于数据库无法完全放入内存时查询的响应时间至关重要。此设置的唯一缺点是,更长的检查点时间可能会导致在数据库或系统崩溃的情况下恢复时间略微延长。较低的数字意味着较低的 I/O 压力,因此检查点时间更长。将其设置为 -1 以禁用 IOPS 限制并完全消除限制。这将允许检查点器以硬件的速度尽可能快地刷新数据。删除或注释掉该设置将设置默认值 600

有效值

整数。

默认值

600

集群设置

集群设置用于配置 Neo4j 集群的行为。有关更多信息,另请参阅 集群设置

db.cluster.catchup.pull_interval

表 6. db.cluster.catchup.pull_interval

描述

辅助服务器从主服务器为特定数据库获取更新的间隔。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

1s

db.cluster.raft.apply.buffer.max_bytes

表 7. db.cluster.raft.apply.buffer.max_bytes

描述

应用缓冲区中的最大字节数。此参数限制应用缓冲区可以消耗的内存量。如果达到字节限制,即使未超过 max_entries,缓冲区大小也会受到限制。

有效值

字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

1.00GiB

db.cluster.raft.apply.buffer.max_entries

表 8. db.cluster.raft.apply.buffer.max_entries

描述

Raft 日志条目预取缓冲区中的最大条目数。

有效值

整数。

默认值

1024

db.cluster.raft.in_queue.batch.max_bytes

表 9. db.cluster.raft.in_queue.batch.max_bytes

描述

RAFT 以字节为单位处理的最大批次。

有效值

字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

8.00MiB

db.cluster.raft.so_keepalive_enabled

表 10. db.cluster.raft.so_keepalive_enabled

描述

为所有 Raft TCP 通道设置 keepalive 套接字选项 (SO_KEEPALIVE)。

有效值

布尔值。

默认值

false

db.cluster.raft.in_queue.max_bytes

表 11. db.cluster.raft.in_queue.max_bytes

描述

RAFT 入队中的最大字节数。

有效值

字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

2.00GiB

db.cluster.raft.leader_transfer.priority_group

表 12. db.cluster.raft.leader_transfer.priority_group

描述

服务器组的名称,其成员应优先作为领导者。这并不能保证领导者始终是该组的成员,但集群会尝试在可能的情况下将领导权转移到该组的成员。如果使用 db.cluster.raft.leader_transfer.priority_group.<database> 指定数据库,则指定的优先组将仅应用于该数据库。如果没有指定数据库,该组将成为默认组,并应用于所有没有明确设置优先组的数据库。使用此设置将禁用领导者平衡。

有效值

标识服务器标签的字符串。

默认值

db.cluster.raft.leader_transfer.priority_tag

表 13. db.cluster.raft.leader_transfer.priority_tag

描述

服务器标签的名称,其成员应优先作为领导者。这并不能保证领导者始终是该标签的成员,但集群会尝试在可能的情况下将领导权转移到该标签的成员。如果使用 db.cluster.raft.leader_transfer.priority_tag.<database> 指定数据库,则指定的优先标签将仅应用于该数据库。如果没有指定数据库,该标签将成为默认标签,并应用于所有没有明确设置优先标签的数据库。使用此设置将禁用领导者平衡。

有效值

标识服务器标签的字符串。

默认值

db.cluster.raft.log.prune_strategy

表 14. db.cluster.raft.log.prune_strategy

描述

RAFT 日志修剪策略,用于确定哪些日志需要修剪。Neo4j 仅修剪到最后应用的索引的日志条目,这保证了只有当事务安全地复制到本地事务日志并由大多数集群成员安全地提交后,日志才会被标记为修剪。可能的值为字节大小或事务数(例如,200K 个事务)。

有效值

字符串。

默认值

1g 大小

db.cluster.raft.log_shipping.buffer.max_bytes

表 15. db.cluster.raft.log_shipping.buffer.max_bytes

描述

飞行缓存中的最大字节数。此参数限制了缓存可以消耗的内存量。如果达到字节限制,即使未超过 max_entries,缓存大小也会受到限制。

有效值

字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

1.00GiB

db.cluster.raft.log_shipping.buffer.max_entries

表 16. db.cluster.raft.log_shipping.buffer.max_entries

描述

飞行缓存中的最大条目数。增加大小需要更多内存,但在高负载情况下可能会提高性能。

有效值

整数。

默认值

1024

dbms.cluster.catchup.client_inactivity_timeout

表 17. dbms.cluster.catchup.client_inactivity_timeout

描述

如果在给定时间内没有网络活动,追赶协议将超时。客户端从服务器接收到的每条消息都会延长超时时间。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

10m

dbms.cluster.discovery.endpoints

表 18. dbms.cluster.discovery.endpoints

描述

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

有效值

以逗号分隔的列表,其中每个元素都是以以下格式的套接字地址:hostname:porthostname:port

默认值

dbms.cluster.discovery.v2.endpoints

表 19. dbms.cluster.discovery.v2.endpoints

描述

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

有效值

以逗号分隔的列表,其中每个元素都是以以下格式的套接字地址:hostname:porthostname:port

默认值

dbms.cluster.discovery.version

表 20. dbms.cluster.discovery.version

描述

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

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

  • V1_OVER_V2 — 它运行 Discovery 服务 V1 和 Discovery 服务 V2,其中 V1 是主服务,V2 在后台运行。

  • V2_OVER_V1 — 它运行 Discovery 服务 V1 和 Discovery 服务 V2,其中 V2 是主服务,V1 在后台运行。

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

有效值

[V1_ONLY, V1_OVER_V2, V2_OVER_V1, V2_ONLY] 之一。

默认值

V1_ONLY

dbms.cluster.discovery.log_level

表 21. dbms.cluster.discovery.log_level

描述

中间件日志记录级别。

有效值

[DEBUG, INFO, WARN, ERROR, NONE] 之一。

默认值

WARN

dbms.cluster.discovery.resolver_type

表 22. dbms.cluster.discovery.resolver_type

描述

配置发现服务用于确定谁应该成为集群一部分的解析器类型。有效值为 LISTSRVDNSK8S

LIST

静态配置,其中 dbms.cluster.discovery.endpoints 必须包含集群成员地址列表。

SRVDNS

动态配置,其中 dbms.cluster.discovery.endpoints 必须指向包含集群成员地址的 DNS 条目。

K8S

至少必须设置 dbms.kubernetes.service_port_name。集群成员的地址是动态从 Kubernetes 查询的。

有效值

字符串。

默认值

LIST

dbms.cluster.discovery.type

表 23. dbms.cluster.discovery.type

描述

此设置已由 dbms.cluster.discovery.resolver_type 替换。

有效值

[DNS, LIST, SRV, K8S] 之一。

默认值

LIST

dbms.cluster.minimum_initial_system_primaries_count

表 24. dbms.cluster.minimum_initial_system_primaries_count

描述

最初形成集群化 DBMS 所需的机器数量。当至少有这么多成员互相发现、绑定在一起并引导一个高可用系统数据库时,集群被认为是已形成的。因此,至少有这么多集群的初始机器必须将 server.cluster.system_database_mode 设置为 PRIMARY
注意:如果 dbms.cluster.discovery.resolver_type 设置为 LISTdbms.cluster.discovery.endpoints 为空,则假设用户正在部署独立 DBMS,并且此设置的值将被忽略。

有效值

最小值为 1 的整数。

默认值

3

dbms.cluster.network.connect_timeout

表 25. dbms.cluster.network.connect_timeout

描述

等待建立网络连接的最大时间量。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

30s

dbms.cluster.network.handshake_timeout

表 26. dbms.cluster.network.handshake_timeout

描述

协议协商握手超时。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

20s

dbms.cluster.network.max_chunk_size

表 27. dbms.cluster.network.max_chunk_size

描述

集群机制在网络上允许的最大块大小。

有效值

一个介于 409610485760 之间的整数。

默认值

32768

dbms.cluster.network.supported_compression_algos

表 28. dbms.cluster.network.supported_compression_algos

描述

此实例将在协商中允许的网络压缩算法(以逗号分隔的列表)。
对于传入连接,算法按优先级从高到低排列。空列表表示不压缩。
对于传出连接,这仅指定允许的算法集,将使用远程对等方的优先级来做出决定。
允许的值: [Gzip, Snappy, Snappy_validating, LZ4, LZ4_high_compression, LZ_validating, LZ4_high_compression_validating]

有效值

以逗号分隔的列表,其中每个元素都是一个字符串。

默认值

dbms.cluster.raft.binding_timeout

表 29. dbms.cluster.raft.binding_timeout

描述

Neo4j 服务器上的数据库加入集群或与至少可用成员的法定人数形成新集群所需的时间。成员由 dbms.cluster.discovery.endpoints 为系统数据库提供,由拓扑图 for 标准数据库提供。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

1d

dbms.cluster.raft.client.max_channels

表 30. dbms.cluster.raft.client.max_channels

描述

两个节点之间用于运行 raft 协议的 TCP 通道的最大数量。每个数据库都会分配一个通道,但多个数据库可以使用单个通道。

有效值

整数。

默认值

8

dbms.cluster.raft.election_failure_detection_window

表 31. dbms.cluster.raft.election_failure_detection_window

描述

领导者选举发生的频率。请注意,由于选举冲突,可能需要多次尝试才能找到领导者。该窗口应明显大于典型的通信延迟,以使冲突不太可能发生。

有效值

持续时间范围 <min-max>(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

3s-6s

dbms.cluster.raft.leader_failure_detection_window

表 32. dbms.cluster.raft.leader_failure_detection_window

描述

检测到领导者丢失并在第一次重新选举尝试举行之前的时间窗口。该窗口应明显大于典型的通信延迟,以使冲突不太可能发生。

有效值

持续时间范围 <min-max>(有效单位为:nsμsmssmhd;默认单位为 s)。

默认值

20s-23s

dbms.cluster.raft.leader_transfer.balancing_strategy

表 33. dbms.cluster.raft.leader_transfer.balancing_strategy

描述

在集群周围转移数据库领导权时使用哪种策略。请注意,如果为给定数据库指定了 leadership_priority_group,则此设置的值将被忽略。以下值可用

  • equal_balancing 自动确保每个主服务器都拥有相同数量的数据库的领导者角色。

  • no_balancing 阻止对领导者角色进行任何自动平衡。

有效值

[NO_BALANCING, EQUAL_BALANCING] 之一。

默认值

EQUAL_BALANCING

dbms.cluster.raft.log.pruning_frequency

表 34. dbms.cluster.raft.log.pruning_frequency

描述

RAFT 日志修剪频率。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

10m

dbms.cluster.raft.log.reader_pool_size

表 35. dbms.cluster.raft.log.reader_pool_size

描述

RAFT 日志阅读器池大小。

有效值

整数。

默认值

8

dbms.cluster.raft.log.rotation_size

表 36. dbms.cluster.raft.log.rotation_size

描述

RAFT 日志轮换大小。当日志达到此大小时,它将被轮换。

有效值

字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小值为 1.00KiB

默认值

250.00MiB

dbms.cluster.raft.membership.join_max_lag

表 37. dbms.cluster.raft.membership.join_max_lag

描述

新跟随者加入 Raft 组时接受的最大滞后量。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

10s

dbms.cluster.raft.membership.join_timeout

表 38. dbms.cluster.raft.membership.join_timeout

描述

新成员赶上的超时。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

10m

dbms.cluster.store_copy.max_retry_time_per_request

表 39. dbms.cluster.store_copy.max_retry_time_per_request

描述

存储副本期间每个请求的最大重试时间。在存储副本期间,常规存储文件和索引在单独的请求中下载。这配置了允许失败的请求重新发送的最大时间。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

20m

initial.dbms.automatically_enable_free_servers

表 40. initial.dbms.automatically_enable_free_servers

描述

自动启用空闲服务器。

有效值

布尔值。

默认值

false

initial.dbms.database_allocator

表 41. initial.dbms.database_allocator

描述

初始数据库分配器的名称。创建 DBMS 后,可以通过运行 CALL dbms.setDatabaseAllocator() 过程来设置它。

有效值

字符串。

默认值

EQUAL_NUMBERS

initial.dbms.default_primaries_count

表 42. initial.dbms.default_primaries_count

描述

标准数据库的初始默认主服务器数量。如果用户未在 CREATE DATABASE 中指定主服务器数量,则将使用此值,除非被 dbms.setDefaultAllocationNumbers 过程覆盖。

有效值

最小值为 1,最大值为 11 的整数。

默认值

1

initial.dbms.default_secondaries_count

表 43. initial.dbms.default_secondaries_count

描述

标准数据库的初始默认辅助服务器数量。如果用户未在 CREATE DATABASE 中指定辅助服务器数量,则将使用此值,除非被 dbms.setDefaultAllocationNumbers 过程覆盖。

有效值

最小值为 0,最大值为 20 的整数。

默认值

0

initial.server.allowed_databases

表 44. initial.server.allowed_databases

描述

此服务器允许的数据库名称;其他所有数据库都被拒绝。空表示允许所有数据库。此配置可以在启用服务器时被覆盖,或者在运行时更改,而无需更改此设置。与 server.initial_denied_databases 相互排斥。

有效值

一个逗号分隔的集合,其中每个元素都是一个有效的数据库名称,仅包含字母、数字、点和连字符,长度介于 3 到 63 个字符之间,以字母开头,但不以 system 开头。

默认值

initial.server.denied_databases

表 45. initial.server.denied_databases

描述

此服务器不允许的数据库名称。空表示没有被拒绝。此配置可以在启用服务器时被覆盖,或者在运行时更改,而无需更改此设置。与 server.initial_allowed_databases 相互排斥。

有效值

一个逗号分隔的集合,其中每个元素都是一个有效的数据库名称,仅包含字母、数字、点和连字符,长度介于 3 到 63 个字符之间,以字母开头,但不以 system 开头。

默认值

initial.server.mode_constraint

表 46. initial.server.mode_constraint

描述

服务器可以限制自身,只允许数据库以主服务器或从服务器的身份托管。此设置是 ENABLE SERVER 命令的默认输入 - 用户可以在执行命令时覆盖它。

有效值

PRIMARY、SECONDARY 或 NONE 之一。

默认值

NONE

initial.server.tags

表 47. initial.server.tags

描述

服务器的标签名称列表,用于数据库分配以及配置负载均衡和复制策略时。此设置是 ENABLE SERVER 命令的默认输入 - 用户可以在执行命令时覆盖它。

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串,标识服务器标签,不包含重复项。

默认值

server.cluster.advertised_address

表 48. server.cluster.advertised_address

描述

事务发送服务器的公告主机名/IP 地址和端口。

有效值

一个格式为 hostname:porthostname:port 的套接字地址,这是一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:6000

server.cluster.catchup.connect_randomly_to_server_group

表 49. server.cluster.catchup.connect_randomly_to_server_group

描述

逗号分隔的组列表,供 connect-randomly-to-server-group 选择策略使用。当策略列表 (server.cluster.catchup.upstream_strategy) 包含值 connect-randomly-to-server-group 时,使用 connect-randomly-to-server-group 策略。

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串,标识服务器标签。

默认值

server.cluster.catchup.connect_randomly_to_server_tags

表 50. server.cluster.catchup.connect_randomly_to_server_tags

描述

逗号分隔的标签列表,供 connect-randomly-to-server-with-tag 选择策略使用。当策略列表 (server.cluster.catchup.upstream_strategy) 包含值 connect-randomly-to-server-with-tag 时,使用 connect-randomly-to-server-with-tag 策略。

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串,标识服务器标签。

默认值

server.cluster.catchup.upstream_strategy

表 51. server.cluster.catchup.upstream_strategy

描述

从服务器用来从上游服务器拉取事务更新的策略列表,按降序排列。如果没有任何策略有效或列表为空,则默认策略为 typically-connect-to-random-secondary

有效值

以逗号分隔的列表,其中每个元素都是一个字符串。

默认值

server.cluster.catchup.user_defined_upstream_strategy

表 52. server.cluster.catchup.user_defined_upstream_strategy

描述

用户定义的上游选择策略配置。当策略列表 (server.cluster.catchup.upstream_strategy) 包含值 user_defined 时,使用用户定义的策略。

有效值

字符串。

默认值

server.cluster.listen_address

表 53. server.cluster.listen_address

描述

事务发送服务器要监听的网络接口和端口。请注意,也可以针对此端口运行备份客户端,因此始终通过防火墙限制对它的访问,并配置 SSL 策略。

有效值

一个格式为 hostname:porthostname:port 的套接字地址。如果缺失,则从 server.default_listen_address 获取。

默认值

:6000

server.cluster.network.native_transport_enabled

表 54. server.cluster.network.native_transport_enabled

描述

如果可用,则使用原生传输。对于 Linux 来说是 Epoll,对于 MacOS/BSD 来说是 Kqueue。如果此设置为 false,或者原生传输不可用,则将使用 Nio 传输。

有效值

布尔值。

默认值

true

server.cluster.raft.advertised_address

表 55. server.cluster.raft.advertised_address

描述

RAFT 服务器的公告主机名/IP 地址和端口。

有效值

一个格式为 hostname:porthostname:port 的套接字地址,这是一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7000

server.cluster.raft.listen_address

表 56. server.cluster.raft.listen_address

描述

RAFT 服务器要监听的网络接口和端口。

有效值

一个格式为 hostname:porthostname:port 的套接字地址。如果缺失,则从 server.default_listen_address 获取。

默认值

:7000

server.cluster.system_database_mode

表 57. server.cluster.system_database_mode

描述

用户必须手动指定每个服务器上系统数据库的模式。

有效值

PRIMARY 或 SECONDARY 之一。

默认值

PRIMARY

server.discovery.listen_address

表 58. server.discovery.listen_address

描述

绑定集群成员发现管理通信的主机和端口。

有效值

一个格式为 hostname:porthostname:port 的套接字地址。如果缺失,则从 server.default_listen_address 获取。

默认值

:5000

server.groups

表 59. server.groups

描述

服务器的标签名称列表,用于配置负载均衡和复制策略时。

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串,标识服务器标签。

默认值

initial.server.tags

连接设置

连接设置控制服务器之间以及服务器和客户端之间的通信。Neo4j 通过连接器提供对 Bolt、HTTP 和 HTTPS 协议的支持。有关连接器的更多信息,请参阅 配置连接器

在配置 HTTPS 或 Bolt 时,请参阅 安全设置SSL 框架,了解有关如何使用 SSL 证书的详细信息。

server.bolt.advertised_address

表 60. server.bolt.advertised_address

描述

此连接器的公告地址。

有效值

一个格式为 hostname:porthostname:port 的套接字地址,这是一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7687

server.bolt.connection_keep_alive

表 61. server.bolt.connection_keep_alive

描述

在等待来自活动正在进行的查询的响应的连接上发送 NOOP 之前的最大等待时间。最小值为 1 毫秒。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s),最小值为 1ms

默认值

1m

server.bolt.connection_keep_alive_for_requests

表 62. server.bolt.connection_keep_alive_for_requests

描述

要为其启用保活消息的消息类型:ALLSTREAMINGOFF

有效值

ALL、STREAMING 或 OFF 之一。

默认值

ALL

server.bolt.connection_keep_alive_probes

表 63. server.bolt.connection_keep_alive_probes

描述

在连接被认为陈旧之前可以错过的探测总数。最小值为 1。

有效值

最小值为 1 的整数。

默认值

2

server.bolt.connection_keep_alive_streaming_scheduling_interval

表 64. server.bolt.connection_keep_alive_streaming_scheduling_interval

描述

对所有具有活动查询的连接执行每个计划的保活检查之间的间隔。零持续时间将关闭保活服务。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s),最小值为 0s

默认值

1m

server.bolt.enabled

表 65. server.bolt.enabled

描述

启用 Bolt 连接器。

有效值

布尔值。

默认值

true

server.bolt.listen_address

表 66. server.bolt.listen_address

描述

连接器应绑定的地址。

有效值

一个格式为 hostname:porthostname:port 的套接字地址。如果缺失,则从 server.default_listen_address 获取。

默认值

:7687

server.bolt.additional_listen_addresses

表 67. server.bolt.additional_listen_addresses

描述

连接器应绑定的其他地址。

有效值

一个逗号分隔的集合,其中每个元素都是一个格式为 hostname:porthostname:port 的套接字地址。

默认值

server.bolt.ocsp_stapling_enabled

表 68. server.bolt.ocsp_stapling_enabled

描述

为 bolt 和 http 连接器启用服务器 OCSP 装订。

有效值

布尔值。

默认值

false

server.bolt.telemetry.enabled

表 69. server.bolt.telemetry.enabled

描述

启用驱动程序遥测数据的收集。

有效值

布尔值。

默认值

false

server.bolt.enable_network_error_accounting

表 70. server.bolt.enable_network_error_accounting

描述

启用基于会计的 Bolt 堆栈内良性错误报告。启用后,只有当此类事件以不寻常的频率发生时才会报告良性错误。禁用后,将报告所有良性网络错误。

有效值

布尔值。

默认值

true

server.bolt.network_abort_clear_window_duration

表 71. server.bolt.network_abort_clear_window_duration

描述

与网络相关的连接中止需要保持在合理水平以清除错误的持续时间。

有效值

一个持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s),最小值为 1s

默认值

10m

server.bolt.network_abort_warn_threshold

表 72. server.bolt.network_abort_warn_threshold

描述

在发出日志消息之前,在指定的时间窗口内允许的与网络相关的连接中止的最大数量。值为零将恢复到旧的警告行为。

有效值

一个长整数,最小值为 0

默认值

2

server.bolt.network_abort_warn_window_duration

表 73. server.bolt.network_abort_warn_window_duration

描述

对与网络相关的连接中止进行采样的窗口的持续时间。

有效值

一个持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s),最小值为 1s

默认值

10m

server.bolt.thread_pool_keep_alive

表 74. server.bolt.thread_pool_keep_alive

描述

绑定到此连接器的线程池中的空闲线程等待新任务的最大时间。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

5m

server.bolt.thread_pool_max_size

表 75. server.bolt.thread_pool_max_size

描述

绑定到此连接器的线程池中允许的最大线程数。

有效值

整数。

默认值

400

server.bolt.thread_pool_min_size

表 76. server.bolt.thread_pool_min_size

描述

绑定到此连接器的线程池中要保留的线程数,包括空闲线程。

有效值

整数。

默认值

5

server.bolt.thread_starvation_clear_window_duration

表 77. server.bolt.thread_starvation_clear_window_duration

描述

未计划的请求需要保持在合理水平以清除错误的持续时间。

有效值

一个持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s),最小值为 1s

默认值

10m

server.bolt.thread_starvation_warn_threshold

表 78. server.bolt.thread_starvation_warn_threshold

描述

在发出日志消息之前,在指定的时间窗口内,在线程饥饿事件期间允许的未计划请求的最大数量。

有效值

一个长整数,最小值为 0

默认值

2

server.bolt.thread_starvation_warn_window_duration

表 79. server.bolt.thread_starvation_warn_window_duration

描述

对未计划的请求进行采样的窗口的持续时间。

有效值

一个持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s),最小值为 1s

默认值

10m

server.bolt.tls_level

表 80. server.bolt.tls_level

描述

用于保护与此连接器的通信的加密级别。

有效值

REQUIRED、OPTIONAL 或 DISABLED 之一。

默认值

DISABLED

server.bolt.traffic_accounting_check_period

表 81. server.bolt.traffic_accounting_check_period

描述

当前流量使用情况样本之间的时间间隔。较低的值会导致更准确的报告,但会带来更高的性能损失。值为零将禁用流量统计。

有效值

持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s),为 0s 或最小值为 1m

默认值

5m

server.bolt.traffic_accounting_clear_duration

表 82. server.bolt.traffic_accounting_clear_duration

描述

在清除流量警告之前,需要低于配置的流量阈值的持续时间。

有效值

持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s),最小值为 1m

默认值

10m

server.bolt.traffic_accounting_incoming_threshold_mbps

表 83. server.bolt.traffic_accounting_incoming_threshold_mbps

描述

在发出警告之前,在配置的计费检查窗口内允许的最大传入流量(以 Mbps 为单位)。

有效值

最小值为 1 的长整型。

默认值

950

server.bolt.traffic_accounting_outgoing_threshold_mbps

表 84. server.bolt.traffic_accounting_outgoing_threshold_mbps

描述

在发出警告之前,在配置的计费检查窗口内允许的最大传出流量(以 Mbps 为单位)。

有效值

最小值为 1 的长整型。

默认值

950

server.http.advertised_address

表 85. server.http.advertised_address

描述

此连接器的公告地址。

有效值

一个格式为 hostname:porthostname:port 的套接字地址,这是一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7474

server.http.enabled

表 86. server.http.enabled

描述

启用 HTTP 连接器。

有效值

布尔值。

默认值

true

server.http.listen_address

表 87. server.http.listen_address

描述

连接器应绑定的地址。

有效值

一个格式为 hostname:porthostname:port 的套接字地址。如果缺失,则从 server.default_listen_address 获取。

默认值

:7474

server.http_enabled_modules

表 88. server.http_enabled_modules

描述

定义加载到 Neo4j Web 服务器中的模块集。企业管理端点仅在企业版中可用。

有效值

一个以逗号分隔的集合,其中每个元素都是以下之一:[TRANSACTIONAL_ENDPOINTS、UNMANAGED_EXTENSIONS、BROWSER、ENTERPRISE_MANAGEMENT_ENDPOINTS、QUERY_API_ENDPOINTS]。

默认值

TRANSACTIONAL_ENDPOINTS、UNMANAGED_EXTENSIONS、BROWSER、ENTERPRISE_MANAGEMENT_ENDPOINTS、QUERY_API_ENDPOINTS

server.http_enabled_transports

表 89. server.http_enabled_transports

描述

定义 HTTP 服务器上可用的传输集。

有效值

一个以逗号分隔的集合,其中每个元素都是以下之一:[HTTP1_1、HTTP2]。

默认值

HTTP1_1、HTTP2

server.https.advertised_address

表 90. server.https.advertised_address

描述

此连接器的公告地址。

有效值

一个格式为 hostname:porthostname:port 的套接字地址,这是一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7473

server.https.enabled

表 91. server.https.enabled

描述

启用 HTTPS 连接器。

有效值

布尔值。

默认值

false

server.https.listen_address

表 92. server.https.listen_address

描述

连接器应绑定的地址。

有效值

一个格式为 hostname:porthostname:port 的套接字地址。如果缺失,则从 server.default_listen_address 获取。

默认值

:7473

server.default_advertised_address

表 93. server.default_advertised_address

描述

服务器用来宣传自己的默认主机名或 IP 地址。

有效值

格式为 hostname:porthostname:port 的套接字地址,没有指定端口,并且是一个可访问的地址。

默认值

localhost

server.default_listen_address

表 94. server.default_listen_address

描述

用于监听传入连接的默认网络接口。要监听所有接口上的连接,请使用“0.0.0.0”。

有效值

格式为 hostname:porthostname:port 的套接字地址,没有指定端口。

默认值

localhost

server.discovery.advertised_address

表 95. server.discovery.advertised_address

描述

宣传的集群成员发现管理通信。

有效值

一个格式为 hostname:porthostname:port 的套接字地址,这是一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:5000

server.routing.advertised_address

表 96. server.routing.advertised_address

描述

集群内路由连接器的宣传地址。

有效值

一个格式为 hostname:porthostname:port 的套接字地址,这是一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7688

server.routing.listen_address

表 97. server.routing.listen_address

描述

路由连接器应该绑定的地址。

有效值

一个格式为 hostname:porthostname:port 的套接字地址。如果缺失,则从 server.default_listen_address 获取。

默认值

:7688

dbms.routing.client_side.enforce_for_domains

表 98. dbms.routing.client_side.enforce_for_domains

描述

始终对这些域使用 neo4j:// 协议连接的客户端路由(无论默认路由器如何)。一个以逗号分隔的域列表。支持通配符 (*)。

有效值

一个以逗号分隔的集合,其中每个元素都是一个字符串。

默认值

dbms.routing.default_router

表 99. dbms.routing.default_router

描述

neo4j:// 协议连接的路由策略。默认值为 CLIENT,使用客户端路由,服务器端路由作为回退(如果已启用)。当设置为 SERVER 时,客户端路由会被短路,请求依赖于服务器端路由(为了正常操作必须启用,即 dbms.routing.enabled=true)。可以被 dbms.routing.client_side.enforce_for_domains 覆盖。

有效值

[SERVER、CLIENT] 之一。

默认值

CLIENT

dbms.routing.driver.connection.connect_timeout

表 100. dbms.routing.driver.connection.connect_timeout

描述

套接字连接超时。零超时被视为无限超时,并将受操作系统级别配置的超时限制。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

5s

dbms.routing.driver.connection.max_lifetime

表 101. dbms.routing.driver.connection.max_lifetime

描述

比此阈值更旧的池连接将被关闭并从池中移除。将此选项设置为较低的值会导致连接周转率高,并可能导致性能下降。建议将最大生命周期设置为略小于网络设备中配置的生命周期的值(负载均衡器、代理、防火墙等也可以限制最大连接生命周期)。零和负值会导致生命周期不被检查。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

1h

dbms.routing.driver.connection.pool.acquisition_timeout

表 102. dbms.routing.driver.connection.pool.acquisition_timeout

描述

尝试从连接池中获取连接所花费的最大时间。此超时仅在所有现有连接都被使用时才会生效,并且由于已达到最大连接池大小,因此无法创建新连接。当在配置的时间内无法获取连接时,会引发错误。允许使用负值,这将导致无限获取超时。允许使用 0,这将导致在连接不可用时没有超时并立即失败。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

1m

dbms.routing.driver.connection.pool.idle_test

表 103. dbms.routing.driver.connection.pool.idle_test

描述

在池中闲置时间超过此超时的池连接将在再次使用之前进行测试,以确保它们仍然有效。如果此选项的值太低,则获取连接将需要额外的网络调用,这会导致性能下降。如果此选项的值过高,则可能不再使用实时连接,从而导致错误。因此,此参数平衡了遇到连接问题和性能的可能性。通常,此参数不需要调整。值为 0 表示连接将始终被测试以确保有效性。默认情况下不会进行连接活跃性检查。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

dbms.routing.driver.connection.pool.max_size

表 104. dbms.routing.driver.connection.pool.max_size

描述

连接池管理的最大总连接数。该限制适用于主机和用户的组合。允许使用负值,这将导致无限池。不允许使用 0。默认为 -1(无限)。

有效值

整数。

默认值

-1

dbms.routing.driver.logging.level

表 105. dbms.routing.driver.logging.level

描述

设置驱动程序内部日志记录的级别。

有效值

[DEBUG, INFO, WARN, ERROR, NONE] 之一。

默认值

INFO

dbms.routing.enabled

表 106. dbms.routing.enabled

描述

使用额外的 bolt 连接器启用集群中的服务器端路由。配置后,这允许将请求从一个集群成员转发到另一个成员,如果请求无法由第一个成员满足(例如,发送到非领导者的写请求)。

有效值

布尔值。

默认值

true

dbms.routing.load_balancing.plugin

表 107. dbms.routing.load_balancing.plugin

描述

要使用的负载均衡插件。

有效值

指定负载均衡器插件存在的字符串。

默认值

server_policies

dbms.routing.load_balancing.shuffle_enabled

表 108. dbms.routing.load_balancing.shuffle_enabled

描述

每次生成路由表时,都要改变其中条目的顺序。这意味着不同的客户端应该选择一系列服务器作为其第一个联系人,如果存在替代方案,则减少所有客户端联系同一服务器的可能性。这使服务器之间的负载更加均衡。

有效值

布尔值。

默认值

true

dbms.routing.reads_on_primaries_enabled

表 109. dbms.routing.reads_on_primaries_enabled

描述

配置 dbms.routing.getRoutingTable() 过程是否应包含非写入者主键作为读取端点,还是仅返回从属节点。
注意:如果给定数据库没有从属节点,则无论此设置的值如何,主键都将作为读取端点返回。默认为 true,以便在典型的异构设置中,非写入者主键可用于只读查询。

有效值

布尔值。

默认值

true

dbms.routing.reads_on_writers_enabled

表 110. dbms.routing.reads_on_writers_enabled

描述

配置 dbms.routing.getRoutingTable() 过程是否应包含写入者作为读取端点,还是仅返回非写入者(非写入者主键和从属节点)。
注意:如果不存在其他成员,则写入者将作为读取端点返回。

有效值

布尔值。

默认值

false

dbms.routing_ttl

表 111. dbms.routing_ttl

描述

调用者应该缓存路由过程 dbms.routing.getRoutingTable() 的响应多长时间。

有效值

持续时间(有效单位为:nsμsmssmhd;默认单位为 s),最小值为 1s

默认值

5m

Cypher 设置

Cypher 设置影响 Cypher 查询的行为。它们可以用来调整 Cypher 查询的性能或限制可以执行的查询类型。有关详细信息,请参阅 统计信息和执行计划.

dbms.cypher.forbid_exhaustive_shortestpath

表 112. dbms.cypher.forbid_exhaustive_shortestpath

描述

此设置与性能优化相关。在某些情况下,如果希望使用“shortestPath”函数的任何查询尽快终止,即使没有找到路径,也不要尝试长时间运行以找到答案,则将此设置为true。对于大多数查询,'shortestPath' 算法会很快返回正确答案。但是,在某些情况下,即使存在结果,快速双向广度优先搜索算法也可能找不到结果。当应用于“shortestPath”的WHERE子句中的谓词无法应用于遍历的每个步骤,而只能应用于整个路径时,就会发生这种情况。当查询规划器检测到这些特殊情况时,如果快速算法找不到路径,它将计划执行详尽的深度优先搜索。但是,详尽搜索可能比快速算法慢几个数量级。如果查询必须尽快终止,建议将此选项设置为true,这意味着 Neo4j 永远不会考虑对 shortestPath 查询使用详尽搜索。但是,请注意,如果找不到路径,则将在运行时抛出错误,应用程序需要处理此错误。

有效值

布尔值。

默认值

false

dbms.cypher.forbid_shortestpath_common_nodes

表 113. dbms.cypher.forbid_shortestpath_common_nodes

描述

此设置与性能优化相关。当起点和终点节点相同时,最短路径算法将无法工作。当此设置设置为false时,如果发生这种情况,将不会返回任何路径。默认值为true,将抛出异常。如果您在可能具有相同起点和终点节点的笛卡尔积之后执行 shortestPath 搜索,可能会发生这种情况。如果希望避免这种异常,并且结果对于这些行丢失是可以接受的,则将此设置为false。如果您无法接受丢失结果,并且确实希望在两个公共节点之间找到最短路径,则使用标准 Cypher 可变长度模式表达式重写查询,然后按路径长度排序并限制为一个结果。

有效值

布尔值。

默认值

true

dbms.cypher.hints_error

表 114. dbms.cypher.hints_error

描述

将此设置为指定 Cypher 规划器或运行时提示无法满足时的行为。如果为真,则不符合将导致错误,否则只生成警告。

有效值

布尔值。

默认值

false

dbms.cypher.infer_schema_parts

表 115. dbms.cypher.infer_schema_parts

描述

允许在基数估计期间推断标签。如果规划器可以从逻辑上推断出节点具有查询中未明确表达的标签,规划器将在基数估计期间使用此信息。
此设置控制规划器在多大程度上执行此操作

  • OFF:不推断任何谓词。

  • MOST_SELECTIVE_LABEL:关系类型用于推断关系端节点上的标签。规划器最多为每个节点推断一个标签。如果可以为给定节点推断多个标签,则规划器将保留最具选择性的标签,即对应于图中节点数量最少的标签。

有效值

其中之一 [MOST_SELECTIVE_LABEL, OFF]。

默认值

OFF

对于某些查询,规划器可以从图结构中推断出谓词,例如标签或类型,这可以提高估计每个运算符产生的行数的准确性。有关更多信息,请参阅Cypher 手册 → 执行计划和查询调整 → 了解执行计划
有关如何在每个查询的基础上配置此设置的信息,有效地覆盖此设置对该特定查询的影响,请参阅Cypher 手册 → 查询调整 → Cypher 推断模式部分

dbms.cypher.lenient_create_relationship

表 116. dbms.cypher.lenient_create_relationship

描述

将此设置为更改 Cypher 创建关系的行为,当起点或终点节点丢失时。默认情况下,这会导致查询失败并停止执行,但通过设置此标志,创建操作将简单地不执行,并且执行将继续。

有效值

布尔值。

默认值

false

dbms.cypher.min_replan_interval

表 117. dbms.cypher.min_replan_interval

描述

可能的 Cypher 查询重新规划事件之间的最短时间。在此时间之后,将评估图统计信息,如果它们的变化超过 dbms.cypher.statistics_divergence_threshold 设置的值,则将重新规划查询。如果统计信息没有发生足够的变化,则需要再次经过相同的时间间隔才能再次评估统计信息。每次评估它们时,偏差阈值都会略微降低,直到在 7 小时后达到 10%,因此即使数据库发生中等变化,也会在足够长的时间间隔后看到查询重新规划。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

10s

dbms.cypher.planner

表 118. dbms.cypher.planner

描述

将此设置为指定默认语言版本的默认规划器。

有效值

其中之一 [DEFAULT, COST]。

默认值

DEFAULT

dbms.cypher.render_plan_description

表 119. dbms.cypher.render_plan_description

描述

如果设置为true,则所有使用EXPLAINPROFILE运行的查询的计划描述的文本表示将渲染在服务器上。这允许像 neo4j 浏览器和 Cypher shell 这样的客户端显示更详细的计划描述。

有效值

布尔值。

默认值

true

dbms.cypher.statistics_divergence_threshold

表 120. dbms.cypher.statistics_divergence_threshold

描述

用于创建计划的统计信息超过该阈值的计划被认为是陈旧的。

如果用于创建计划的任何基础统计信息发生了超过该值的更改,则该计划将被认为是陈旧的,并将重新规划。更改计算为abs(a-b)/max(a,b)

这意味着,值为0.75 需要数据库的大小增加四倍才会进行查询重新规划。值为0 表示只要统计信息发生任何更改,并且重新规划间隔已过去,查询就会重新规划。

此间隔由dbms.cypher.min_replan_interval 定义,默认值为 10 秒。在此间隔之后,偏差阈值将开始缓慢下降,在大约 7 小时后达到 10%。这将确保长时间运行的数据库即使在轻微的更改下仍然会进行查询重新规划,但除非更改非常大,否则不会频繁地重新规划。

有效值

范围为0.01.0的双精度数。

默认值

0.75

server.cypher.parallel.worker_limit

表 121. server.cypher.parallel.worker_limit

描述

为并行运行时分配给 Cypher 工作线程的线程数。如果设置为正数,则将启动指定数量的工作线程。如果设置为0,则将为 Java 虚拟机可用的每个逻辑处理器启动一个工作线程。

如果设置为负数,则服务器上可用的逻辑处理器总数将减少该数的绝对值。例如,如果服务器有 16 个可用的处理器,并将server.cypher.parallel.worker_limit设置为-1,则并行运行时将有 15 个线程可用。

有效值

整数。

默认值

0

数据库设置

数据库设置会影响 Neo4j 数据库的行为,例如文件观察器服务、数据库格式、数据库存储文件和数据库时区。它们可以在每个数据库之间变化,但必须在集群/DBMS 中的所有配置文件中保持一致。

db.filewatcher.enabled

表 122. db.filewatcher.enabled

描述

允许启用或禁用文件观察器服务。这是一个辅助服务,但在几乎所有情况下都应保持启用。

有效值

布尔值。

默认值

true

db.format

表 123. db.format

描述

数据库格式。这是将用于新数据库的格式。有效值为standardalignedhigh_limitblockaligned格式本质上是standard格式,在页面末尾有一些最小填充,这样单个记录将永远不会跨越页面边界。high_limitblock格式仅适用于企业版。如果您的图大小超过 340 亿个节点、340 亿个关系或 680 亿个属性,则需要使用high_limitblock

有效值

字符串。

默认值

block

db.relationship_grouping_threshold

表 124. db.relationship_grouping_threshold

描述

将节点视为密集的节点的关系计数阈值。

有效值

最小值为 1 的整数。

默认值

50

db.store.files.preallocate

表 125. db.store.files.preallocate

描述

指定 Neo4j 是否应该尝试预分配存储文件,因为它们会增长。

有效值

布尔值。

默认值

true

db.temporal.timezone

表 126. db.temporal.timezone

描述

时间函数的数据库时区。所有在没有显式时区的情况下创建的时间和日期时间值将使用此配置的默认时区。

有效值

表示时区的字符串,可以通过偏移量描述(例如+02:00)或通过名称描述(例如Europe/Stockholm)。

默认值

Z

db.track_query_cpu_time

表 127. db.track_query_cpu_time

描述

启用或禁用跟踪查询在 CPU 上积极执行所花费的时间。调用SHOW TRANSACTIONS将显示时间,但不会在query.log中显示。
如果您希望 CPU 时间记录在query.log中,请设置db.track_query_cpu_time=true

有效值

布尔值。

默认值

false

DBMS 设置

DBMS 设置会影响整个 Neo4j DBMS。您可以使用它们来设置默认数据库、DBMS 时区、种子提供者列表和最大数据库数量。DBMS 设置必须在集群/DBMS 中的所有配置文件中保持一致。

initial.dbms.default_database

表 128. initial.dbms.default_database

描述

默认数据库的名称(不支持别名)。
注意:此设置与dbms.default_database不同,后者用于在 Neo4j 4.x 及更早版本中设置默认数据库。

initial.dbms.default_database 设置用于在创建 DBMS 之前设置默认数据库。一旦创建,此设置将不再有效。

要设置默认数据库,请改用 dbms.setDefaultDatabase() 过程。

有效值

有效的数据库名称,仅包含字母、数字、点和连字符,长度在 3 到 63 个字符之间,以字母开头,但不以名称系统开头。

默认值

neo4j

dbms.db.timezone

表 129. dbms.db.timezone

描述

数据库时区。除其他事项外,此设置会影响监控过程。

有效值

其中之一 [UTC, SYSTEM]。

默认值

UTC

dbms.databases.seed_from_uri_providers

表 130. dbms.databases.seed_from_uri_providers

描述

数据库可以从存储在某个源 URI 的现有种子(数据库备份或转储)创建。com.neo4j.dbms.seeding.SeedProvider的不同实现支持不同类型的种子源。有两个可用值,内置的S3SeedProviderURLConnectionSeedProvider。使用s3:寻址的种子受 S3SeedProvider 支持,而存储在fileftphttphttps URI 中的种子受 URLConnectionSeedProvider 支持。此列表指定启用的种子提供者。如果种子源(URI 方案)在列表中受多个提供者支持,则将使用第一个匹配的提供者。如果将列表设置为为空,则 URI 种子功能将被有效地禁用。有关更多信息,请参阅 从 URI 种子

有效值

以逗号分隔的列表,其中每个元素都是一个字符串。

默认值

S3SeedProvider

dbms.max_databases

表 131. dbms.max_databases

描述

数据库的最大数量。

有效值

至少为 2 的长整数。

默认值

100

dbms.usage_report.enabled

表 132. dbms.usage_report.enabled

描述

匿名使用数据报告。

有效值

布尔值。

默认值

true

导入设置

导入设置控制LOAD CSV 使用的内部缓冲区大小和 CSV 文件中引号的转义。

db.import.csv.buffer_size

表 133. db.import.csv.buffer_size

描述

LOAD CSV 使用的内部缓冲区大小(以字节为单位)。如果 csv 文件包含巨大的字段,则可能需要增加此值。

有效值

最小值为 1 的长整型。

默认值

2097152

db.import.csv.legacy_quote_escaping

表 134. db.import.csv.legacy_quote_escaping

描述

选择是否符合标准 https://tools.ietf.org/html/rfc4180 来解释使用LOAD CSV 加载的 CSV 文件中转义的引号字符。将其设置为false 将使用标准,将重复的引号 '""' 解释为单个内联引号,而true 将使用最初在 Neo4j 3.0 和 3.1 中支持的传统约定,允许使用反斜杠在字段中内联包含引号。

有效值

布尔值。

默认值

true

索引设置

索引设置控制全文索引和后台索引采样(块大小限制和样本大小)。有关更多信息,请参阅 索引配置

db.index.fulltext.default_analyzer

表 135. db.index.fulltext.default_analyzer

描述

全文索引默认应使用的分析器名称。

有效值

字符串。

默认值

standard-no-stop-words

db.index.fulltext.eventually_consistent

表 136. db.index.fulltext.eventually_consistent

描述

全文索引默认是否应最终一致。

有效值

布尔值。

默认值

false

db.index.fulltext.eventually_consistent_apply_parallelism

表 137. db.index.fulltext.eventually_consistent_apply_parallelism

描述

处理最终一致的全文索引的排队索引更新的线程数。

有效值

至少为 1 的整数。

默认值

1

db.index.fulltext.eventually_consistent_refresh_interval

表 138. db.index.fulltext.eventually_consistent_refresh_interval

描述

最终一致的全文索引刷新的频率(更改将保证可见)。如果设置为0,则刷新由应用最终一致的全文索引更新的线程完成。

有效值

持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s)。

默认值

0s

db.index.fulltext.eventually_consistent_refresh_parallelism

表 139. db.index.fulltext.eventually_consistent_refresh_parallelism

描述

可以并行执行全文索引刷新的线程数,即可以并行刷新的最终一致的全文索引数。

有效值

至少为 1 的整数。

默认值

1

db.index.fulltext.eventually_consistent_index_update_queue_max_length

表 140. db.index.fulltext.eventually_consistent_index_update_queue_max_length

描述

全文索引的最终一致模式通过将索引更新排队以供稍后在后台线程中应用来工作。此 newBuilder 设置了在任何给定时间点允许此队列中的索引更新数量的上限。当达到该上限时,提交过程将减慢速度并等待索引更新应用程序线程在队列中腾出更多空间。

有效值

150000000 范围内的整数。

默认值

10000

db.index_sampling.background_enabled

表 141. db.index_sampling.background_enabled

描述

启用或禁用后台索引采样。

有效值

布尔值。

默认值

true

db.index_sampling.sample_size_limit

表 142. db.index_sampling.sample_size_limit

描述

索引采样块大小限制。

有效值

10485762147483647 范围内的整数。

默认值

8388608

db.index_sampling.update_percentage

表 143. db.index_sampling.update_percentage

描述

触发给定索引的采样之前所需的索引更新相对于总索引大小的百分比。

有效值

至少为 0 的整数。

默认值

5

日志记录设置

Neo4j 有两个不同的日志记录配置文件,一个用于neo4j.log(其中包含有关 Neo4j 的一般信息),另一个配置文件用于通过 Log4j 2 进行的所有其他类型的日志记录(gc.log 除外,后者由 Java 虚拟机 (JVM) 处理)。有关更多信息,请参阅 日志记录

db.logs.query.annotation_data_as_json_enabled

表 144. db.logs.query.annotation_data_as_json_enabled

描述

将注释数据记录为 JSON 字符串,而不是 Cypher 映射。此配置仅在查询日志采用 JSON 格式时有效。从 5.9 开始,如果为true,它会折叠查询记录器中的嵌套 JSON 对象。

有效值

布尔值。

默认值

false

db.logs.query.annotation_data_format

表 145. db.logs.query.annotation_data_format

描述

用于 JSON 注释数据的格式。

CYPHER

格式化为 Cypher 映射。例如:{foo: 'bar', baz: {k: 1}}

JSON

格式化为 JSON 映射。例如:{"foo": "bar", "baz": {"k": 1}}

FLAT_JSON

格式化为扁平化的 JSON 映射。例如:{"foo": "bar", "baz.k": 1}

这仅在查询日志采用 JSON 格式时有效。

有效值

其中之一 [CYPHER, JSON, FLAT_JSON]。

默认值

CYPHER

db.logs.query.early_raw_logging_enabled

表 146. db.logs.query.early_raw_logging_enabled

描述

在不模糊密码的情况下记录查询文本和参数。这允许在解析开始之前更早地记录查询。

有效值

布尔值。

默认值

false

db.logs.query.enabled

表 147. db.logs.query.enabled

描述

记录执行的查询。有效值为 OFFINFOVERBOSE

OFF

不记录。

INFO

在执行结束时记录查询,这些查询的执行时间超过配置的阈值db.logs.query.threshold

VERBOSE

在执行开始和结束时记录查询,无论db.logs.query.threshold 如何。

日志条目将写入查询日志。

此功能在 Neo4j 企业版中可用。

有效值

其中之一 [OFF, INFO, VERBOSE]。

默认值

VERBOSE

db.logs.query.max_parameter_length

表 148. db.logs.query.max_parameter_length

描述

设置日志中每个参数使用的最大字符长度。这仅在db.logs.query.parameter_logging_enabled = true 时有效。

有效值

整数。

默认值

2147483647

db.logs.query.obfuscate_literals

表 149. db.logs.query.obfuscate_literals

描述

在写入日志之前,对查询的所有文字进行模糊处理。请注意,节点标签、关系类型和映射属性键仍然会显示。更改设置不会影响已缓存的查询。因此,如果您希望更改立即生效,您还必须调用CALL db.clearQueryCaches()

有效值

布尔值。

默认值

false

db.logs.query.parameter_logging_enabled

表 150. db.logs.query.parameter_logging_enabled

描述

记录正在记录的执行查询的参数。

有效值

布尔值。

默认值

true

db.logs.query.plan_description_enabled

表 151. db.logs.query.plan_description_enabled

描述

记录查询计划说明表,这在调试时很有用。

有效值

布尔值。

默认值

false

db.logs.query.threshold

表 152. db.logs.query.threshold

描述

如果查询的执行时间超过此阈值,则在查询完成后记录该查询 - 只要查询日志记录设置为 INFO。默认值为 0 秒,即记录所有查询。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

0s

db.logs.query.transaction.enabled

表 153. db.logs.query.transaction.enabled

描述

记录事务的开始和结束。有效值为 'OFF'、'INFO' 或 'VERBOSE'。OFF:不记录。INFO:记录执行时间超过配置的阈值db.logs.query.transaction.threshold 的事务的开始和结束。VERBOSE:记录所有事务的开始和结束。日志条目将写入查询日志。

有效值

其中之一 [OFF, INFO, VERBOSE]。

默认值

OFF

db.logs.query.transaction.threshold

表 154. db.logs.query.transaction.threshold

描述

如果事务打开时间超过此阈值,则在事务完成后记录该事务 - 只要事务日志记录(db.logs.query.transaction.enabled)设置为 INFO。默认值为 0 秒(记录所有事务)。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

0s

dbms.logs.http.enabled

表 155. dbms.logs.http.enabled

描述

启用 HTTP 请求日志记录。

有效值

布尔值。

默认值

false

server.logs.config

表 156. server.logs.config

描述

调试、查询、http 和安全日志的日志记录配置的路径。

有效值

路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

conf/server-logs.xml

server.logs.debug.enabled

表 157. server.logs.debug.enabled

描述

启用调试日志。

有效值

布尔值。

默认值

true

server.logs.gc.enabled

表 158. server.logs.gc.enabled

描述

启用 GC 日志记录。

有效值

布尔值。

默认值

false

server.logs.gc.options

表 159. server.logs.gc.options

描述

GC 日志记录选项。

有效值

字符串。

默认值

-Xlog:gc*,safepoint,age*=trace

server.logs.gc.rotation.keep_number

表 160. server.logs.gc.rotation.keep_number

描述

要保留的 GC 日志数量。

有效值

整数。

默认值

5

server.logs.gc.rotation.size

表 161. server.logs.gc.rotation.size

描述

保留的每个 GC 日志的大小。

有效值

字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

20.00MiB

server.logs.user.config

表 162. server.logs.user.config

描述

用户日志的日志记录配置路径。

有效值

路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

conf/user-logs.xml

内存设置

内存设置控制为 Neo4j 分配多少内存以及如何使用它。建议执行一定数量的测试并调整这些设置以找出可用内存的最佳分配。有关如何调整这些设置的更多信息,请参阅 内存配置磁盘、RAM 和其他技巧 以及 垃圾回收器调优

db.memory.pagecache.warmup.enable

表 163. db.memory.pagecache.warmup.enable

描述

可以将页面缓存配置为执行已加载页面的使用情况采样,这些样本可用于构建活动负载配置文件。根据该配置文件,可以在重启、复制等操作中重新加载页面。此设置允许禁用该行为。此功能在 Neo4j 企业版中可用。

有效值

布尔值。

默认值

true

db.memory.pagecache.warmup.preload

表 164. db.memory.pagecache.warmup.preload

描述

可以将页面缓存预热配置为预取文件,最好是在缓存大小大于存储大小的情况下。要预取的文件可以通过“dbms.memory.pagecache.warmup.preload.allowlist”进行过滤。启用此功能会禁用通过配置文件的预热。

有效值

布尔值。

默认值

false

db.memory.pagecache.warmup.preload.allowlist

表 165. db.memory.pagecache.warmup.preload.allowlist

描述

页面缓存预热预取文件允许列表正则表达式。默认情况下匹配所有文件。

有效值

字符串。

默认值

.*

db.memory.pagecache.warmup.profile.interval

表 166. db.memory.pagecache.warmup.profile.interval

描述

页面缓存的分析频率。准确的分析配置文件使页面缓存能够在重启后执行主动预热,从而减少平均性能时间。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

1m

db.memory.transaction.max

表 167. db.memory.transaction.max

描述

限制单个事务可以使用的内存量,以字节为单位(或使用“k”后缀的千字节,使用“m”后缀的兆字节,使用“g”后缀的千兆字节)。零表示“最大可能值”。

有效值

字节大小(有效的乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小为 1.00MiB0B

默认值

0B

db.memory.transaction.total.max

表 168. db.memory.transaction.total.max

描述

限制单个数据库中所有事务可以使用的内存量,以字节为单位(或使用“k”后缀的千字节,使用“m”后缀的兆字节,使用“g”后缀的千兆字节)。零表示“无限制”。

有效值

字节大小(有效的乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小为 10.00MiB0B

默认值

0B

db.tx_state.memory_allocation

表 169. db.tx_state.memory_allocation

描述

定义是否应在堆上或堆外分配事务状态内存。请注意,对于小型事务,通过将其设置为 ON_HEAP,您可以将写入速度提高高达 25%。

有效值

[ON_HEAP, OFF_HEAP] 之一。

默认值

ON_HEAP

server.db.query_cache_size

表 170. server.db.query_cache_size

描述

每个数据库的缓存的 Cypher 查询执行计划数量。缓存中可以保存的查询计划的最大数量为 数据库数量 * server.db.query_cache_size。对于 10 个数据库,server.db.query_cache_size=1000,缓存总共可以保存 10000 个计划在实例上,假设每个数据库都接收填充其缓存的查询。

有效值

至少为 0 的整数。

默认值

1000

dbms.memory.tracking.enable

表 171. dbms.memory.tracking.enable

描述

启用堆外和堆内内存跟踪。对于集群,不应将其设置为 false

有效值

布尔值。

默认值

true

dbms.memory.transaction.total.max

表 172. dbms.memory.transaction.total.max

描述

限制所有正在运行的事务可以使用的内存量,以字节为单位(或使用“k”后缀的千字节,使用“m”后缀的兆字节,使用“g”后缀的千兆字节)。零表示“无限制”。默认值为堆大小限制的 70%。

有效值

字节大小(有效的乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小为 10.00MiB0B

默认值

server.memory.heap.initial_size

表 173. server.memory.heap.initial_size

描述

初始堆大小。默认情况下,它是根据可用系统资源计算的。

有效值

字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

server.memory.heap.max_size

表 174. server.memory.heap.max_size

描述

最大堆大小。默认情况下,它是根据可用系统资源计算的。

有效值

字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

server.memory.off_heap.block_cache_size

表 175. server.memory.off_heap.block_cache_size

描述

定义堆外内存块缓存的大小。缓存将包含每个块大小的块数量(该块大小为 2 的幂)。因此,块缓存使用的最大内存量可以计算为 2 * server.memory.off_heap.max_cacheable_block_size * server.memory.off_heap.block_cache_size

有效值

最小为 16 的整数。

默认值

128

server.memory.off_heap.max_cacheable_block_size

表 176. server.memory.off_heap.max_cacheable_block_size

描述

定义可以缓存的堆外内存块的最大大小,以加快分配速度。该值必须为 2 的幂。

有效值

字节大小(有效的乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小为 4.00KiB 并且为 2 的幂。

默认值

512.00KiB

server.memory.off_heap.transaction_max_size

表 177. server.memory.off_heap.transaction_max_size

描述

可以用于存储事务状态数据的堆外内存的最大量;它是所有活动事务共享的总内存量。零表示“无限制”。当 db.tx_state.memory_allocation 设置为“OFF_HEAP”时使用。

有效值

字节大小(有效的乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小为 0B

默认值

2.00GiB

server.memory.pagecache.directio

表 178. server.memory.pagecache.directio

描述

对页面缓存使用直接 I/O。此设置仅在 Linux 上支持,并且仅支持使用平台对齐页面大小的记录格式子集。

有效值

布尔值。

默认值

false

server.memory.pagecache.flush.buffer.enabled

表 179. server.memory.pagecache.flush.buffer.enabled

描述

可以将页面缓存配置为使用临时缓冲区进行刷新。它用于将多个缓存页面的序列(如果可能)组合成一个更大的缓冲区,以最大限度地减少执行的单个 IOPS 数量,并更好地利用可用的 I/O 资源,尤其是在这些资源受到限制的情况下。

有效值

布尔值。

默认值

false

server.memory.pagecache.flush.buffer.size_in_pages

表 180. server.memory.pagecache.flush.buffer.size_in_pages

描述

可以将页面缓存配置为使用临时缓冲区进行刷新。它用于将多个缓存页面的序列(如果可能)组合成一个更大的缓冲区,以最大限度地减少执行的单个 IOPS 数量,并更好地利用可用的 I/O 资源,尤其是在这些资源受到限制的情况下。使用此设置以页面(8KiB)配置单个文件刷新的缓冲区大小。为了能够在页面缓存刷新期间利用此缓冲区,应启用缓冲刷新。

有效值

范围在 1512 之间的整数。

默认值

128

server.memory.pagecache.scan.prefetchers

表 181. server.memory.pagecache.scan.prefetchers

描述

用于在执行顺序扫描时预取数据的最大工作线程数量。设置为“0”表示禁用扫描的预取。

有效值

范围在 0255 之间的整数。

默认值

4

server.memory.pagecache.size

表 182. server.memory.pagecache.size

描述

用于映射存储文件使用的内存量。如果 Neo4j 正在专用服务器上运行,则通常建议为操作系统保留约 2-4 千兆字节,为 JVM 提供足够的堆来保存所有事务状态和查询上下文,然后将剩余部分保留给页面缓存。如果未配置页面缓存内存,则将根据可用系统资源计算启发式设置。默认情况下,页面缓存的大小将为可用 RAM 的 50% 减去最大堆大小。页面缓存的大小也不会大于最大堆大小的 70 倍(因为堆中存在一些页面缓存的开销)。

有效值

字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB)。

默认值

server.memory.query_cache.sharing_enabled

表 183. server.memory.query_cache.sharing_enabled

描述

启用不同数据库之间共享缓存空间。启用此选项后,数据库将共享缓存空间,但不会共享缓存条目。这意味着数据库可以从共享缓存中存储和检索条目,但不能检索由另一个数据库生成的条目。但是,数据库可能会根据受限的缓存大小和缓存清除策略,根据需要清除其他数据库的条目。本质上,数据库可能会争用缓存空间,但可能不会观察到彼此的条目。

启用此选项后,所有数据库可用的缓存空间将使用 server.memory.query_cache.shared_cache_num_entries 进行配置。禁用此选项后,每个数据库可用的缓存空间将使用 server.memory.query_cache.per_db_cache_num_entries 进行配置。

有效值

布尔值。

默认值

false

server.memory.query_cache.shared_cache_num_entries

表 184. server.memory.query_cache.shared_cache_num_entries

描述

所有数据库的缓存查询数量。缓存中可以保存的最大查询数量正好为 server.memory.query_cache.shared_cache_num_entries。仅当 server.memory.query_cache.sharing_enabled 设置为 true 时,此设置才会决定缓存大小。

有效值

至少为 0 的整数。

默认值

1000

server.memory.query_cache.per_db_cache_num_entries

表 185. server.memory.query_cache.per_db_cache_num_entries

描述

每个数据库缓存的查询数量。缓存中可以保存的最大查询数量为 数据库数量 * server.memory.query_cache.per_db_cache_num_entries。如果有 10 个数据库,并且 server.memory.query_cache.per_db_cache_num_entries = 1000,则缓存总共可以保存 10000 个计划。当 server.memory.query_cache.sharing_enabled 设置为 false 时,此设置仅决定缓存大小。

有效值

至少为 0 的整数。

默认值

1000

指标设置

指标设置控制 Neo4j 是否记录指标、记录哪些指标、如何记录指标以及如何公开指标。要更好地了解指标设置以及如何配置指标设置,请参阅 指标

server.metrics.csv.enabled

表 186. server.metrics.csv.enabled

描述

设置为 true 以启用将指标导出到 CSV 文件。

有效值

布尔值。

默认值

true

server.metrics.csv.interval

表 187. server.metrics.csv.interval

描述

CSV 文件的报告间隔。也就是说,多久向 CSV 文件追加一次包含数字的新行。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s),最小值为 1ms

默认值

30s

server.metrics.csv.rotation.compression

表 188. server.metrics.csv.rotation.compression

描述

决定为 csv 历史记录文件使用哪种压缩方式。

有效值

其中之一为 [NONE, ZIP, GZ]。

默认值

NONE

server.metrics.csv.rotation.keep_number

表 189. server.metrics.csv.rotation.keep_number

描述

csv 文件的历史记录文件的最大数量。

有效值

最小值为 1 的整数。

默认值

7

server.metrics.csv.rotation.size

表 190. server.metrics.csv.rotation.size

描述

csv 文件自动轮换的文件大小(以字节为单位)。如果设置为零,则不会发生轮换。接受二进制后缀 kmg

有效值

字节大小(有效的乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),范围为 0B8388608.00TiB

默认值

10.00MiB

server.metrics.enabled

表 191. server.metrics.enabled

描述

启用指标。将其设置为 false 将关闭所有指标。

有效值

布尔值。

默认值

true

server.metrics.filter

表 192. server.metrics.filter

描述

使用逗号分隔的 glob 模式列表指定应启用哪些指标。只有与过滤器匹配的指标才会被启用。例如,*check_point*,neo4j.page_cache.evictions 将启用所有检查点指标和页面缓存驱逐指标。

有效值

逗号分隔的列表,每个元素都是一个简单的 glob 模式,可以使用 *?

默认值

*bolt.connections*,*bolt.messages_received*,*bolt.messages_started*,*dbms.pool.bolt.free,*dbms.pool.bolt.total_size,*dbms.pool.bolt.total_used,*dbms.pool.bolt.used_heap,*cluster.raft.is_leader,*cluster.raft.last_leader_message,*cluster.raft.replication_attempt,*cluster.raft.replication_fail,*cluster.raft.last_applied,*cluster.raft.last_appended,*cluster.raft.append_index,*cluster.raft.commit_index,*cluster.raft.applied_index,*cluster.internal.discovery.memberset.left,*cluster.internal.discovery.crdt.gossip_id_data.size,*cluster.internal.discovery.crdt.server_data.size,*cluster.internal.discovery.crdt.database_data.size,*cluster.internal.discovery.crdt.leader_data.size,*cluster.internal.discovery.crdt.total_merge_operations,*cluster.internal.discovery.crdt.total_update_operations,*cluster.internal.discovery.gossip.incoming_queue_size,*cluster.internal.discovery.gossip.total_received_data,*cluster.internal.discovery.gossip.total_sent_data,*cluster.internal.discovery.gossip.uncontactable_members_exist,*check_point.*,*cypher.replan_events,*ids_in_use*,*pool.transaction.*.total_used,*pool.transaction.*.used_heap,*pool.transaction.*.used_native,*store.size*,*transaction.active_read,*transaction.active_write,*transaction.committed*,*transaction.last_committed_tx_id,*transaction.peak_concurrent,*transaction.rollbacks*,*page_cache.hit*,*page_cache.page_faults,*page_cache.usage_ratio,*vm.file.descriptors.count,*vm.gc.time.*,*vm.heap.used,*vm.memory.buffer.direct.used,*vm.memory.pool.g1_eden_space,*vm.memory.pool.g1_old_gen,*vm.pause_time,*vm.thread*,*db.query.execution*

server.metrics.graphite.enabled

表 193. server.metrics.graphite.enabled

描述

设置为 true 以启用将指标导出到 Graphite。

有效值

布尔值。

默认值

false

server.metrics.graphite.interval

表 194. server.metrics.graphite.interval

描述

Graphite 的报告间隔。也就是说,多久向 Graphite 发送一次更新的指标。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

30s

server.metrics.graphite.server

表 195. server.metrics.graphite.server

描述

Graphite 服务器的主机名或 IP 地址。

有效值

一个格式为 hostname:porthostname:port 的套接字地址。如果缺失,则从 server.default_listen_address 获取。

默认值

:2003

server.metrics.jmx.enabled

表 196. server.metrics.jmx.enabled

描述

设置为 true 以启用 JMX 指标端点。

有效值

布尔值。

默认值

true

server.metrics.prefix

表 197. server.metrics.prefix

描述

报告的指标字段名的通用前缀。

有效值

字符串。

默认值

neo4j

server.metrics.prometheus.enabled

表 198. server.metrics.prometheus.enabled

描述

设置为 true 以启用 Prometheus 端点。

有效值

布尔值。

默认值

false

server.metrics.prometheus.endpoint

表 199. server.metrics.prometheus.endpoint

描述

用作 Prometheus 端点的主机名和端口。

有效值

格式为 hostname:porthostname:port 的套接字地址。如果缺失,则从 server.default_listen_address 获取。

默认值

localhost:2004

Neo4j 浏览器和客户端设置

Neo4j 浏览器和客户端设置仅适用于 Neo4j 浏览器和客户端。

browser.allow_outgoing_connections

表 200. browser.allow_outgoing_connections

描述

配置出站 Neo4j 浏览器连接的策略。

有效值

布尔值。

默认值

true

browser.credential_timeout

表 201. browser.credential_timeout

描述

配置 Neo4j 浏览器,使其在空闲一段时间后使已登录的用户超时。将其设置为 0 表示没有限制。

有效值

持续时间(有效单位为:ns、μs、ms、s、m、h 和 d;默认单位为 s)。

默认值

0s

browser.post_connect_cmd

表 202. browser.post_connect_cmd

描述

Neo4j 浏览器成功连接到此服务器时要运行的命令。使用分号分隔多个命令。

有效值

字符串。

默认值

browser.remote_content_hostname_whitelist

表 203. browser.remote_content_hostname_whitelist

描述

Neo4j 浏览器允许从中获取内容的主机白名单。

有效值

字符串。

默认值

guides.neo4j.com,localhost

browser.retain_connection_credentials

表 204. browser.retain_connection_credentials

描述

配置 Neo4j 浏览器,使其存储或不存储用户凭据。

有效值

布尔值。

默认值

true

browser.retain_editor_history

表 205. browser.retain_editor_history

描述

配置 Neo4j 浏览器,使其存储或不存储用户编辑器历史记录。

有效值

布尔值。

默认值

true

client.allow_telemetry

表 206. client.allow_telemetry

描述

配置浏览器和 Bloom 等客户端应用程序以发送产品分析数据。

有效值

布尔值。

默认值

true

Kubernetes 设置

Kubernetes 设置用于配置在 Kubernetes 上运行的集群,其中每个服务器都作为 Kubernetes 服务运行。可以使用列表服务 API 获取其他服务器的地址,如 Kubernetes API 文档 中所述。有关详细信息,请参阅 Kubernetes 中的发现

dbms.kubernetes.address

表 207. dbms.kubernetes.address

描述

Kubernetes API 的地址。

有效值

格式为 hostname:porthostname:port 的套接字地址。

默认值

kubernetes.default.svc:443

dbms.kubernetes.ca_crt

表 208. dbms.kubernetes.ca_crt

描述

Kubernetes API 的 CA 证书的文件位置。

有效值

路径。

默认值

/var/run/secrets/kubernetes.io/serviceaccount/ca.crt

dbms.kubernetes.cluster_domain

表 209. dbms.kubernetes.cluster_domain

描述

Kubernetes 集群域。

有效值

字符串。

默认值

cluster.local

dbms.kubernetes.label_selector

表 210. dbms.kubernetes.label_selector

描述

Kubernetes API 的 LabelSelector。

有效值

字符串。

默认值

dbms.kubernetes.namespace

表 211. dbms.kubernetes.namespace

描述

Kubernetes API 的命名空间的文件位置。

有效值

路径。

默认值

/var/run/secrets/kubernetes.io/serviceaccount/namespace

dbms.kubernetes.service_port_name

表 212. dbms.kubernetes.service_port_name

描述

Kubernetes API 发现的服务端口名称。

有效值

字符串。

默认值

dbms.kubernetes.discovery.v2.service_port_name

表 213. dbms.kubernetes.discovery.v2.service_port_name

描述

Kubernetes API 的 Discovery v2 服务端口名称。

有效值

字符串。

默认值

transaction

dbms.kubernetes.token

表 214. dbms.kubernetes.token

描述

Kubernetes API 的令牌的文件位置。

有效值

路径。

默认值

/var/run/secrets/kubernetes.io/serviceaccount/token

安全设置

安全设置用于配置 Neo4j 部署的安全措施。有关 Neo4j 中安全的详细信息,请参阅 安全 部分。

dbms.security.allow_csv_import_from_file_urls

表 215. dbms.security.allow_csv_import_from_file_urls

描述

确定 Cypher 是否允许使用文件 URL 在使用 LOAD CSV 加载数据时。将此值设置为 false 将导致 Neo4j 使从文件系统加载数据的 LOAD CSV 子句失败。

有效值

布尔值。

默认值

true

dbms.security.auth_cache_max_capacity

表 216. dbms.security.auth_cache_max_capacity

描述

身份验证和授权缓存(分别)的最大容量。

有效值

整数。

默认值

10000

dbms.security.auth_cache_ttl

表 217. dbms.security.auth_cache_ttl

描述

使用外部身份验证提供程序(OIDC、LDAP 或插件)时,缓存的身份验证和授权信息的生存时间(TTL)。将 TTL 设置为 0 将禁用身份验证缓存。在使用 LDAP 身份验证提供程序时禁用缓存需要使用 LDAP 系统帐户来解析授权信息。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

10m

dbms.security.auth_cache_use_ttl

表 218. dbms.security.auth_cache_use_ttl

描述

为外部身份验证提供程序(OIDC、LDAP 或插件)启用身份验证和授权信息缓存的基于时间的驱逐。禁用此设置将使缓存永远存在,并且只有在 dbms.security.auth_cache_max_capacity 被超出时才会被驱逐。

有效值

布尔值。

默认值

true

dbms.security.auth_enabled

表 219. dbms.security.auth_enabled

描述

启用访问 Neo4j 的身份验证要求。

有效值

布尔值。

默认值

true

dbms.security.auth_minimum_password_length

表 220. dbms.security.auth_minimum_password_length

描述

密码所需的最小字符数。

有效值

最小值为 1 的整数。

默认值

8

dbms.security.auth_lock_time

表 221. dbms.security.auth_lock_time

描述

在配置的若干次不成功身份验证尝试后,用户帐户应锁定的时间长度。锁定用户将无法登录,直到锁定时间段过期,即使提供正确的凭据也是如此。不建议将此配置选项设置为较低的值,因为它可能会让攻击者更容易对密码进行暴力破解。

有效值

一个持续时间(有效单位为:nsμsmssmhd;默认单位为 s),最小值为 0s

默认值

5s

dbms.security.auth_max_failed_attempts

表 222. dbms.security.auth_max_failed_attempts

描述

在对用户进行配置时间内锁定之前,允许的最大不成功身份验证尝试次数,由 dbms.security.auth_lock_time 定义。即使提供了正确的凭据,被锁定的用户也无法登录,直到锁定时间到期。将此配置选项设置为小于 3 的值不建议这样做,因为它可能会使攻击者更容易对密码进行暴力破解。

有效值

至少为 0 的整数。

默认值

3

dbms.security.authentication_providers

表 223. dbms.security.authentication_providers

描述

包含用户和角色的安全身份验证提供程序列表。这可以是任何内置的 nativeldap 提供程序,也可以是外部提供的插件,其自定义名称以 plugin- 为前缀,例如 plugin-<AUTH_PROVIDER_NAME>。当尝试登录时,它们将按给定顺序进行查询。

有效值

以逗号分隔的列表,其中每个元素都是一个字符串。

默认值

native

dbms.security.authorization_providers

表 224. dbms.security.authorization_providers

描述

包含用户和角色的安全授权提供程序列表。这可以是任何内置的 nativeldap 提供程序,也可以是外部提供的插件,其自定义名称以 plugin- 为前缀,例如 plugin-<AUTH_PROVIDER_NAME>。当尝试登录时,它们将按给定顺序进行查询。

有效值

以逗号分隔的列表,其中每个元素都是一个字符串。

默认值

native

dbms.security.cluster_status_auth_enabled

表 225. dbms.security.cluster_status_auth_enabled

描述

要求对因果集群状态端点进行授权。

有效值

布尔值。

默认值

true

dbms.security.http_access_control_allow_origin

表 226. dbms.security.http_access_control_allow_origin

描述

通过任何 HTTP 或 HTTPS 连接器发送的 Access-Control-Allow-Origin 标头的值。默认值为“*”,它允许最广泛的兼容性。请注意,这里提供的任何 URI 仅将 HTTP/HTTPS 访问限制到该 URI。

有效值

字符串。

默认值

*

dbms.security.http_auth_allowlist

表 227. dbms.security.http_auth_allowlist

描述

定义 Neo4j 身份验证不需要的 http 路径白名单。

有效值

以逗号分隔的列表,其中每个元素都是一个字符串。

默认值

/,/browser.*

dbms.security.http_strict_transport_security

表 228. dbms.security.http_strict_transport_security

描述

HTTP 严格传输安全 (HSTS) 响应标头的值。此标头告诉浏览器网页应该仅通过 HTTPS 访问,而不是通过 HTTP 访问。它附加到每个 HTTPS 响应。默认情况下不会设置此设置,因此不会发送“Strict-Transport-Security”标头。预计值将包含指令,如“max-age”、“includeSubDomains”和“preload”。

有效值

字符串。

默认值

dbms.security.http_static_content_security_policy_header

表 229. dbms.security.http_static_content_security_policy_header

描述

定义返回到静态端点上返回的内容的 Content-Security-Policy 标头。

有效值

字符串。

默认值

default-src 'self'; script-src 'self' cdn.segment.com canny.io; img-src 'self' guides.neo4j.com data:; style-src 'self' fonts.googleapis.com 'unsafe-inline'; font-src 'self' fonts.gstatic.com; base-uri 'none'; object-src 'none'; frame-ancestors 'none'; connect-src 'self' api.canny.io api.segment.io ws: wss: http: https

dbms.security.key.name

表 230. dbms.security.key.name

描述

256 长度 AES 加密密钥的名称,用于对称加密。

有效值

字符串。

默认值

aesKey

dbms.security.keystore.password

表 231. dbms.security.keystore.password

描述

访问密钥库的密码,该密钥库保存 256 长度 AES 加密密钥,用于对称加密。

有效值

一个安全的字符串。

默认值

dbms.security.keystore.path

表 232. dbms.security.keystore.path

描述

保存 256 长度 AES 加密密钥的密钥库的位置,用于对系统数据库中保存的秘密进行对称加密。

有效值

路径。

默认值

dbms.security.ldap.authentication.attribute

表 233. dbms.security.ldap.authentication.attribute

描述

有效值

一个与模式 [A-Za-z0-9-]* 匹配的字符串(必须是有效的 LDAP 属性名称,仅包含字母 [A-Za-z]、数字 [0-9] 和连字符 [-])。

默认值

samaccountname

dbms.security.ldap.authentication.cache_enabled

表 234. dbms.security.ldap.authentication.cache_enabled

描述

确定是否应该缓存通过 LDAP 服务器进行身份验证的结果。缓存用于限制必须通过网络针对已成功验证的用户进行的 LDAP 请求的数量。只要缓存条目有效(请参见 dbms.security.auth_cache_ttl),用户就可以根据现有缓存条目进行身份验证(而不是通过 LDAP 服务器)。将此设置为 true 的一个重要结果是 Neo4j 然后需要缓存凭据的哈希版本才能执行凭据匹配。此哈希使用加密哈希函数以及随机盐来完成。最好有意识地决定是否通过组织的安全标准(在部署此 Neo4j 实例的地方)认为这种方法是可以接受的。

有效值

布尔值。

默认值

true

dbms.security.ldap.authentication.mechanism

表 235. dbms.security.ldap.authentication.mechanism

描述

LDAP 身份验证机制。这可以是 simple 或 JNDI 支持的 SASL 机制,例如 DIGEST-MD5simple 是基本的用户名和密码身份验证,而 SASL 用于更高级的机制。有关更多详细信息,请参见 RFC 2251 LDAPv3 文档。

有效值

字符串。

默认值

simple

dbms.security.ldap.authentication.search_for_attribute

表 236. dbms.security.ldap.authentication.search_for_attribute

描述

通过搜索用户的唯一属性来执行身份验证。使用此设置需要配置 dbms.security.ldap.authorization.system_usernamedbms.security.ldap.authorization.system_password

有效值

布尔值。

默认值

false

dbms.security.ldap.authentication.user_dn_template

表 237. dbms.security.ldap.authentication.user_dn_template

描述

LDAP 用户 DN 模板。LDAP 对象通过其可区分名称 (DN) 进行引用,用户 DN 是 LDAP 的完全限定的唯一用户标识符。此设置用于从登录时提交的具有身份验证令牌的用户主体生成符合 LDAP 目录模式的 LDAP DN。特殊令牌 {0} 是一个占位符,用户主体将被替换到 DN 字符串中。

有效值

一个必须包含“{0}”以了解在何处插入运行时身份验证主体的字符串。

默认值

uid={0},ou=users,dc=example,dc=com

dbms.security.ldap.authorization.access_permitted_group

表 238. dbms.security.ldap.authorization.access_permitted_group

描述

用户必须所属的 LDAP 组才能访问系统。设置此选项以限制对属于特定组的 LDAP 用户子集的访问。如果没有设置此选项,任何通过 LDAP 成功进行身份验证的用户都将有权访问 PUBLIC 角色以及通过 dbms.security.ldap.authorization.group_to_role_mapping 分配给他们的任何其他角色。

有效值

字符串。

默认值

dbms.security.ldap.authorization.group_membership_attributes

表 239. dbms.security.ldap.authorization.group_membership_attributes

描述

用户对象上包含用于映射到角色(当启用 LDAP 授权时)的组的属性名称列表。当 dbms.ldap_authorization_nested_groups_enabledtrue 时,将忽略此设置。

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串,该字符串不能是空字符串。

默认值

memberOf

dbms.security.ldap.authorization.group_to_role_mapping

表 240. dbms.security.ldap.authorization.group_to_role_mapping

描述

从 LDAP 组名到 Neo4j 角色名的授权映射。该映射应格式化为一个用分号分隔的键值对列表,其中键是 LDAP 组名,值是用逗号分隔的对应角色名列表。例如:group1=role1;group2=role2;group3=role3,role4,role5 您也可以使用空格和引号将组名括起来,使此映射更易于阅读,例如

`dbms.security.ldap.authorization.group_to_role_mapping`=\
         "cn=Neo4j Read Only,cn=users,dc=example,dc=com"      = reader;    \
         "cn=Neo4j Read-Write,cn=users,dc=example,dc=com"     = publisher; \
         "cn=Neo4j Schema Manager,cn=users,dc=example,dc=com" = architect; \
         "cn=Neo4j Administrator,cn=users,dc=example,dc=com"  = admin

有效值

一个必须是分号分隔的键值对列表或空字符串的字符串。

默认值

dbms.security.ldap.authorization.nested_groups_enabled

表 241. dbms.security.ldap.authorization.nested_groups_enabled

描述

此设置确定是否将处理多个 LDAP 搜索结果(如嵌套组查找所需的那样)。如果设置为 true,则不会使用用户对象上的属性来确定组成员身份(如 dbms.security.ldap.authorization.group_membership_attributes 指定的那样),而是将 user 对象仅用于确定用户的可区分名称,该名称随后将与 dbms.security.ldap.authorization.user_search_filter 一起使用以执行嵌套组搜索。结果组搜索结果的可区分名称将用于确定角色。

有效值

布尔值。

默认值

false

dbms.security.ldap.authorization.nested_groups_search_filter

表 242. dbms.security.ldap.authorization.nested_groups_search_filter

描述

用于查找用户是其成员的嵌套组的搜索模板。该过滤器应包含占位符令牌 {0},该令牌将被替换为用户的可区分名称(使用 dbms.security.ldap.authorization.user_search_filter 为指定的用户主体找到的)。默认值指定 Active Directory 的 LDAP_MATCHING_RULE_IN_CHAIN(又名 1.2.840.113556.1.4.1941)实现,该实现将遍历指定用户的组成员身份的祖先关系。

有效值

字符串。

默认值

(&(objectclass=group)(member:1.2.840.113556.1.4.1941:={0}))

dbms.security.ldap.authorization.system_password

表 243. dbms.security.ldap.authorization.system_password

描述

dbms.security.ldap.authorization.use_system_accounttrue 时,用于授权搜索的 LDAP 系统帐户密码。

有效值

一个安全的字符串。

默认值

dbms.security.ldap.authorization.system_username

表 244. dbms.security.ldap.authorization.system_username

描述

dbms.security.ldap.authorization.use_system_accounttrue 时,用于授权搜索的 LDAP 系统帐户用户名。请注意,dbms.security.ldap.authentication.user_dn_template 不会应用于此用户名,因此您可能需要指定完整的 DN。

有效值

字符串。

默认值

dbms.security.ldap.authorization.use_system_account

表 245. dbms.security.ldap.authorization.use_system_account

描述

使用系统帐户而不是用户的帐户执行 LDAP 授权信息搜索。如果将其设置为 false(默认值),则将在使用用户的帐户绑定的 LDAP 上下文中进行身份验证后立即执行组成员资格搜索。映射的角色将缓存 dbms.security.auth_cache_ttl 的持续时间,然后过期,需要重新认证。为了避免频繁地重新认证会话,您可能希望将此选项与较长的身份验证缓存过期时间一起设置。
注意:此选项仅在用户被允许在目录中搜索他们自己的组成员资格属性时有效。如果将其设置为 true,则将使用具有对目录中所有用户读取权限的特殊系统帐户用户执行搜索。您需要使用设置 dbms.security.ldap.authorization.system_usernamedbms.security.ldap.authorization.system_password 指定用户名和密码。请注意,此帐户只需要对 LDAP 目录的相关部分具有读取访问权限,不需要对 Neo4j 或任何其他系统具有访问权限。

有效值

布尔值。

默认值

false

dbms.security.ldap.authorization.user_search_base

表 246. dbms.security.ldap.authorization.user_search_base

描述

启用 LDAP 授权时,用于搜索用户对象的基对象或命名上下文的名称。一个常见情况是,这与 dbms.security.ldap.authentication.user_dn_template 的最后一部分匹配。

有效值

不能为空的字符串。

默认值

ou=users,dc=example,dc=com

dbms.security.ldap.authorization.user_search_filter

表 247. dbms.security.ldap.authorization.user_search_filter

描述

启用 LDAP 授权时,用于搜索用户主体的 LDAP 搜索过滤器。过滤器应包含占位符标记 {0},它将被用户主体替换。

有效值

字符串。

默认值

(&(objectClass=*)(uid={0}))

dbms.security.ldap.connection_timeout

表 248. dbms.security.ldap.connection_timeout

描述

建立 LDAP 连接的超时时间。如果在给定时间内无法与 LDAP 服务器建立连接,则会中止尝试。值为 0 表示使用网络协议(即 TCP)的超时值。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

30s

dbms.security.ldap.host

表 249. dbms.security.ldap.host

描述

用于身份验证和授权的 LDAP 服务器的 URL。该设置的格式为 <protocol>://<hostname>:<port>,其中 hostname 是唯一必填字段。protocol 支持的值为 ldap(默认值)和 ldapsldap 的默认端口为 389,ldaps 为 636。例如:ldaps://ldap.example.com:10389。您可能希望考虑使用 STARTTLS (dbms.security.ldap.use_starttls) 而不是 LDAPS 来进行安全连接,在这种情况下,正确的协议是 ldap

有效值

字符串。

默认值

localhost

dbms.security.ldap.read_timeout

表 250. dbms.security.ldap.read_timeout

描述

LDAP 读取请求(即搜索)的超时时间。如果 LDAP 服务器在给定时间内没有响应,则请求将被中止。值为 0 表示无限期地等待响应。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

30s

dbms.security.ldap.referral

表 251. dbms.security.ldap.referral

描述

创建连接时的 LDAP 转发行为。这可能是 followignorethrow 之一。

  • follow 自动跟随所有转发

  • ignore 忽略所有转发

  • throw 抛出异常,这将导致身份验证失败。

有效值

字符串。

默认值

follow

dbms.security.ldap.use_starttls

表 252. dbms.security.ldap.use_starttls

描述

使用机会性 TLS 与 LDAP 服务器进行安全通信。首先将与 LDAP 服务器建立初始非安全连接,并在启动身份验证之前发出 STARTTLS 命令以协商将连接升级到 TLS。

有效值

布尔值。

默认值

false

dbms.security.log_successful_authentication

表 253. dbms.security.log_successful_authentication

描述

设置为将成功身份验证事件记录到安全日志。如果将其设置为 false,则仅记录失败的身份验证事件,这在您发现成功事件过多地填充日志并且您不需要完全审核功能的情况下可能很有用。

有效值

布尔值。

默认值

true

dbms.security.logs.ldap.groups_at_debug_level_enabled

表 254. dbms.security.logs.ldap.groups_at_debug_level_enabled

描述

设置为 true 时,将记录从 ldap 服务器检索到的组。这仅在安全日志级别设置为 DEBUG 时生效。警告:强烈建议在生产环境中将其设置为 false,以防止记录敏感信息。

有效值

布尔值。

默认值

false

dbms.security.oidc.<provider>.audience

表 255. dbms.security.oidc.<provider>.audience

描述

id 令牌中受众 (aud) 声明的预期值。

有效值

一个逗号分隔的列表,其中每个元素都是一个字符串,该字符串不能是空字符串。

dbms.security.oidc.<provider>.auth_endpoint

表 256. dbms.security.oidc.<provider>.auth_endpoint

描述

OIDC 授权端点。如果没有提供此信息,Neo4j 将尝试从 well_known_discovery_uri 中发现它。

有效值

URI

dbms.security.oidc.<provider>.auth_flow

表 257. dbms.security.oidc.<provider>.auth_flow

描述

要使用的 OIDC 流程。这通过发现端点向客户端公开。支持的值为 pkceimplicit

有效值

[PKCE,IMPLICIT] 之一。

默认值

PKCE

dbms.security.oidc.<provider>.auth_params

表 258. dbms.security.oidc.<provider>.auth_params

描述

身份验证端点需要的可选附加参数。请使用 params 而不是。该映射是一个以分号分隔的键值对列表。例如:k1=v1;k2=v2

有效值

简单的键值映射模式 k1=v1;k2=v2

默认值

{}

dbms.security.oidc.<provider>.authorization.group_to_role_mapping

表 259. dbms.security.oidc.<provider>.authorization.group_to_role_mapping

描述

从 IdP 组名到 Neo4j 角色名的授权映射。该映射应格式化为以分号分隔的键值对列表,其中键是 IdP 组名,值是对应角色名的逗号分隔列表。例如:group1=role1;group2=role2;group3=role3,role4,role5 您也可以使用空格和组名周围的引号使此映射更具可读性,例如

dbms.security.oidc.<provider>.authorization.group_to_role_mapping=\
         "Neo4j Read Only"      = reader;    \
         "Neo4j Read-Write"     = publisher; \
         "Neo4j Schema Manager" = architect; \
         "Neo4j Administrator"  = admin

有效值

必须是以分号分隔的键值对列表或为空的字符串

dbms.security.oidc.<provider>.claims.groups

表 260. dbms.security.oidc.<provider>.claims.groups

描述

用作 Neo4j 中组列表的声明。这些可以是 Neo4J 角色直接,也可以使用 dbms.security.oidc.<provider>.authorization.group_to_role_mapping 映射。从 Neo4j 5.4 开始,JWT 声明还可以包含作为字符串返回的单个组,以及以前要求的组列表。

有效值

字符串。

dbms.security.oidc.<provider>.claims.username

表 261. dbms.security.oidc.<provider>.claims.username

描述

用作 Neo4j 中用户名的声明。这通常是 sub,但在某些情况下,可能希望使用其他内容,例如电子邮件。

有效值

字符串。

默认值

sub

dbms.security.oidc.<provider>.client_id

表 262. dbms.security.oidc.<provider>.client_id

描述

客户端 ID。未使用。此值以前用于验证 id_token 中的 azp 声明,但此验证已根据 OIDC 规范的更新而删除。

有效值

字符串。

dbms.security.oidc.<provider>.config

表 263. dbms.security.oidc.<provider>.config

描述

接受的值(全部可选)为

  • principal:用户电子邮件地址在哪个 JWT 声明中指定,电子邮件是默认值。这是在浏览器中显示的值。

  • code_challenge_method:默认值为 S256,目前是唯一支持的方法。此设置仅适用于 pkce 身份验证流程

  • token_type_principal:选项几乎总是 access_token(默认值)或 id_token

  • token_type_authentication:选项几乎总是 access_token(默认值)或 id_token

  • implicit_flow_requires_nonce:true 或 false。默认为 false。

有效值

简单的键值映射模式 k1=v1;k2=v2。有效的键选项为:[implicit_flow_requires_nonce, token_type_authentication, token_type_principal, principal, code_challenge_method]

默认值

{}

dbms.security.logs.oidc.jwt_claims_at_debug_level_enabled

表 264. dbms.security.logs.oidc.jwt_claims_at_debug_level_enabled

描述

设置为 true 时,它记录来自 JWT 的声明。这仅在安全日志级别设置为 DEBUG 时生效。

强烈建议在生产环境中将其设置为 false,以防止记录敏感信息。另请注意,JWT 声明集的内容可能会随着时间的推移而改变,因为它们完全取决于 ID 提供者。

有效值

布尔值。

默认值

false

dbms.security.oidc.<provider>.display_name

表 265. dbms.security.oidc.<provider>.display_name

描述

发现端点向客户端(Bloom、浏览器等)提供的提供者的面向用户的名称。

有效值

字符串。

dbms.security.oidc.<provider>.get_groups_from_user_info

表 266. dbms.security.oidc.<provider>.get_groups_from_user_info

描述

启用后,Neo4j 从提供者用户信息端点获取组。

有效值

布尔值。

默认值

false

dbms.security.oidc.<provider>.get_username_from_user_info

表 267. dbms.security.oidc.<provider>.get_username_from_user_info

描述

启用后,Neo4j 从提供者用户信息端点获取用户名。

有效值

布尔值。

默认值

false

dbms.security.oidc.<provider>.issuer

表 268. dbms.security.oidc.<provider>.issuer

描述

id 令牌中 iss 声明的预期值。如果没有提供此信息,Neo4j 将尝试从 well_known_discovery_uri 中发现它。

有效值

字符串。

dbms.security.oidc.<provider>.jwks_uri

表 269. dbms.security.oidc.<provider>.jwks_uri

描述

身份提供者的 JWK 公钥集的位置。如果没有提供此信息,Neo4j 将尝试从 well_known_discovery_uri 中发现它。

有效值

URI

dbms.security.oidc.<provider>.params

表 270. dbms.security.oidc.<provider>.params

描述

该映射是一个以分号分隔的键值对列表。例如:k1=v1;k2=v2。用户至少应该提供

  client_id: the SSO Idp client idenfifier.
  response_type: code if auth_flow is pkce or token for implicit auth_flow.
  scope: often containing a subset of 'email profile openid groups'.

例如:client_id=my-client-id;response_type=code;scope=openid profile email

有效值

简单的键值映射模式 k1=v1;k2=v2。必需的键选项为:[scope, client_id, response_type]

默认值

{}

dbms.security.oidc.<provider>.token_endpoint

表 271. dbms.security.oidc.<provider>.token_endpoint

描述

OIDC 令牌端点。如果未提供,Neo4j 将尝试从 well_known_discovery_uri 中发现它。

有效值

URI

dbms.security.oidc.<provider>.token_params

表 272. dbms.security.oidc.<provider>.token_params

描述

令牌端点所需的可选查询参数。该映射是一个用分号分隔的键值对列表。例如:k1=v1;k2=v2。如果令牌端点需要 client_secret,则此参数应包含 client_secret=super-secret

有效值

简单的键值映射模式 k1=v1;k2=v2

默认值

{}

dbms.security.oidc.<provider>.user_info_uri

表 273. dbms.security.oidc.<provider>.user_info_uri

描述

身份提供者的用户资料 URI。

有效值

URI

dbms.security.oidc.<provider>.well_known_discovery_uri

表 274. dbms.security.oidc.<provider>.well_known_discovery_uri

描述

用于获取身份提供者设置的 OpenID Connect 发现端点。如果未提供,则应存在 issuerjwks_uriauth_endpoint。如果 auth_flow 为 pkce,则还应提供 token_endpoint

有效值

URI

dbms.security.procedures.allowlist

表 275. dbms.security.procedures.allowlist

描述

要加载的程序列表(逗号分隔)。该列表可能包含完全限定的程序名称和带有通配符 的局部名称。默认值()加载所有程序。如果未指定任何值,则不会加载任何程序。

有效值

以逗号分隔的列表,其中每个元素都是一个字符串。

默认值

*

dbms.security.procedures.unrestricted

表 276. dbms.security.procedures.unrestricted

描述

允许完全访问数据库的程序和用户定义函数列表(逗号分隔)。该列表可能包含完全限定的程序名称和带有通配符 * 的局部名称。请注意,这将使这些程序绕过安全性。谨慎使用。

有效值

以逗号分隔的列表,其中每个元素都是一个字符串。

默认值

dbms.security.require_local_user

表 277. dbms.security.require_local_user

描述

这控制是否必须为外部身份验证创建本地用户。如果设置为默认值 (false),则无需创建任何用户即可使用外部身份验证提供程序进行身份验证。如果设置为 true,则必须在外部用户成功身份验证之前创建代表该外部用户的用户。

有效值

布尔值。

默认值

false

dbms.netty.ssl.provider

表 278. dbms.netty.ssl.provider

描述

Netty SSL 提供程序。

有效值

其中之一:[JDK, OPENSSL, OPENSSL_REFCNT]。

默认值

JDK

服务器目录设置

服务器目录设置可用于更改 Neo4j 文件的默认位置。有关更多信息,请参阅 默认文件位置

server.directories.cluster_state

表 279. server.directories.cluster_state

描述

用于保存集群状态(包括 Raft 日志)的目录。

有效值

路径。如果为相对路径,则从 server.directories.data 解析。

默认值

cluster-state

server.directories.data

表 280. server.directories.data

描述

数据目录的路径。您不得配置多个 Neo4j 安装以使用相同的数据目录。

有效值

路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

data

server.directories.dumps.root

表 281. server.directories.dumps.root

描述

Neo4j 将在其中存储数据库转储的根位置(在删除所述数据库时可选地生成)。

有效值

路径。如果为相对路径,则从 server.directories.data 解析。

默认值

dumps

server.directories.import

表 282. server.directories.import

描述

设置用于 Cypher LOAD CSV 子句的文件 URL 的根目录。这应设置为相对于 Neo4j 安装路径的目录,将访问权限限制在该目录及其子目录中的文件。例如,值 “import” 将仅启用对 “import” 文件夹中的文件的访问。删除此设置将禁用安全功能,允许访问本地系统中的所有文件。将此设置为空字段将允许访问 Neo4j 安装文件夹中的所有文件。

有效值

路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

server.directories.lib

表 283. server.directories.lib

描述

lib 目录的路径。

有效值

路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

lib

server.directories.licenses

表 284. server.directories.licenses

描述

licenses 目录的路径。

有效值

路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

licenses

server.directories.logs

表 285. server.directories.logs

描述

logs 目录的路径。

有效值

路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

logs

server.directories.metrics

表 286. server.directories.metrics

描述

CSV 文件的目标位置:指向目录的路径,将在其中写入每个报告字段的 CSV 文件。

有效值

路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

metrics

server.directories.neo4j_home

表 287. server.directories.neo4j_home

描述

解析目录设置的根目录(相对于根目录)。由服务器在启动时计算并设置。默认为当前工作目录。

有效值

绝对路径。

默认值

server.directories.plugins

表 288. server.directories.plugins

描述

数据库插件目录的位置。如果将包含数据库程序的已编译 Java JAR 文件放在此目录中,则会加载这些文件。

有效值

路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

plugins

server.directories.run

表 289. server.directories.run

描述

run 目录的路径。此目录保存 Neo4j 的运行时状态,例如在后台运行时,pid 文件。pid 文件在启动 neo4j 时创建,在停止时删除。它可以放置在内存文件系统(如 tmpfs)上。

有效值

路径。如果为相对路径,则从 server.directories.neo4j_home 解析。

默认值

run

server.directories.script.root

表 290. server.directories.script.root

描述

Neo4j 将在其中存储配置数据库脚本的根位置。

有效值

路径。如果为相对路径,则从 server.directories.data 解析。

默认值

scripts

server.directories.transaction.logs.root

表 291. server.directories.transaction.logs.root

描述

Neo4j 将在其中存储配置数据库的交易日志的根位置。

有效值

路径。如果为相对路径,则从 server.directories.data 解析。

默认值

transactions

服务器设置

服务器设置仅适用于特定服务器,并且可以在跨集群/DBMS 的配置文件之间有所不同。

server.backup.enabled

表 292. server.backup.enabled

描述

启用对运行在线备份的支持。

有效值

布尔值。

默认值

true

server.backup.exec_connector.command

表 293. server.backup.exec_connector.command

描述

对 ExecDataConnector 列表执行的命令

有效值

字符串。

默认值

server.backup.exec_connector.scheme

表 294. server.backup.exec_connector.scheme

描述

ExecDataConnector 将匹配的方案

有效值

以逗号分隔的列表,其中每个元素都是一个字符串。

默认值

server.backup.listen_address

表 295. server.backup.listen_address

描述

备份服务器侦听的网络接口和端口。

有效值

格式为 hostname:porthostname:port 的套接字地址。

默认值

127.0.0.1:6362

server.backup.store_copy_max_retry_time_per_request

表 296. server.backup.store_copy_max_retry_time_per_request

描述

存储副本期间每个请求的最大重试时间。在存储副本期间,常规存储文件和索引在单独的请求中下载。这配置了允许失败的请求重新发送的最大时间。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

20m

server.config.strict_validation.enabled

表 297. server.config.strict_validation.enabled

描述

严格的配置验证将阻止数据库启动,如果在 neo4j 设置命名空间(如 dbms.、cypher. 等)中指定了未知配置选项,或者如果多次声明设置。

有效值

布尔值。

默认值

true

server.databases.default_to_read_only

表 298. server.databases.default_to_read_only

描述

此实例上的任何数据库默认情况下是否为只读。如果为 false,则可以使用 server.database.read_only 将单个数据库标记为只读。如果为 true,则可以使用 server.databases.writable 将单个数据库标记为可写。

有效值

布尔值。

默认值

false

server.databases.read_only

表 299. server.databases.read_only

描述

要防止写入查询的数据库列表。根据 server.databases.default_to_read_only 的值,未包含在此列表中的数据库可能仍为只读。

有效值

一个用逗号分隔的集合,其中每个元素都是有效的数据库名称,仅包含字母字符、数字、点和连字符,长度在 3 到 63 个字符之间,以字母字符开头,但不以名称 system 开头。

默认值

server.databases.writable

表 300. server.databases.writable

描述

允许写入查询的数据库列表。未包含在此列表中的数据库将允许写入查询,除非 server.databases.default_to_read_only 设置为 true。

有效值

一个用逗号分隔的集合,其中每个元素都是有效的数据库名称,仅包含字母字符、数字、点和连字符,长度在 3 到 63 个字符之间,以字母字符开头,但不以名称 system 开头。

默认值

server.dynamic.setting.allowlist

表 301. server.dynamic.setting.allowlist

描述

允许动态更改的设置名称模式列表(逗号分隔)。该列表可能包含完整的设置名称和带有通配符 * 的局部名称。如果此设置为空,则所有动态设置更新将被阻止。

有效值

以逗号分隔的列表,其中每个元素都是一个字符串。

默认值

*

server.jvm.additional

表 302. server.jvm.additional

描述

其他 JVM 参数。参数顺序可能很重要。要使用 Java 商业功能,解锁商业功能的参数必须在配置值字符串中启用特定功能的参数之前。

有效值

一个或多个 JVM 参数。

默认值

server.max_databases

表 303. server.max_databases

描述

数据库的最大数量。

有效值

至少为 2 的长整数。

默认值

100

server.panic.shutdown_on_panic

表 304. server.panic.shutdown_on_panic

描述

如果存在数据库管理系统故障(不可恢复的错误),neo4j 进程应该关闭还是继续运行。在 DbMS 故障之后,很可能会有大量功能丢失。恢复全部功能需要重新启动 Neo4j。默认值为 false,但对于在 Kubernetes 上运行的 Neo4j 企业版部署,默认值为 true

有效值

布尔值。

默认值

false

server.threads.worker_count

表 305. server.threads.worker_count

描述

Neo4j 工作线程数量。此设置仅对 REST 有效,不会影响 bolt-server。它设置了 neo4j-server 使用的 Jetty 服务器的工作线程数量。当您计划执行多个并发 REST 请求时,可以调整此选项,以从数据库获得更高的吞吐量。您的操作系统可能会强制执行比此处指定的最大值更低的限制。可用处理器的数量,或者对于拥有超过 500 个处理器的机器,则为 500。

有效值

一个介于 144738 之间的整数。

默认值

server.unmanaged_extension_classes

表 306. server.unmanaged_extension_classes

描述

未管理扩展的 <类名>=<挂载点> 的逗号分隔列表。

有效值

一个逗号分隔列表,其中每个元素都是 <类名>=<挂载点> 字符串。

默认值

server.windows_service_name

表 307. server.windows_service_name

描述

使用 neo4j install-service 安装时,管理 Neo4j 的 Windows 服务的名称。仅适用于 Windows 操作系统。
注意:这对于每个安装都必须是唯一的。

有效值

字符串。

默认值

neo4j

事务设置

事务设置可帮助您管理数据库中的事务,例如事务超时、锁获取超时、并发运行的事务的最大数量等。有关更多信息,请参阅 管理事务并发数据访问

db.lock.acquisition.timeout

表 308. db.lock.acquisition.timeout

描述

获取锁的最大时间间隔。零(默认)表示禁用超时。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

0s

db.shutdown_transaction_end_timeout

表 309. db.shutdown_transaction_end_timeout

描述

在允许启动的数据库关闭继续之前,等待正在运行的事务完成的最大时间量。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

10s

db.transaction.bookmark_ready_timeout

表 310. db.transaction.bookmark_ready_timeout

描述

等待书签表示的数据库状态的最大时间量。

有效值

持续时间(有效单位为:nsμsmssmhd;默认单位为 s),最小值为 1s

默认值

30s

db.transaction.concurrent.maximum

表 311. db.transaction.concurrent.maximum

描述

并发运行的事务的最大数量。如果设置为 0,则禁用限制。

有效值

整数。

默认值

1000

db.transaction.monitor.check.interval

表 312. db.transaction.monitor.check.interval

描述

配置事务监视器检查之间的时间间隔。确定监视器线程将多长时间检查一次事务超时。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

2s

db.transaction.sampling.percentage

表 313. db.transaction.sampling.percentage

描述

事务采样百分比。

有效值

一个介于 1100 之间的整数。

默认值

5

db.transaction.timeout

表 314. db.transaction.timeout

描述

事务应完成的最大时间间隔。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

0s

db.transaction.tracing.level

表 315. db.transaction.tracing.level

描述

事务创建跟踪级别。

有效值

以下之一:[DISABLED, SAMPLE, ALL]。

默认值

DISABLED

server.http.transaction_idle_timeout

表 316. server.http.transaction_idle_timeout

描述

HTTP 服务器中空闲事务的超时。
注意:这与将使基础事务超时的 'db.transaction.timeout' 不同。

有效值

持续时间(有效单位:nsμsmssmhd;默认单位是 s)。

默认值

30s

事务日志设置

事务日志保存尚未应用于存储文件的那些事务的列表。这对于恢复是必需的。以下设置配置了修剪操作后剩余的事务日志数量以及事务日志文件的大小。

另请参见 检查点设置

db.recovery.fail_on_missing_files

表 317. db.recovery.fail_on_missing_files

描述

如果为 true,则 Neo4j 将在缺少事务日志文件时中止恢复。将其设置为 false 将允许 Neo4j 为已存在的数据库创建新的空缺文件,但数据库的完整性可能会受到影响。

有效值

布尔值。

默认值

true

db.tx_log.buffer.size

表 318. db.tx_log.buffer.size

描述

在事务日志序列化时,它们将临时存储在字节缓冲区中,该缓冲区将在事务结束时或缓冲区已满时被刷新。默认情况下,字节缓冲区的大小基于可用 CPU 的数量,最小缓冲区大小为 512KB。每增加 4 个 CPU,缓冲区大小将增加 512KB。此默认方案中的最大缓冲区大小为 4MB,考虑到在多数据库环境中,每个数据库可以有一个事务日志写入器。例如,具有 4 个 CPU 的运行时将具有 1MB 的缓冲区大小;具有 8 个 CPU 的运行时将具有 1MB 512KB 的缓冲区大小;具有 12 个 CPU 的运行时将具有 2MB 的缓冲区大小。

有效值

一个最小值为 131072 的长整型。

默认值

db.tx_log.preallocate

表 319. db.tx_log.preallocate

描述

指定 Neo4j 是否应尝试预先分配逻辑日志文件。它通过确保有空间容纳新生成的文件来优化文件系统,并避免文件级碎片。

有效值

布尔值。

默认值

true

db.tx_log.rotation.retention_policy

表 320. db.tx_log.rotation.retention_policy

描述

指定 Neo4j 应将逻辑事务日志保留多长时间以备份数据库。例如,10 days 修剪仅包含 10 天前的事务的逻辑日志。或者,100k txs 会保留每个数据库的 100k 最新事务,并修剪任何更旧的事务。从 Neo4j 5.9 开始,您可以选择将基于时间段的限制添加到要保留的日志大小。例如,2 days 1G 修剪仅包含 2 天前的事务或大于 1G 的逻辑日志。

有效值

一个与模式 ^(true|keep_all|false|keep_none|(\d+[KkMmGg]?( (files|size|txs|entries|hours( \d+[KkMmGg]?)?|days( \d+[KkMmGg]?)?))))$ 匹配的字符串(必须是 truekeep_allfalsekeep_none,或格式为 <数字><可选单位> <类型> <可选空间限制>。有效的单位是 KMG。有效的类型是 filessizetxsentrieshoursdays。有效的可选空间限制是逻辑日志空间限制,例如 100M。例如,100M size 将将每个数据库的磁盘上的逻辑日志空间限制为 100MiB,而 200K txs 将将每个数据库保留的事务数限制为 200 000)。

默认值

2 days 2G

db.tx_log.rotation.size

表 321. db.tx_log.rotation.size

描述

指定在哪个文件大小下逻辑日志将自动旋转。接受的最小值为 128 KiB。

有效值

一个字节大小(有效的倍数是 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小值为 128.00KiB

默认值

256.00MiB