Pulsar-proxy验证阶段遇到的问题

大佬们好,今天在研测环境验证pulsar-proxy功能。目前我集群有三台机器分别为9.46,9.183,9.185。并在9.46上启动了pulsar-proxy服务。9.46上pulsar-proxy配置如图所示:



按照官网说法,一个集群下启动一个proxy实例就可以了,也可以启动多个,这里就就启动了一个。
图中的:172.30.33.183:6650是的在另外一个节点部署的haproxy负载均衡组件的端口。配置如下:


现在用demo代码验证proxy功能,发现生产和消费都是没有问题的,生产者和消费者相关代码如图所示:


这里是不是根本没有将pulsar-proxy功能用起来,只是单纯的使用了haproxy负载均衡轮训调度了三个节点的6650的tcp连接。其实将9.46上的proxy服务挂掉,生产消费也没有影响。在这里我想请问大佬们,怎么样才能真正的将pulsar-proxy+haproxy结合用起来呢,求解惑,谢谢。

已经和 @liukan 沟通,在裸机环境,可以去掉 Proxy 这一层。

Pulsar Proxy 有以下几个功能:

  1. 对 Broker IP 的收归(如果有HAProxy,架构上就有重复了)
  2. 对 Broker 真实 IP 地址的隐藏(可以隐藏 broker IP 地址,增加安全性)
  3. 可以桥接 Broker 和 用户网络(例如用户无法直接访问broker地址,但可以通过proxy桥接的网络情况)

需要注意的是 Pulsar Proxy 会直接承载流量(不仅仅是broker地址的路由),因此 Proxy 在较大的集群中,可能会成为性能的瓶颈。

在较大的集群时,性能的瓶颈主要是什么资源受限。

是的,同问,在较大集群规模情况下,proxy可能会成为性能瓶颈是出于哪方面考虑的?

和 HAProxy 不同,Pulsar Proxy 是走流量的,这时候 Pulsar Proxy 节点所在的性能,就会成为整个集群都瓶颈。
例如 5 个 broker、2 个 proxy,此时满载情况下集群计算资源的上限,其实是会受到这 2 个 proxy 性能的制约的,比如吞吐,尤其是 proxy CPU 的计算能力。

另外,通常 Pulsar Proxy 不建议和 Pulsar broker 部署在一起,以避免 CPU 抢占问题。