3.3. 配置集群¶
3.3.1. 集群选项¶
- [cluster]¶
- q¶
设置新创建数据库的默认分片数量。默认值为
2
,将数据库分成 2 个独立的分区。[cluster] q = 2
对于只有几个大型数据库且访问量很大的系统,或者对于具有多个 CPU 内核的服务器,请考虑将此值增加到
4
或8
。在数据库创建时,也可以在每个数据库的基础上覆盖
q
的值。另请参阅
- n¶
设置集群中每个文档的副本数量。CouchDB 仅将每个节点上的一个副本放置在集群中。通过 集群设置向导 设置时,独立的单节点将具有
n = 1
,双节点集群将具有n = 2
,任何更大的集群将具有n = 3
。建议不要将n
设置为大于3
。[cluster] n = 3
- placement¶
警告
使用此选项将覆盖副本基数的
n
选项。谨慎使用。在创建新数据库时设置集群范围的副本放置策略。该值必须是逗号分隔的字符串列表,格式为
zone_name:#
,其中zone_name
是在nodes
数据库中指定的区域,#
是一个整数,表示要放置在具有匹配zone_name
的节点上的副本数量。默认情况下不指定此参数。
[cluster] placement = metro-dc-a:2,metro-dc-b:1
另请参阅
- seedlist¶
一个可选的逗号分隔的节点名称列表,该节点应联系这些节点以加入集群。如果配置了 seedlist,则
_up
端点将返回 404,直到该节点成功联系到 seedlist 中的至少一个成员并复制了_nodes
、_dbs
和_users
系统数据库的最新副本。[cluster] seedlist = couchdb@node1.example.com,[email protected]
- reconnect_interval_sec¶
3.3 版新增。
以秒为单位的周期,指定尝试重新连接到断开连接的节点的频率。此值将应用 25% 的随机抖动。
3.3.2. RPC 性能调优¶
- [rexi]¶
CouchDB 使用分布式 Erlang 在集群中的节点之间进行通信。
rexi
库在此通信通道上提供优化的 RPC 机制。此系统有一些配置旋钮,但总的来说,默认设置效果很好。- buffer_count¶
如果远程节点不可用,本地 RPC 服务器将缓冲消息。此标志确定在本地服务器开始丢弃消息之前将缓冲多少消息。默认值为
2000
。- server_per_node¶
默认情况下,rexi 将为集群中的每个节点生成一个本地 gen_server 进程。禁用此标志将导致 CouchDB 对所有 RPC 通信使用单个进程,这在高吞吐量部署中不推荐使用。
- stream_limit¶
3.0 版新增。
此标志在流操作(如视图和变更提要)期间发挥作用。它控制远程工作进程可以在等待协调器进程确认之前向协调器进程发送多少消息。如果此值太大,协调器可能会被工作进程的消息淹没,实际上会降低到客户端的整体吞吐量。在 CouchDB 2.x 中,此值被硬编码为
10
。在 3.x 系列中,它是可配置的,默认值为5
。具有高q
值的数据库对该设置特别敏感。