[求助帖]Kafka连接问题 【✅已解决】

最近开了一台阿里云2v4GB的服务器部署Kafka

  1. 使用docker部署Kafka
  2. iptables开放9092端口
  3. 绑定EIP
  4. 阿里云安全组添加入方向规则

当使用本机进行连接时出现以下问题

  1. 使用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()
  1. 使用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

常规话题快问快答

30 Likes

看看阿里云控制台那边的安全组打开了吗,以及看看 kafka 有没有监听 0.0.0.0

Tips: 下次发帖记得把 ip 打码

1 Like

谢谢提醒,安全组也打开了,以确定监听
image

kafka的server.properties里配置远程监听了不?
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://serverip:9092

2 Likes

配置之后可以了,感谢感谢,另外可不可以问一下为什么,因为云中部署之前在局域网另一台机器上同样docker方式部署了kafka,除了开放端口之外没有配置其他的,本机可以访问 :thinking:

阿里云的话,好像是会有一个专用的内网地址吧,可能kafka启动时,绑定了默认的内网地址,所以不显性配置为公网ip的话,就会连不上。本地局域网的话,因为内网机器本身就是互通的,所以就算不配置的话,绑定的内网ip也是可以访问到的。大概是这样吧。 :smiling_face:

2 Likes

嗷嗷,明白了,感谢佬 :rose:

From #develop:qa to 开发调优

1 Like