3.3. 配置群集

3.3.1. 群集选项

[cluster]
q

为新创建的数据库设置默认的碎片数。默认值, 2 ,将数据库拆分为2个单独的分区。:

[cluster]
q = 2

对于只有少量、访问频繁、大型数据库的系统,或具有多个CPU核心的服务器,请考虑将此值增加到 48 .

价值 q 也可以在数据库创建时以每个数据库为基础重写。

参见

PUT /{db}

n

设置群集中每个文档的副本数。CouchDB将只在集群中为每个节点放置一个副本。当通过 Cluster Setup Wizard ,独立的单个节点将具有 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

一个可选的、逗号分隔的节点名列表,此节点应与之联系以加入群集。如果配置了种子列表 _up 端点将返回404,直到节点成功联系种子列表的至少一个成员并复制了 _nodes_dbs_users 系统数据库。

[集群] 种子列表=couchdb@node1.example.com,couchdb@node2.example.com

3.3.2. RPC性能调整

[rexi]

CouchDB使用分布式Erlang在集群中的节点之间进行通信。这个 rexi 库在此通信通道上提供优化的RPC机制。对于这个系统有一些配置旋钮,尽管一般来说默认设置可以很好地工作。

buffer_count

如果远程节点不可用,本地RPC服务器将缓冲消息。此标志确定在本地服务器开始丢弃消息之前将缓冲多少消息。默认值为 2000 .

server_per_node

默认情况下,rexi将为集群中的每个节点生成一个本地gen_服务器进程。禁用此标志将导致CouchDB对所有RPC通信使用一个进程,在高吞吐量部署中不建议这样做。

stream_limit

3.0 新版功能.

此标志在流式操作(如视图和更改源)中起作用。它控制远程工作进程在不等待协调器进程的确认的情况下可以向协调器发送多少消息。如果这个值太大,协调器可能会被来自工作进程的消息压垮,并实际向客户端提供较低的总体吞吐量。在couchdb2.x中,这个值被硬编码为 10 . 在3.x系列中,它是可配置的,默认为 5 . 具有高 q 值对此设置特别敏感。