O2_Ti
(O2 Ti)
April 9, 2024, 2:23am
1
最近开了一台阿里云2v4GB的服务器部署Kafka
使用docker部署Kafka
iptables开放9092端口
绑定EIP
阿里云安全组添加入方向规则
当使用本机进行连接时出现以下问题
使用kafka-python库,无异常,连接失败,代码如下
from kafka import KafkaClient
def check_kafka_connection():
try:
# 指定 Kafka 服务器的地址和端口
kafka_client = KafkaClient(bootstrap_servers='eip:9092')
# 检查连接状态
if kafka_client.connected(1):
print("Kafka connection successful")
else:
print("Kafka connection failed")
except Exception as e:
# 连接失败,打印错误信息
print(f"Failed to connect to Kafka: {e}")
# 调用函数以检查连接
check_kafka_connection()
使用kafka官方脚本进行连接时,指定----bootstrap-server参数后,仍然连接本地localhost,脚本命令和输出如下:
bin/kafka-configs.sh --bootstrap-server EIP:9092 -describe --entity-type topics --entity-name model_update
[2024-04-09 09:52:56,382] WARN [AdminClient clientId=adminclient-1] Connection to node 1 (localhost/127.0.0.1:9092) could not be established. Node may not be available. (org.apache.kafka.clients.NetworkClient)
求助群佬有无遇到相同问题,或者我的方法有什么错误,感谢感谢,救救孩子
2 Likes
bubu
April 9, 2024, 2:27am
3
看看阿里云控制台那边的安全组打开了吗,以及看看 kafka 有没有监听 0.0.0.0
Tips: 下次发帖记得把 ip 打码
1 Like
Toyas
April 9, 2024, 2:51am
5
kafka的server.properties里配置远程监听了不?
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://serverip:9092
2 Likes
O2_Ti
(O2 Ti)
April 9, 2024, 6:41am
6
配置之后可以了,感谢感谢,另外可不可以问一下为什么,因为云中部署之前在局域网另一台机器上同样docker方式部署了kafka,除了开放端口之外没有配置其他的,本机可以访问
Toyas
April 9, 2024, 8:56am
7
阿里云的话,好像是会有一个专用的内网地址吧,可能kafka启动时,绑定了默认的内网地址,所以不显性配置为公网ip的话,就会连不上。本地局域网的话,因为内网机器本身就是互通的,所以就算不配置的话,绑定的内网ip也是可以访问到的。大概是这样吧。
2 Likes