背景
我司使用的是亚马逊厂商的云服务,厂商的消息队列产品我们并没有用,我们选择自建,自建的好处是更灵活,定制性更广。公司内部有多套Kafka集群,100+broker节点,针对kafka我司也有比较完善的自动化运维管理体系,最近出现过一次业务连接kafka集群频繁超时的情况,在这里记录下处理过程,加深对网络知识的理解。
问题现象
业务收到服务可用性下降报警,分析日志发现是连接亚马逊kafka集群有频繁超时,超时日志如下:
基本分析
定位
网络问题从表面看不到细节,只能通过抓包分析,同时抓取了客户端和服务端的数据包,抓包命令如下:
# 客户端(抓所有和kafka节点通信的网络数据包)nohup tcpdumpport 9092 -w kafka.pcap &# 服务端(抓所有和客户端主机通信的数据包)nohup tcpdump host 10.66.67.166 -s0 -w 10.66.67.166.pcap &
说明: 开启抓包后,在客户端主机过滤超时日志,出现超时后即可停止抓包操作。
数据包分析
丢包问题分析
刨根问底
其他亚马逊业务网卡mtu配置配置也是9001,为啥没问题?
联系厂商确认跨账户网络链路。
解放方案
# 临时生效ip link set dev eth0 mtu 1500永久生效vim/etc/sysconfig/network-scripts/ifcfg-eth0增加如下内容MTU="9000"# service network restart
本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载者并注明出处:https://www.jmbhsh.com/wanjumoxing/36028.html