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_msClickHouse Keeper检查死会话并移除它们的周期(毫秒)。默认值为: 500描述: Keepers定期检查是否有不再活跃的会话,并清理它们。heart_beat_interval_msClickHouse 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