数千Pulsar客户端场景下基于ZooKeeper的服务发现是否会成为瓶颈
Pulsar客户端broker发现机制对ZooKeeper的性能影响
数千个Pulsar客户端的broker发现请求不会成为ZooKeeper集群的性能瓶颈,核心原因如下:
- 客户端broker发现的请求频率极低,默认配置下每60秒才会发起1次ZooKeeper查询,属于极低频次的冷访问。我们可以做简单的性能测算:单节点ZooKeeper的读请求处理能力保守基线为1000 QPS,10000个客户端每秒平均产生的请求量仅为
10000 / 60 ≈ 167,远低于ZooKeeper的处理上限。 - ZooKeeper处理这类读请求不需要访问磁盘,所有元数据都缓存在内存中,单请求延迟仅为毫秒级,几千客户端的并发请求完全不会产生压力。
- 绝大多数生产级Pulsar集群会部署Pulsar Proxy代理层,客户端仅需要和Proxy建立连接,不需要直连ZooKeeper做broker发现,进一步降低了ZooKeeper的访问压力。
如果你的集群后续需要承接超大规模客户端(10万+量级),可以通过两个简单配置规避潜在风险:
- 调大客户端参数
brokerDiscoveryRefreshIntervalSeconds的值,比如调整为300秒,只要集群broker节点扩缩容频率不高,完全不会影响业务可用性 - 为ZooKeeper集群添加只读follower节点,专门承接broker发现这类读请求,避免和元数据写入类请求争抢资源
内容的提问来源于stack exchange,提问作者dashenswen
相关产品推荐
相关产品推荐

