首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nsq无法通过连接到nsqlookupd来使用消息

nsq无法通过连接到nsqlookupd来使用消息
EN

Stack Overflow用户
提问于 2018-01-31 15:43:18
回答 1查看 2.4K关注 0票数 2

我尝试使用docker-compose来运行nsq,docker-compose.yml如下所示:

代码语言:javascript
复制
version: '3'
services:
  nsqlookupd:
    image: nsqio/nsq
    command: /nsqlookupd
    ports:
      - "4160:4160"
      - "4161:4161"
  nsqd:
    image: nsqio/nsq
    command: /nsqd --lookupd-tcp-address=nsqlookupd:4160
    depends_on:
      - nsqlookupd
    ports:
      - "4150:4150"
      - "4151:4151"
  nsqadmin:
    image: nsqio/nsq
    command: /nsqadmin --lookupd-http-address=nsqlookupd:4161
    depends_on:
      - nsqlookupd
    ports:
      - "4171:4171"

我正在使用nsq客户端go-nsq来产生和消费消息,消息可以通过直接连接到nsqd来消费,但不能通过连接到nsqlookupd来消费:

代码语言:javascript
复制
consumer.ConnectToNSQD("127.0.0.1:4150")  # success (output the consumed messages)

consumer.ConnectToNSQLookupd("127.0.0.1:4161")   # failed

2018/01/31 16:39:12 ERR    1 [test/liu] (967fcc2c88ae:4150) error connecting to nsqd - dial tcp: i/o timeout

我可以连接nsqlookup实例:

代码语言:javascript
复制
➜  test_nsq curl http://127.0.0.1:4161/ping
OK%
➜  test_nsq curl http://127.0.0.1:4161/nodes
{"producers":[{"remote_address":"172.22.0.3:59988","hostname":"967fcc2c88ae","broadcast_address":"967fcc2c88ae","tcp_port":4150,"http_port":4151,"version":"1.0.0-compat","tombstones":[false],"topics":["test"]}]}%

源码链接:

https://gist.github.com/liuzxc/1baf85cff7db8dee8c26b8707fc48799

环境:

代码语言:javascript
复制
OS: Mac EI Capitan 10.11.6
go version: 1.9.2
nsq: 1.0.0-compat(latest)

对此有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-31 17:07:12

我输出go-nsq日志,然后找到根本原因,应该为nsqd命令添加-broadcast-address=127.0.0.1,如果没有,nsqd会将其主机名注册到nsqlookupd,客户端无法解析。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48536963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档