概述
本文通过使用使用 kafka场景 展示的现象和监控数据变化,来提供大家实践中评估kafka的使用,提供一些参考数据。
一切从问题开始
我们通过发出下面的疑问开场:
- kafka中存在大量数据 ,我去把所有数据消费一遍,对性能有多大影响?;
- 大量生产者与消费者连接kafak ,对性能有多大影响?;
- kafka大量的topic ,对性能有多大影响?;
针对问题1
kafka中有7G左右的历史数据,本身数据在不停的流动中,不断的新的数据流入。现在启动三个消费程序,设置startoffset为 earlest,从历史数据的起始点开始消费,大约耗时1小时47分,显示消费到最新进入kafka的数据,如图1
我看到消费数据流量显著增加,数据流量变高,1个多小时消费完历史数据,数据事合理的流动,没有发生洪水式的崩溃。
我们再看看这段时间cpu 内存的波动:
我看到cpu波动5%,3图中蓝线事百分比,内存波动5g(实际小于,这块我不做解释)
针对问题2
大家知道kafka发布消息是到topic partion中,消费是按照groupid,多生产者和消费者的时候,记录每一个的offset,我这边粗暴的针对很多topic发送数据,多个不容的group组消费,上面的图实质上也符合这个场景,并没有发生卡断和异常。
针对问题3
上图中kafka服务有大于100个topic每个topic有3个partion,跑的很轻松。
总结
kafka的使用就是放心的用的,当有人对你说,你这消费程序不能用,会导致kafka线上服务什么什么问题,事实证明不会,大家也看到我展示的截图数据量已经非常的大了。kafka给你水流不会把自己冲垮。