我在 kubernetes 环境中有一个 golang 微服务项目,它运行了几个nsqd-0
, nsqd-1
, ...
pod,这些 pod 由其 statefulSet 控制并分组在nsqd
service 下。
问题是当我想制作一个制作人时,我导入github.com/nsqio/go-nsq
并创建它p := nsq.NewProducer('nsqd:4150', nsq.NewConfig())
但是连接是粘性的(持久的)所以发生的事情是服务为我提供了随机 pod 的 ip 地址(说它nsqd-2
),所有流量都流向它。其他的根本没用
现在我正在使用糟糕的解决方法,每 5 秒我p.Stop()
当前的生产者并重新初始化,以便它连接到不同的 pod。但是如何正常负载均衡呢?有什么云原生简单的方法吗?