gpt4 book ai didi

go - Kubernetes 中的 NSQ 集群

转载 作者:行者123 更新时间:2023-12-05 06:47:33 24 4
gpt4 key购买 nike

我正在尝试在 Kubernetes 中设置 NSQ 集群,但遇到了问题。基本上,我想扩展 NSQ 和 NSQ Lookup。我对它们都有一个有状态的 set(2 nodes) 定义。为了不发布整个 YAML 文件,我将只发布其中的一部分用于 NSQ

NSQ容器模板

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

这里 nsqlookupd.default.svc.cluster.local 是一个 K8s headless 服务,通过这样做我期望 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 中为 NSQ 和 NSQ Lookup 使用 headless 服务 DNS 名称,但这并不奏效。

我正在使用 nsqio go 库来发布和使用消息,看起来我也不能在那里使用 headless 服务,并且应该在初始化时明确列出 NSQ/NSQ Lookup pod 名称消费者或出版商。

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

最佳答案

你可以使用有状态集和 headless 服务来实现这个目标

关于go - Kubernetes 中的 NSQ 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67082569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com