登录
首页 >  Golang >  Go问答

基于 Kubernetes 的 NSQ 集群

来源:stackoverflow

时间:2024-02-13 11:33:23 181浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《基于 Kubernetes 的 NSQ 集群》,聊聊,我们一起来看看吧!

问题内容

我正在尝试在 kubernetes 中设置 nsq 集群,但遇到了问题。 基本上,我想扩展 nsq 和 nsq lookup。我对它们都有一个有状态集(2 个节点)定义。为了不发布整个 yaml 文件,我将仅发布 nsq 的部分内容

nsq 容器模板

command:
        - /nsqd
        - -data-path
        - /data
        - -lookupd-tcp-address
        - nsqlookupd.default.svc.cluster.local:4160

这里 nsqlookupd.default.svc.cluster.local 是一个 k8s 无头服务,通过这样做,我期望 nsq 实例打开与所有 nsq lookup 实例的连接,但事实上这并没有发生。它只是打开与随机连接的连接。但是,如果我像这样明确列出所有 nsq 查找主机,它就可以工作。

command:
            - /nsqd
            - -data-path
            - /data
            - -lookupd-tcp-address
            - nsqlookupd-0.nsqlookupd:4160
            - -lookupd-tcp-address
            - nsqlookupd-1.nsqlookupd:4160

我还想在 --broadcast-address 中使用无头服务 dns 名称来进行 nsq 和 nsq lookup,但这不太有效。

我正在使用 nsqio go 库来发布和使用消息,看起来我也不能在那里使用无头服务,并且应该在初始化消费者或发布者时显式列出 nsq/nsq lookup pod 名称。

我是否以错误的方式使用它? 我的意思是我想要水平缩放的 nsq 和 nsqlookup 实例,而不是对地址进行硬编码。


正确答案


您可以使用 statfulset 和 headless 服务来实现此目标

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>