ClickHouse keeper 配置说明
tcp_port
参数描述:客户端连接的端口。
默认值:2181
解释:这是客户端用来连接到服务的端口号。
tcp_port_secure
参数描述:客户端和服务(keeper-server)之间SSL连接的安全端口。
默认值:未设置(-)
解释:这是为安全连接(如SSL)设置的专用端口。
server_id
参数描述:唯一服务器ID,ClickHouse Keeper集群的每个参与者都必须有一个唯一的数字(1、2、3等)。
默认值:未设置(-)
解释:这是标识服务器在集群中的唯一身份的标识符。
log_storage_path
参数描述:协调日志的路径,最好将日志存储在非繁忙的节点上,就像ZooKeeper一样。
默认值:未设置(-)
解释:这是服务存储日志文件的路径。
snapshot_storage_path
参数描述:协调快照的路径。
默认值:未设置(-)
解释:这是服务存储快照文件的路径。
enable_reconfiguration
参数描述:是否通过reconfig启用动态集群重新配置。
默认值:False
解释:这个开关决定是否允许动态地重新配置集群。
max_memory_usage_soft_limit
参数描述:最大内存使用量的软限制(以字节为单位)。
默认值:max_memory_usage_soft_limit_ratio * physical_memory_amount计算得出。
解释:这是服务可以使用的内存的上限。
max_memory_usage_soft_limit_ratio
参数描述:如果未设置max_memory_usage_soft_limit或设置为零,则使用此值来定义默认软限制。
默认值:0.9(即90%的物理内存)
解释:用于计算服务可使用的内存软限制的比率。
cgroups_memory_observer_wait_time
参数描述:如果未设置max_memory_usage_soft_limit或设置为0,我们使用此间隔来观察物理内存的量。一旦内存量发生变化,我们将通过max_memory_usage_soft_limit_ratio重新计算保管者的内存软限制。
默认值:15(单位可能是秒或其他时间单位)
解释:用于观察系统内存状态的时间间隔。
http_control
参数描述:HTTP控制接口的配置。
默认值:未设置(-)
解释:这是关于如何通过HTTP进行控制或管理的配置。
digest_enabled
参数描述:启用实时数据一致性检查。
默认值:True
解释:这个开关决定是否进行数据一致性检查。
create_snapshot_on_exit
参数描述:在关机时创建快照。
默认值:未设置(-)
解释:这个选项可能允许系统在关闭之前创建一个数据快照,可能是为了备份或恢复目的。通常,在数据库或其他数据存储系统中可以看到这样的功能。
hostname_checks_enabled
参数描述:为集群配置启用主机名检查(例如,如果本地主机与远程端点一起使用)。
默认值:True
解释:这个选项确保在集群配置中使用的主机名是有效的和合理的,以避免配置错误或潜在的问题。当使用本地主机名与远程端点交互时,这种检查尤其重要。
four_letter_word_white_list (4lw)
参数描述:四字母命令的白名单。
可用值: conf, cons, crst, envi, ruok, srst, srvr, stat, wchs, dirs, mntr, isro, rcvr, apiv, csnp, lgif, rqld, ydld
解释:这个选项允许用户指定一系列特定的四字母命令,这些命令是被允许或受信任的。列表中的命令可能用于特定的系统命令或功能。
operation_timeout_ms
单个客户端操作的超时时间(毫秒)。
默认值为: 10000
描述: 如果客户端操作超过这个时间还没有完成,将会超时。
min_session_timeout_ms
客户端会话的最小超时时间(毫秒)。
默认值为: 10000
描述: 设置客户端会话的最小超时时间限制。
session_timeout_ms
客户端会话的最大超时时间(毫秒)。
默认值为: 100000
描述: 设置客户端会话的最大超时时间限制。
dead_session_check_period_ms
ClickHouse Keeper检查死会话并移除它们的周期(毫秒)。
默认值为: 500
描述: Keepers定期检查是否有不再活跃的会话,并清理它们。
heart_beat_interval_ms
ClickHouse Keeper leader发送心跳到追随者的频率(毫秒)。
默认值为: 500
描述: leader节点定期向follower节点发送心跳信号以保持连接。
election_timeout_lower_bound_ms & election_timeout_upper_bound_ms
如果follower在指定的间隔内没有收到leader的心跳,则可以发起领导选举。上下界设置领导选举的时间限制。
描述: 当follower在一定时间内未收到leader的心跳时,将发起领导选举。这两个值必须合理配置以确保系统的稳定性。
rotate_log_storage_interval
单个文件中存储的日志记录数。
默认值为: 100000
描述: 设置日志文件的存储策略。
reserved_log_items
在压缩之前要存储的协调日志记录数。
默认值为: 100000
描述: 设置保留的日志条目数量。
snapshot_distance & snapshots_to_keep
创建新快照的频率和要保留的快照数量。
描述: 配置系统创建快照的频率和保留的快照数量。
stale_log_gap & fresh_log_gap
当leader认为follower过时并发送快照而不是日志时的阈值,以及节点变为新鲜时的日志差距。
描述: 用于确定何时向过时的follower发送快照而不是日志更新。
max_requests_batch_size
发送到RAFT的最大请求批次大小。
默认值为: 100
描述: 设置发送到RAFT的最大请求批次大小。
force_sync
每次写入协调日志时调用fsync。
默认值为: true
描述: 确保每次写入都同步到磁盘。
quorum_reads
通过整个RAFT共识以相似速度执行读取请求。
默认值为: false
描述: 是否通过整个RAFT共识执行读取请求。
raft_logs_level
关于协调的文本日志级别。
默认值为: 系统默认
描述: 设置RAFT相关的日志级别。
auto_forwarding
允许从追随者向领导者转发写请求。
默认值为: true
描述: 是否允许自动转发写请求。
shutdown_timeout & startup_timeout
关闭和启动时的超时时间。
描述: 设置系统关闭和启动时的超时限制。
async_replication
启用异步复制。在保持所有写和读保证的同时实现更好的性能。
默认值为: false
描述: 是否启用异步复制功能。这可以在保持数据一致性的同时提高性能。
latest_logs_cache_size_threshold & commit_logs_cache_size_threshold
最新日志条目的内存缓存的最大总大小,以及为提交所需的日志条目的内存缓存的最大总大小。
描述: 设置内存缓存的大小阈值,用于存储最新的日志条目和提交所需的日志条目。这些参数有助于优化内存使用和提高性能。接下来的数值指定了具体的阈值大小,例如以GiB或MiB为单位的大小。接下来的参数与磁盘操作和移动有关,涉及到文件在磁盘之间的移动失败后的
配置示例
<keeper_server>
<tcp_port>2181</tcp_port>
<server_id>1</server_id>
<log_storage_path>/var/lib/clickhouse/coordination/log</log_storage_path>
<snapshot_storage_path>/var/lib/clickhouse/coordination/snapshots</snapshot_storage_path>
<coordination_settings>
<operation_timeout_ms>10000</operation_timeout_ms>
<session_timeout_ms>30000</session_timeout_ms>
<raft_logs_level>trace</raft_logs_level>
</coordination_settings>
<raft_configuration>
<server>
<id>1</id>
<hostname>zoo1</hostname>
<port>9234</port>
</server>
<server>
<id>2</id>
<hostname>zoo2</hostname>
<port>9234</port>
</server>
<server>
<id>3</id>
<hostname>zoo3</hostname>
<port>9234</port>
</server>
</raft_configuration>
</keeper_server>
参考文档
https://clickhouse.com/docs/en/guides/sre/keeper/clickhouse-keeper
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~