NSQ学习笔记

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容