NSQ не может получить сообщение - PullRequest
0 голосов
/ 05 июля 2019

Я выгляжу так: nsq не может использовать сообщение, подключившись к nsqlookupd

Но он не относится ко мне, пробовали все виды. Это может быть среда.

система: 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"

Я попытался добавить -broadcast-address = 127.0.0.1 в команде NSQD, но это приведет к ошибке страницы администратора.

docker-compose config

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'

enter image description here

Надеюсь, выпоймите, что я имею в виду , В конце концов, мой английский плохой. Есть идеи для этого?

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, но я не знаю, как с ним справиться.

...