卡夫卡数据中转传输的示例分析

介绍

今天就跟大家聊聊有关卡夫卡数据中转传输的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

需求起源

由于某些海外节点的数据发送到卡夫卡的上海集群会产生较高的延迟,因为公网访问的时候数据可能会进行多次中转,而导致网络延迟较高,所以增加了一个地区中转,该地区的网络情况到所有的节点的网络情况较好(厂商推荐)。

所以想把数据通过该地区做一次中转,再发送到上海。这样来看整体时延约120 ms +。所以在卡夫卡的制片人直接把主机配置为该中转节点。经过测试,发现数据能够到上海。

设想的数据流程

卡夫卡数据中转传输的示例分析

<编辑>出现异常,延迟依然很高

卡夫卡数据中转传输的示例分析

通过几天的观察,发现峰值时刻的异常依然很高,而当时地区节点之间的网络情况还不错。其他地区到中转地区节点的时延约90 ms +中转地区到上海节点的时延约30 ms +。修改了平数据包的大小,数量。发现丢包率,时延等一切都很正常.Kafka数据依然延迟。

网络原因基本排除。那么就是其他的原因。

<编辑> <强>卡夫卡压力测试

后来在某地区节点购买了一台服务器,使用,kafka-producer-perf-test进行压力测试,直接出现大量的超时。网络情况非常不好。
卡夫卡数据中转传输的示例分析“> <br/>但是平的结果还好啊…</p> <编辑> <强>查看程序日志</强> </编辑> <p>查看进程发送的日志,从日志上发现一个问题。由于我使用了nginx进行转发,所以我数据发送到nginx的端口修改成9000了,也就是制片人配置的是nginx的主持人:9000年,但是我发现我日志上出现的依然是发送至卡夫卡的端口:9092。<br/>进程没有重启?应该所有人的第一反应就是这个,所以重启进行咯…<br/>重启进程,盯日志…</p> <p>发现请求发送到nginx的9000端口. .这次应该是对了……</p> <p> <img src=

紧接着出来建立链接,kafka1:9092, kafka2:9092, kafka3:9092

一脸懵逼,重启依然是这样……盯了一下nginx服务器的网络,最近几天的带宽太低了…

查找原因

基于以上问题,基本可以判断.producer发送的数据绝对没有通过nginx。查询相关文档发现。

<标记>卡夫卡无法把数据通过nginx代理方式进行传输,而通过nginx的只有首次连接.producer节点通过nginx获取到卡夫卡的元数据信息,然后通过元数据里面的IP进行访问…

卡夫卡数据中转传输的示例分析”>也就是说实际通过nginx的方式是这样的,首次发送只是通过nginx获取到元数据的信息,元数据包含卡夫卡的代理各ip地址。然后生产商则会直接把数据发送到卡夫卡集群。</p> <p class=看完上述内容,你们对卡夫卡数据中转传输的示例分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

卡夫卡数据中转传输的示例分析