0

我在 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:
4

0 回答 0