背景
线上kafka 流量大,消费小于生产,如何处理?
方案
增加consumer数量
可以增加consumer的消费者,不过这个只能在一定程序上缓解,如果consumer 数量超过partition 数,那有的就会空转,解决不了问题,这种在线上直接扩容后端即可
重分配
在上面的基础上,可以把一个topic通过其它的方案,打散到多个分区,比如A topic 3个分区,通过flink 打散到新的topic 9个分区,然后扩容后的后端消费新的topic。这样可以不动老的topic ,方案灵活,效率高
增加分区数
在增加consumer这个方案的基础上,可以增加分区数,这个不建议,在线上修改。
调整consumer 参数
比如批量消费,一次多pull 几条,配置要支持动态调整
检查消费者的瓶颈
检查是不是本身消费数据有瓶颈,优化逻辑代码