我在 AWS 中有两个 VPC:
VPC-A 中有一个 ec2 实例。
VPC-B 中有一个 ec2 实例,通过 docker-compose 运行 kafka 和 zookeeper
VPC 通过 AWS Privatelink 连接(端点 --> 端点服务 --> nlb(在 VPC-B 中) --> kafka)我已经给出了privatelink 端点 DNS 名称:broker.confluent-playground
我可以从 VPC A 远程登录到端口 9092 和 2181 到 VPC-B 中的 Kafka 和 Zookeeper。没问题
[ec2-user@ip-10-1-0-90 etc]$ telnet broker.confluent-playground 9092
Trying 10.1.1.200...
Connected to broker.confluent-playground.
我的问题是,虽然 VPC 之间存在网络连接,但我似乎遇到了 kafka 侦听器配置问题。当我将 advertised.listeners 设置为broker.confluent-playground:9092时,我的制作人似乎无法连接,并且在运行kafkacat -b broker.confluent-playground -L时,我只列出了 40 个主题中的 7 个。(它们看起来像是内部系统主题,例如“_confluent_balancer_partition_samples”)。
以下是 docker-compose 文件的摘录:
broker:
image: confluentinc/cp-server:6.1.1
hostname: broker
container_name: broker
depends_on:
- zookeeper
ports:
- "9092:9092"
- "9101:9101"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: INTERNAL://broker:29092,EXTERNAL://broker.confluent-playground:9092
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
现在,如果我将广告监听器更改为持有 kafka 的 ec2 的私有 IP,即:
FROM
EXTERNAL://broker.confluent-playground:9092
至
EXTERNAL://192.168.35.65:9092
那么 VPC-A 中的 kafkacat 就可以正确看到全部 40 个主题了!我仍然无法制作(因为我假设我已经在不同的网络中获得了广告的私有 IP 地址)。
我似乎在某个地方弄乱了这些侦听器配置,我很困惑如何通过更改广告侦听器来获得具有一个设置的主题子集,然后使用另一个设置获得所有主题。
另一个有趣的事情
我的 kafkacat 使用broker.confluent-playground广告侦听器扫描返回这个
[ec2-user@ip-10-1-0-90 ~]$ sudo docker run --rm --network=host edenhill/kafkacat:1.5.0 kafkacat -b broker.confluent-playground:9092 -L
Metadata for all topics (from broker 1: broker.confluent-playground:9092/1):
1 brokers:
broker 1 at broker.confluent-playground:9092 (controller)
7 topics:
当我使用私有 IP 地址(我无法从 VPC-A 访问)作为广告侦听器时,我会得到包含所有主题的 /bootstrap:
[ec2-user@ip-10-1-0-90 ~]$ sudo docker run --rm --network=host edenhill/kafkacat:1.5.0 kafkacat -b broker.confluent-playground:9092 -L
Metadata for all topics (from broker -1: broker.confluent-playground:9092/bootstrap):
1 brokers:
broker 1 at 192.168.54.226:9092 (controller)
40 topics: