更新时间:2022-12-14 GMT+08:00

配置ZooKeeper连接数

配置场景

目前ZooKeeper可以在服务器端进行maxClientCnxn配置,该配置会对来自各客户端IP地址的连接进行验证。但在可能发生的DOS攻击中,会有大量客户端产生出海量的无用连接并耗尽ZooKeeper的所有资源,导致其他客户端无法创建有效连接,甚至造成服务器故障。

为限制连接至单台ZooKeeper服务器的最大连接数,所有ZooKeeper服务器都引入了一项新的配置,用于在接受任何新的连接请求之前检查当前活跃的总连接数。

图1 连接控制逻辑

配置描述

请参考修改集群服务配置参数,进入ZooKeeper“全部配置”页面。在搜索框中输入参数名称。通过配置“maxClientCnxn”“maxCnxns”,分别限制每台主机的最大连接数及ZooKeeper服务器中的总连接数。

表1 连接策略相关参数

参数

描述

默认值

maxClientCnxns

限制连接到zk集群上具体的某一个zkserver的客户端连接数的数量,它通过IP来区分不同的客户端。

该配置与开源社区的版本相同。

2000

maxCnxns

单台ZooKeeper服务器允许的客户端最大连接数,不通过IP来区分不同的客户端。

20000

Zookeeper连接控制功能基于IP,而不是基于特定用户。如果一个IP的所有连接被很少的服务所占用,则有可能导致来自同一个IP的其他强制服务无法连接到Zookeeper。因此,产品必须确保仅允许值得信任的应用程序连接到Zookeeper服务并相应地配置最大连接限制。