Я пытаюсь запустить докер-кафку и масштабировать ее на своем локальном хосте. Вот мой исходный файл docker-compose.yml:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
Это отлично работает, когда я запрашиваю BOOTSTRAP_SERVERS_CONFIG="PLAINTEXT://127.0.0.1:9092".
Очевидно, что если я использую docker-compose scale kafka=3, я получу ошибку, потому что порт 9092 на локальном хосте уже используется.
Согласно документу: https://github.com/wurstmeister/kafka-docker/wiki/Подключение, я пытался изменить порт следующим образом:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092"
environment:
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
При этом, если я запрошу с BOOTSTRAP_SERVERS_CONFIG="PLAINTEXT://127.0.0.1:9092", мой производитель не сможет отправить сообщение из-за тайм-аута. Это означает, что точка входа не KAFKA_LISTENERS или KAFKA_ADVERTISED_LISTENERS.
java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
Если я использую порт, мой докер был привязан (32001): BOOTSTRAP_SERVERS_CONFIG="PLAINTEXT://127.0.0.1:32001" При попытке отправить сообщение я получил другое сообщение об ошибке:
java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for demo-0:120001 ms has passed since batch creation
Я предполагаю, что есть что-то странное в KAFKA_LISTENERS и KAFKA_ADVERTISED_LISTENERS, но я не могу найти способ заставить это работать.
В моей последней попытке я сделал:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9093:9092"
environment:
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 # or PLAINTEXT://0.0.0.0:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092 # or PLAINTEXT://127.0.0.1:9093
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
Но это ничего не дало. Если у кого-то есть идея, дайте мне знать.
Мой Producer просто не может подключиться к kafka при попытке отправить свое сообщение (получил тайм-аут). Я запущу это снова, чтобы я мог написать точные журналы.


Вам нужно более четко определить, что вы подразумеваете под «у меня ничего не работает». Вы получаете сообщение об ошибке? Если да, то? Лог-файлы? и Т. Д.