【Kafka】binlog kafka并行消费提升小窍门

 

 

线上库存Process实例配置详情:

 

 
背景:

1.业务是通过监听 上游mysql binlog完成的
2.binlog是通过 DDH kafka下发的
3.consumer消费 已经做到了  7ms的单条消息消费性能优化
4.怎样还能再提醒  消费方的消费速率呢?
5.当先consumer实例  蓝绿组共12个实例   2C2G (CPU2核,内存2G)
6.当前consumer 分区Partition 仅有6个

 




优化:

1.找DBA 调整binlog DDH生产策略,用shop+rf_id 或 shop+sku 做Hash分区数,尽可能保证 各分区生产消息均衡
2.consumer 线程数调整为 2(根据机器实际核心数2 做出调整  num.consumers)
3.binlog topic申请 分区数调整为24(蓝绿组共 12台机器,每个2核2G,consumer多线程调整为2, 则同时支持最多24个分区同时消费)
(一个分区同时只能被一个线程消费,而不是一个实例)
(一般设置线程数 要大于等于 分区数,这样可以保证所有分区在同一时间都可被消费,最好是线程数=分区数,匹配妥当,确保性能最佳且避免资源浪费)
4.consumer 单次可拉取消息大小 调整为max.partition.fetch.bytes=5M(默认1M,  单次取大,降低拉取消息次数,降低IO消耗)

 

posted @ 2024-09-02 17:20  Angel挤一挤  阅读(31)  评论(0编辑  收藏  举报