docker-compose.yml
nsqlookupd0:
image: nsqio/nsq
ports:
- 4060:4160
- 4061:4161
command: /nsqlookupd
networks:
- backend
nsqlookupd1:
image: nsqio/nsq
ports:
- 4160:4160
- 4161:4161
command: /nsqlookupd
networks:
- backend
nsqlookupd2:
image: nsqio/nsq
ports:
- 4260:4160
- 4261:4161
command: /nsqlookupd
networks:
- backend
nsqd0:
image: nsqio/nsq
ports:
- 4050:4150
- 4051:4151
command: /nsqd --lookupd-tcp-address=nsqlookupd0:4160 --lookupd-tcp-address=nsqlookupd1:4160 --lookupd-tcp-address=nsqlookupd2:4160
networks:
- backend
nsqd1:
image: nsqio/nsq
ports:
- 4150:4150
- 4151:4151
command: /nsqd --lookupd-tcp-address=nsqlookupd0:4160 --lookupd-tcp-address=nsqlookupd1:4160 --lookupd-tcp-address=nsqlookupd2:4160
networks:
- backend
nsqd2:
image: nsqio/nsq
ports:
- 4250:4150
- 4251:4151
command: /nsqd --lookupd-tcp-address=nsqlookupd0:4160 --lookupd-tcp-address=nsqlookupd1:4160 --lookupd-tcp-address=nsqlookupd2:4160
networks:
- backend
nsqadmin:
image: nsqio/nsq
ports:
- 4171:4171
command: /nsqadmin --lookupd-http-address=nsqlookupd0:4161 --lookupd-http-address=nsqlookupd1:4161 --lookupd-http-address=nsqlookupd2:4161
networks:
- backend
nsqtail0:
image: nsqio/nsq
command: /nsq_tail --lookupd-http-address=nsqlookupd0:4161 --lookupd-http-address=nsqlookupd1:4161 --lookupd-http-address=nsqlookupd2:4161 --topic=test --channel=c1
networks:
- backend
nsqtail1:
image: nsqio/nsq
command: /nsq_tail --lookupd-http-address=nsqlookupd0:4161 --lookupd-http-address=nsqlookupd1:4161 --lookupd-http-address=nsqlookupd2:4161 --topic=test --channel=c2
networks:
- backend
nsqtail2:
image: nsqio/nsq
command: /nsq_tail --lookupd-http-address=nsqlookupd0:4161 --lookupd-http-address=nsqlookupd1:4161 --lookupd-http-address=nsqlookupd2:4161 --topic=test --channel=c1
networks:
- backend
nsqtail3:
image: nsqio/nsq
command: /nsq_tail --lookupd-http-address=nsqlookupd0:4161 --lookupd-http-address=nsqlookupd1:4161 --lookupd-http-address=nsqlookupd2:4161 --topic=test --channel=c2
networks:
- backend
关于 topic 与 channel
1、消息会往所有topic下的channel广播,即topic下的channel会收到所有topic发来的消息
2、同一个channel下的consumer只有一个会收到消息,可用channel来做负载均衡
关于 有序
1、只有一个consumer情况下,消息是有序的
2、多个consumer情况下,消息是无序的
testing
for i in {1..150};
do
curl -d "haha$i" http://127.0.0.1:4151/pub\?topic\=test
done