如何分析数据通过中转后传输到Kafka集群的过程
如何分析数据通过中转后传输到Kafka集群的过程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
由于当前海外的数据节点较多,同时也较为分散,原本海外数据直接通过公网写入到Kafka由于当前海外的数据节点较多,同时也较为分散,原本海外数据直接通过公网写入到Kafka集群中。但是由于海外网络进行公网传递的问题,存在非常大的延迟。导致某些业务直接无法使用。例如异常告警等。
海外数据延迟问题
我们海外的节点很多,但是又非常的分散。可能某个国家仅仅有几台机器,为了实现日志分析的业务需要把海外的数据传输回国内的数据中心上来。当前的选型是通过Kafka进行传输。直接通过公网的方式把数据写入到Kafka,国内的数据中心节点对Kafka的数据进行消费。
国内的公网传输的延迟也还可以,因为我们本身对于数据的延迟性要求也不是太高。可能某些告警类的业务需要考虑延迟性。
随着告警业务的增多,对于海外数据的延迟性有了一些要求,但是在实际使用中发现,海外数据的延迟问题非常大
这里是ping的当时的状态。可以看到丢包与时延都很高,同时又进行了traceroute的跟踪,发现某些数据的写入绕着地球转了半圈再回到国内 (好想做一个数据包一秒钟环游世界)
不同的地区的延时不一样,最严重的地区丢包非常的高,时延也非常的高。
解决方案
咨询了相关的厂商,给予了三个解决方案。专线、海外计算获得结果后只传输结果、搭建中转节点。分析到最后,最终选择了中转节点的方案。
我们选择了一个网络情况较好的某个地区进行网络测试,就是从其他的各个节点中传输数据到该地区的服务器,查看网络状况,最终测试结果网络最差的地区仍然有200ms的时延,但是丢包情况已经基本不存在。而通过该中转节点到Kafka节点的时延在30ms左右。
ok,那么现在就在该节点搭建了一台服务器进行日志数据的传输。
搭建nginx进行数据中转
由于Kakfa使用的TCP协议,nginx的搭建也比较简单,直接把接收到的相关的数据直接透传到Kafka节点即可,配置如下
stream {
upstream proxy_port {
hash $remote_addr consistent;
server kafka_1:9092;
server kafka_1:9092;
server kafka_1:9092;
}
server {
listen 9000;
proxy_connect_timeout 20s;
proxy_timeout 5m;
proxy_pass proxy_port;
}
}
配置完成后,producer节点修改为写入到nginx的 9000端口,观察发现数据已经通过中转节点写入成功。
同时数据的延迟问题得到了很大的改善,当然仍然有部分节点存在写入到中转节点的时延较高,但是丢包情况基本上得到解决。当然,公网传输仍然可能出现问题。但是基本已满足要求。
跨境数据的传输需要进行相关合法性审查。
关于如何分析数据通过中转后传输到Kafka集群的过程问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注蜗牛博客行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
评论