Pulsar: Ошибка проверки / получения метаданных раздела при подписке на постоянные://public/default/test
У меня сейчас есть docker-compose.yml
файл, который вызывает ряд услуг. Одним из таких сервисов является пульсар, а другим - веб-сервер, подключенный через веб-сокет. Когда я поднимаю эти сервисы, контейнер websocket не работает. Это логи говорят: Error Checking/Getting Partition Metadata while Subscribing on persistent://public/default/test
, Я не использую разделы, поэтому мне сложно это понять.
До сих пор я много гуглил и нашел этот вопрос, на который нет ответов, но он похож на мою проблему.
Это мое docker-compose.yml
файл:
version: '3.2'
services:
pulsar:
image: apachepulsar/pulsar:latest
command: bin/pulsar standalone
ports:
- "6650"
- "8080"
ios_pos_ws_input:
depends_on:
- pulsar
environment:
- PULSAR_HOST=pulsar
image: dock.gastrofix.com/bridge/ios_pos_ws_input:${VERSION:-latest}
restart: always
ports:
- "8765"
command: python3 -m wait_for_pulsar "python3 -m inputs.ios_pos.web_sockets.ws_server"
ios_pos_ws_sink:
depends_on:
- pulsar
environment:
- PULSAR_HOST=pulsar
image: dock.gastrofix.com/bridge/ios_pos_ws_sink:${VERSION:-latest}
restart: always
ports:
- "8765"
command: python3 -m wait_for_pulsar "python3 -m sinks.ios_pos_ws"
volumes:
pulsar:
и когда я проверяю логи обоих ios_pos_ws_input
а также ios_pos_ws_sink
Я вижу это:
2019-05-15 14:12:52.809 INFO ClientConnection:300 | [172.28.0.5:53624 -> 172.28.0.2:6650] Connected to broker
2019-05-15 14:12:52.920 ERROR ClientConnection:726 | [172.28.0.5:53624 -> 172.28.0.2:6650] Failed partition-metadata lookup req_id: 1 error: 1
2019-05-15 14:12:52.920 ERROR ClientImpl:394 | Error Checking/Getting Partition Metadata while Subscribing on persistent://public/default/test -- 5
2019-05-15 14:12:52.921 INFO ClientImpl:492 | Closing Pulsar client
2019-05-15 14:12:54.922 INFO Client:88 | Subscribing on Topic :test
2019-05-15 14:12:54.923 INFO ConnectionPool:72 | Created connection for pulsar://pulsar:6650
Я бы очень хотел это выяснить. Я ценю любую помощь заранее!
1 ответ
Похоже, public/default
пространство имен еще не создано, когда клиент пытается его использовать.
Я попытался с помощью этого простого файла compose увеличить задержку, чтобы гарантировать, что автономный сервис полностью готов при запуске клиента:
version: '3.2'
services:
pulsar:
image: apachepulsar/pulsar:latest
command: bin/pulsar standalone
ports:
- "6650"
- "8080"
client:
depends_on:
- pulsar
image: apachepulsar/pulsar:latest
command: python -c "import pulsar, time; time.sleep(30); c = pulsar.Client('pulsar://pulsar:6650'); p = c.create_producer('my-topic')"