我尝试使用 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"
Run Code Online (Sandbox Code Playgroud)
我使用的是nsq客户端go-nsq来生成和消费消息,消息可以通过直接连接nsqd来消费,但是不能通过连接nsqlookupd来消费:
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
Run Code Online (Sandbox Code Playgroud)
我可以连接到 nsqlookup 实例:
? test_nsq curl http://127.0.0.1:4161/ping …
Run Code Online (Sandbox Code Playgroud)