kafka发送消息出错,提示连接超时无法发送

时间:2024-03-15 12:49:31

正文开始:

      最近看了下kafka  。Kafka是由Apache软件基金会开发的一个开源流处理平台,由ScalaJava编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。以上内容来自百度文库

     kafka使用中遇到的问题

     1,启动中

       kafka发送消息出错,提示连接超时无法发送

启动中提示 获取 信息为dead 死亡状态 然后发送就出现如下图 

 kafka发送消息出错,提示连接超时无法发送

发送信息异常  

参考错误原因

网上的回答比较奇怪。说是在服务器上配置配置host和名称相对应。我查看服务器,发现已经配置完成。,有的说重启kafka服务就可以了,但是都不行。后来发现:错误中有:Marking the coordinator node2:9092 (id: 2147483646 rack: null) dead。发现是通过节点名去查找服务器的。但是我在本地的hosts中并没有配置10.108.208.51 node2。配置完成后问题就解决了。(原文地址https://blog.csdn.net/zcc_heu/article/details/80632581) 

自己解决方案 1:在kafka 的配置中添加如下 配置 

   # The address the socket server listens on. It will get the value returned from 
   # java.net.InetAddress.getCanonicalHostName() if not configured.
   #   FORMAT:
   #     listeners = listener_name://host_name:port
   #   EXAMPLE:
   #     listeners = PLAINTEXT://your.host.name:9092
listeners = PLAINTEXT://izbp12hyscnjnyd7lo0iglz:9091(注:#标注的内容为官方配置中的注释内容 izbp12hyscnjnyd7lo0iglz为我的服务器的hostname  查看Linux服务器的host name  输入命令:hostname)

配置完成并重启kafka服务

2.最关键一步 在需要使用kafka的项目的 对应机器上 host 中添加 配置  

 我使用的机器 为小米的笔记本  在 C:\Windows\System32\drivers\etc 地址找到 host 文件 并编辑 添加     

47.98.172.225(改地址为你的服务器公网ip)    izbp12hyscnjnyd7lo0iglz(此处内容为你的服务的hostname)

添加完成 并保存 

测试 重新启动项目发送 消息 

kafka发送消息出错,提示连接超时无法发送 这次 启动终于没有dead了 

发送消息 也正常 

kafka发送消息出错,提示连接超时无法发送

图中的message!!! 是发送消息后打印的 ,后面则为 消费者 获取到的 消息  此处 正常 

问题解决完毕 大功告成