资讯专栏INFORMATION COLUMN

Kafka跨网络使用问题排查

IT那活儿 / 3446人阅读
Kafka跨网络使用问题排查
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

近期在实现某个功能点上线生产环境,发现访问受限,导致采集的数据无法入到kafka,碰到此类问题,我们把分析过程记录一下。


功能流程

  • 分部:通过调度平台定期采集指标数据,执行器采集数据后,将数据外吐给总部slb。
  • 总部:利用 slb 配置代理转发到kafka ,然后由数据处理模块对kafka 数据做相关逻辑处理。


问题描述

当采集执行器采集到指标数据发送给slb ,再由slb 将数据转发到kafka ,后台提示如下报错信息:
Connection to node 0 (/21.xx.xx.7:xx) could not be established. Broker may not be available.

从错误信息提示kafka地址与端口无法调通,broker 不可用。


问题分析

针对此类问题,采用分段分析方式对问题进行排查分析:

1)网络检查从省端ping telnet 到集团端服务情况如下

  • 省端到集团端slb网络正常。

  • 省端和集团分属不同的网络,省侧到集团端kafka网络受限,kafka是集团内部服务,不直接开放给省侧访问

2)省侧采集程序排查
在省侧部署跟集团侧相同版本kafka 环境,利用Kafka 客户端命令连接集团slb进行生产消息,提示超时报错信息,通过这种验证方式,可以排出不是省侧调度程序的问题。
org.apache.kafka.common.errors.TimeoutException: Topic not present in metadata
3)集团侧链路排查
  • 验证集团侧slb到kafka 网络是相通的。
  • 集团侧部署一个新的kafka 服务,利用Kafka 客户端命令远程连接集团slb/kafka进行生产消息,kafka topic 能正常收到信息。
通过以上两个排出集团侧内部链路问题。

问题解决

从上面几点分析,可以排查出省侧与集团侧自身的链路问题,省侧程序是直接跟slb 进行通讯,但又提示连接Kafka超时报错信息,检查slb 到kafka 本身链路也没有问题,说明问题出在跨网络使用kafka 造成的原因。
第一次交互流程(1/2/3/4)客户端获取到的真实的kafka的ip信息,而第二次交互的时候client会根据kafka 的ip 信息直接去访问kafka 地址,因为跨网络受限,所以第二次交互出现连接超时报错现象。
针对跨网络使用kafka情况下,需要在kafka 开启advertised.listeners参数配置。根据此参数描述,它是用于暴露给外部的listeners,如果没有设置,会读取listeners参数内容,而listeners参数记录的是本机kafka 监听端口。
# Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured. Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
#advertised.listeners=PLAINTEXT://your.host.name:9092
当省侧客户端发送数据第一次跟slb建立连接后 ,kafka 会返回advertised.listenersr所配置的内容给客户端,后面省侧客户端会根据advertised.listenersr的值解析出对应的域名或者ip。根据这些信息,客户端再次访问到slb,由slb  转发到真实Kafka服务,才能实现链路流转正常。
advertised.listeners=PLAINTEXT://slb ip 地址:9092
因为跨网络受限,对外提供服务listeners 配置成slb ip或者域名及对应的端口,不能配置成kafka 自身的ip 与端口,才能在跨网络下通过代理转发方式给后端kafka 推送数据。



本文作者:长研架构小组(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129251.html

相关文章

  • TiDB 在摩拜单车的深度实践及应用

    摘要:本文会选择三个场景,给大家简单介绍一下在摩拜单车的使用姿势遇到的问题以及解决方案。图在线业务集群拓扑图四数据沙盒集群离线业务数据沙盒,属于离线业务集群,是摩拜单车的一个数据聚合集群。 作者介绍:吕磊,摩拜单车高级 DBA。 一、业务场景 摩拜单车 2017 年开始将 TiDB 尝试应用到实际业务当中,根据业务的不断发展,TiDB 版本快速迭代,我们将 TiDB 在摩拜单车的使用场景逐渐...

    Paul_King 评论0 收藏0
  • 网易云捕性能踩坑解决之道上篇

    摘要:从零开始设计开发一个日处理数据亿的大数据高并发实时系统,哪些性能问题需要特别注意这里我们一起梳理一下本文中我将以,同学戏称的系统网易云捕设计开发实践中两年的时间里碰到的真实问题,踩过的坑及解决问题的方法和大家一起讨论如何解决这些问题。 本文由作者余宝虹授权网易云社区发布。 从零开始设计开发一个日处理数据8亿的大数据高并发实时系统,哪些性能问题需要特别注意?这里我们一起梳理一下,本文中我...

    李义 评论0 收藏0
  • 强如 Disruptor 也发生内存溢出?

    摘要:结合的日志发现就算是发生了老年代也已经回收不了,内存已经到顶。定位由于生产上的内存文件非常大,达到了几十。也是由于我们的内存设置太大有关。同时后台也开始打印内存溢出了,这样便复现出问题。结果发现类型的对象占用了将近的内存。 showImg(https://segmentfault.com/img/remote/1460000016186784?w=2048&h=1365); 前言 Ou...

    amuqiao 评论0 收藏0
  • 腾讯云分布式高可靠消息队列CMQ架构最佳实践

    摘要:是腾讯云内部自研基于的高可靠强一致可扩展分布式消息队列,在腾讯内部包括微信手机业务红包腾讯话费充值广告订单等都有广泛使用。目前已上线腾讯云对外开放,本文对核心技术原理进行分享介绍。 ​ 极牛技术实践分享活动 极牛技术实践分享系列活动是极牛联合顶级VC、技术专家,为企业、技术人提供的一种系统的线上技术分享活动。 每期不同的技术主题,和行业专家深度探讨,专注解决技术实践难点,推动技术创新,...

    Ku_Andrew 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<