【问题标题】:Connecting to AWS MSK Kafka from my laptop: NoBrokersAvailable从我的笔记本电脑连接到 AWS MSK Kafka:NoBrokersAvailable
【发布时间】:2021-09-02 03:58:21
【问题描述】:

我无法从我的笔记本电脑连接到 AWS MSK Kafka(Access Control Method 配置为 None),错误是:NoBrokersAvailable

我在端口 9092 上使用 plaintext 连接:

from kafka import KafkaProducer 
kafka_brokers = [ "xxx.kafka.ap-east-1.amazonaws.com:9092","xxx.kafka.ap-east-1.amazonaws.com:9092","xxx.kafka.ap-east-1.amazonaws.com:9092" ]
producer = KafkaProducer(bootstrap_servers=kafka_brokers)

参考: AWS MSK - 纯文本代理端口 9092,TLS 9094 https://docs.aws.amazon.com/msk/latest/developerguide/client-access.html

我尝试了三件事(没有帮助):

一个。在我的 VPC 默认安全组下添加了 inbound+outbound source/destination over 9092+9094 source/dest 0.0.0.0/0

b.尝试按照以下说明在 AWS Client VPN 上运行:

c。关闭笔记本电脑上的防火墙

我看到其他人问类似的问题:How to connect Python consumer to AWS MSK

有些人认为它只是不支持本地机器/笔记本电脑上的客户端连接到 AWS MSK:How can I access my AWS MSK managed kafka queue from my local machine and EC2 instances in other regions 这是真的/官方的吗?

我正在考虑创建 EIP(弹性 IP) https://repetitive.it/aws-msk-how-to-expose-the-cluster-on-the-public-network/?lang=en 然后以某种方式与代理域名 xxx.kafka.ap-east-1.amazonaws.com 关联(但不确定如何)并配置入站出站规则。

但我找不到任何有用的东西。

我不知所措,这个问题已经消耗了一整天。非常感谢任何帮助。

谢谢

【问题讨论】:

  • 您是否检查过安全组是否设置正确并允许流量到您的笔记本电脑。您还可以确认代理是在公共子网还是私有子网中?
  • 它们在公共子网中。而且我配置了入站+出站规则以允许9092/9094,没有运气。
  • 我建议创建一个 ec2 实例,然后尝试使用它连接到您的 msk 集群。
  • 上次我检查过,如果广告的侦听器(和防火墙)配置正确,您可以从任何网络连接到任何代理...如果您在代理上使用kafkacat -L,它们的地址是什么给?您可以从 AWS 外部远程登录这些地址吗?
  • 您设法解决了这个问题吗?我有同样的.....谢谢!

标签: python-3.x amazon-web-services apache-kafka aws-msk


【解决方案1】:

无法从您的笔记本电脑直接连接到 MSK 经纪人。尽管 MSK 侦听器公开了一个公共 DNS 名称,但它实际上解析为 MSK 代理的私有 IP。因此,由于您不在 VPC 内,因此您无法访问私有 IP。

实现此目的最便宜的选择是设置
AWS Client VPN endpoint.

(已编辑)观察到您已经尝试过客户端 VPN,什么不起作用?我正在使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-25
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多