Я пытаюсь сделать POC для следующего:
Я разместил контейнер с кафкой на лазури. Я могу отправлять сообщения этому экземпляру kafka от потребителя, когда потребитель находится в пределах лазури.
Конфигурация Kafka в docker-compose:
kafka:
image: confluentinc/cp-kafka:latest
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: kafka
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://kafka:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_BROKER_ID: 1
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_HEAP_OPTS: "-Xmx256M -Xms128M"
KAFKA_LOG_DIRS: /var/lib/winkafka
Настройка приложения-производителя на Azure для общения с Кафкой:
<br>
"Endpoint": "kafka:9092"<br>
Связь между кафкой и потребителем внутри лазури происходит идеально.
Теперь я хочу, чтобы потребитель был локальным, а не лазурным.
Итак, я только что открыл порт 9092 из Azure VM, а также обновил конечную точку следующим образом:
Конфигурация приложения производителя на локальном компьютере для общения с kafka на лазурном:
"Endpoint": "Azure Vm's Public IP:9092"
Но он не может подключиться из моего локального приложения к Кафке на Azure.
Не могли бы вы подсказать, что я делаю здесь неправильно и как я смогу подключиться из локального приложения к kafka, работающему в контейнере на Azure (или в любом облаке)?