528.【消息队列】办理ERR 1 [topic/channel] (: no such host

分享
藏宝库编辑 2024-9-9 09:30:19 65 0 来自 中国
本日在远程k8s集群上摆设了一个nsq,效果在调试当地步伐时,报了如下错误:
当地调试步伐的输出:
ERR    1 [topic/channel] (nsq-0.nsq.qijing.svc.cluster.local:4150) error connecting to nsqd - dial tcp: lookup nsq-0.nsq.qijing.svc.cluster.local: no such hostk8s pod内的输出:
[nsqd] 2022/12/21 14:49:20.274503 INFO: NSQ: persisting topic/channel metadata to nsqd.dat[nsqd] 2022/12/21 14:49:20.274637 INFO: LOOKUPD(127.0.0.1:4160): topic REGISTER topic[nsqd] 2022/12/21 14:49:20.291556 INFO: PROTOCOL(V2): [192.168.3.24:65465] exiting ioloop[nsqd] 2022/12/21 14:49:20.291591 ERROR: client(192.168.3.24:65465) - failed to read command - read tcp 172.17.182.159:4150->192.168.3.24:65465: read: connection reset by peer[nsqd] 2022/12/21 14:49:20.291647 INFO: PROTOCOL(V2): [192.168.3.24:65465] exiting messagePump这里的nsq-0.nsq.qijing.svc.cluster.local 是启动 nsqd 服务时指定的/nsqd --lookupd-tcp-address=127.0.0.1:4160 --broadcast-address=nsq-0.nsq.qijing.svc.cluster.local,由于k8s摆设nsq应用时,利用的是 StatefulSet,因此,nsq-0.nsq.qijing.svc.cluster.local 在k8s内部是完全能剖析到的。
那这个错误到底是从哪儿来的呢?缘故起因在于:k8s集群外部(也就是我本机无法剖析它)。以是在在本机的 hosts文件中加上这个域名的剖析地点,步伐就正常了。

1.png 颠末重复测试发现:

  • --broadcast-address 参数不指定域名,指定nsq的k8s服务(Service)对外的公共ip也是可以的。如许就不消编辑测试呆板内部的域名剖析地点了。着实编辑域名剖析地点也是将域名指向k8s对外的公共ip。
  • 发起利用 StatefulSet 不要利用 Deployment,由于同样指定了 --broadcast-address为公共ip,StatefulSet能正常运行,Deployment不能正常运行。
  • pod 内部输出的 ERROR: client(192.168.3.24:65465) - failed to read command不影响利用。
  • 当地呆板输出 no such host 错误,指的是当地的问题,并不是把远程nsq的日记拉到当地。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-19 11:49, Processed in 0.172505 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表