go - 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 中为 NSQ 和 NSQ 查找使用无头服务 DNS 名称,但这也不起作用。
我正在使用nsqio
go 库来发布和消费消息,看起来我也不能在那里使用无头服务,并且应该在初始化消费者或发布者时明确列出 NSQ/NSQ 查找 pod 名称。
我是否以错误的方式使用它?我的意思是我想要水平缩放 NSQ 和 NSQLookup 实例,而不是硬编码地址。
解决方案
您可以使用 statfulset 和无头服务来实现此目标
推荐阅读
- android - Flutter DropDownSearch 值在将焦点更改为其他小部件时重置
- android - 协程视图模型执行
- excel - Excel 在继续之前检查剪贴板中的日期
- php - 如何在数据库中插入图像并将其存储在文件夹中并显示回来
- python - 模型验证准确度在训练期间始终为 1 (Keras)
- reactjs - 样式化的组件选择上一个兄弟
- javascript - JSON解析恢复器
- python - 无法在超过 999 行的 Google Sheet 上执行 batch_update
- github - 启用2FA后如何使用git而不在每次操作中写入令牌
- python - 我需要一个脚本,它会一个一个地打开 excel 链接,然后抓取信息并保存它