我是这样看的:nsq cannot consume message by connecting to nsqlookupd
但他并不适用于我,所有的方式都可以被tried.It的环境。
系统: VMware CentOS + Docker-compose NSQ版本:全部最新
docker-compose.yml:
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"我尝试在NSQD命令中添加-broadcast-address=127.0.0.1,但它会导致管理员页面错误。
docker-compose配置
services:
nsqadmin:
command: /nsqadmin --lookupd-http-address=nsqlookupd:4161
depends_on:
- nsqlookupd
image: nsqio/nsq
ports:
- 4171:4171/tcp
nsqd:
command: /nsqd --lookupd-tcp-address=nsqlookupd:4160 -broadcast-address=127.0.0.1
depends_on:
- nsqlookupd
image: nsqio/nsq
ports:
- 4150:4150/tcp
- 4151:4151/tcp
nsqlookupd:
command: /nsqlookupd
image: nsqio/nsq
ports:
- 4160:4160/tcp
- 4161:4161/tcp
version: '3.0'

我希望你能理解我的意思,毕竟我的英语很差,你对此有什么想法吗?
func Producer() {
producer, err := nsq.NewProducer("192.168.132.128:4150", nsq.NewConfig())
if err != nil {
fmt.Println("NewProducer", err)
panic(err)
}
for i := 0; i < 5; i++ {
if err := producer.Publish("test", []byte(fmt.Sprintf("Hello World "))); err != nil {
fmt.Println("Publish", err)
panic(err)
}
}
}此代码成功他可以将消息添加到nsqd,但我无法连接到nsqd
看看这个:
2019/07/05 14:19:00 INF 2 [test/testq] querying nsqlookupd http://192.168.132.128:4161/lookup?topic=test
2019/07/05 14:19:00 INF 2 [test/testq] (60366475943f:4150) connecting to nsqd
2019/07/05 14:19:01 ERR 2 [test/testq] (60366475943f:4150) error connecting to nsqd - dial tcp: i/o timeout还有这个
{"channels":["testq"],"producers":[{"remote_address":"172.19.0.2:57250","hostname":"60366475943f","broadcast_address":"60366475943f","tcp_port":4150,"http_port":4151,"version":"1.1.0"}]}我认为问题出现在查找连接NSQ,但我不知道如何处理他。
发布于 2021-08-12 04:27:55
我想你忘了什么。您是否已将其添加到/etc/hosts中
127.0.0.1 nsqd它允许您的计算机识别带有docker上的nsq网络的本地网络。希望这能对你有所帮助。CMIIW。
发布于 2021-11-26 05:46:38
我试着按照下面的方式添加,
--broadcast-address=nsqd因此您docker组成应该如下所示,
nsqd:
command: /nsqd --lookupd-tcp-address=nsqlookupd:4160 --broadcast-address=nsqd
depends_on:
- nsqlookupd
image: nsqio/nsq
ports:
- 4150:4150/tcp
- 4151:4151/tcp它现在应该可以工作了
https://stackoverflow.com/questions/56897816
复制相似问题