远程客户端连接Kafka

一、原因描述


安装好Kafka(服务端ip为192.168.116.128 (本地虚拟机) ),在Linux服务器上使用 kafka-console-consumer和 kafka-console-producer ,进行生产者和消费者测试,能进行正常的接发消息。但是通过远程客户端的作为生产者,无法与kafka服务端建立连接。
 
二、问题排查

      1、排查是不是服务器的防火墙原因,导致服务器的9092端口不能被window连接上,在window上执行telnet 192.168.116.128 9092,发现端口是可以被连通的,排除了这个原因。
       2、Kafka更改配置文件才能实现被远程访问
 
             打开config/server.properties配置文件,更改如下
            把36行的注释去掉,把advertised.listeners值改为 PLAINTEXT://host_ip:9092 (我的服务器ip是192.168.116.128)
 
            如果没有配置内部的IP地址,默认地址为java.net.InetAddress.getCanonicalHostName(),在存在多个网卡的情况可能不能找到正确的IP地址,建议手动 配置host.name的值
 
远程客户端连接Kafka_第1张图片
 
listeners配置用于内网通信
 
listeners=<协议名称>://<内网ip>:<端口>
advertise.listeners配置暴露出去的listener
远程客户端连接Kafka_第2张图片
 
 
三、 在云服务器中搭建kafka

在云服务器中搭建kafka集群配置,直接配置 host.name 配置和 port 配置
 
#本地IP
host.name=${IP}
port=9091
#公网IP
advertised.host.name=${IP}
 
 
 

你可能感兴趣的:(kafka,kafka)