如何从azure公开kafka端点并从内部应用程序使用它?

uklbhaso  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(283)

我正在尝试为以下内容执行poc:
我在azure上托管了一个Kafka容器。当消费者在azure中时,我可以从消费者向这个kafka示例发送消息。

docker compose中的kafka配置:

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上与kafka对话的生产者应用程序配置:

"Endpoint": "kafka:9092"

Kafka和消费者在azure上的交流正在完美地进行。
现在,我想让消费者在本地,而不是在azure上。因此,我所做的只是从azure vm公开端口9092,并将端点更新为以下内容:

本地上的生产者应用程序配置与azure上的kafka对话:

"Endpoint": "Azure Vm's Public IP:9092"

但是,它无法从我的本地应用程序连接到azure上的kafka。
你能告诉我我做错了什么,以及我将如何从本地应用程序连接到运行在azure(或任何云)容器中的kafka吗?

yyhrrdl8

yyhrrdl81#

您需要为单独的网络(内部azure与公共ip)配置kafka侦听器。看到了吗https://rmoff.net/2018/08/02/kafka-listeners-explained/ 详细解释。
免责声明:我写了一篇博文:)

相关问题