如何从 azure 公开 kafka 端点并从 onpremise 应用程序使用它?
How to expose kafka endpoint from azure and consume it from onpremise application?
我正在尝试为以下内容做 POC :
我在 Azure 上托管了一个 kafka 容器。当消费者在 azure 内时,我能够从消费者向这个 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 上的生产者应用程序配置以与 kafka 对话:
"Endpoint": "kafka:9092"
kafka 和 consumer on within azure 之间的通信是完美的。
现在,我想在本地使用消费者,而不是在 Azure 上。
所以我所做的只是从 azure vm 公开端口 9092 并将端点更新为以下内容:
在本地与 kafka 对话的本地生产者应用程序配置:
"Endpoint": "Azure Vm's Public IP:9092"
但是,它无法从我的本地应用程序连接到 Azure 上的 Kafka。
您能否建议我在这里做错了什么,以及我如何能够在 azure(或任何云)的容器中从本地应用程序连接到 kafka 运行?
您需要为单独的网络(内部 Azure 与 public IP)配置 Kafka 侦听器。有关详细说明,请参阅 https://rmoff.net/2018/08/02/kafka-listeners-explained/。
免责声明:博客是我写的post :)
我正在尝试为以下内容做 POC :
我在 Azure 上托管了一个 kafka 容器。当消费者在 azure 内时,我能够从消费者向这个 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 上的生产者应用程序配置以与 kafka 对话:
"Endpoint": "kafka:9092"
kafka 和 consumer on within azure 之间的通信是完美的。
现在,我想在本地使用消费者,而不是在 Azure 上。 所以我所做的只是从 azure vm 公开端口 9092 并将端点更新为以下内容:
在本地与 kafka 对话的本地生产者应用程序配置:
"Endpoint": "Azure Vm's Public IP:9092"
但是,它无法从我的本地应用程序连接到 Azure 上的 Kafka。
您能否建议我在这里做错了什么,以及我如何能够在 azure(或任何云)的容器中从本地应用程序连接到 kafka 运行?
您需要为单独的网络(内部 Azure 与 public IP)配置 Kafka 侦听器。有关详细说明,请参阅 https://rmoff.net/2018/08/02/kafka-listeners-explained/。
免责声明:博客是我写的post :)