【发布时间】: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 上运行:
- https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-getting-started.html#cvpn-getting-started-certs
- 生成证书的说明: https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html#mutual
- https://www.youtube.com/watch?v=Bv70DoHDDCY
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