场景是使用kafka来收集前端请求数据,后端启动golang写的消费者来消费数据并计算。
目前发现单台消费者占用CPU过高,想部署多台。但是多台机器会导致启动多个消费者加入了同一个消费者组。
那么kafka有没有内部机制来平衡多个机器加入同一个消费者组的消息分配呢?
就是说,要保证两台机器启动起来的消费者均衡,而不是第一台加入消费者组的消费者太多。
场景是使用kafka来收集前端请求数据,后端启动golang写的消费者来消费数据并计算。
目前发现单台消费者占用CPU过高,想部署多台。但是多台机器会导致启动多个消费者加入了同一个消费者组。
那么kafka有没有内部机制来平衡多个机器加入同一个消费者组的消息分配呢?
就是说,要保证两台机器启动起来的消费者均衡,而不是第一台加入消费者组的消费者太多。
7 回答5.6k 阅读
6 回答7.1k 阅读✓ 已解决
8 回答6.5k 阅读
4 回答703 阅读✓ 已解决
2 回答3.4k 阅读
4 回答2.6k 阅读
3 回答1.9k 阅读✓ 已解决
每个分区只能被同一个消费组里面的一个消费者实例占用,所以你可以增加分区,然后用一致性hash的方式保证每个分区中的消息数量均衡