环境搭建
在本地启动两个消费者进程,配置同的群组(neo1), 订阅同一个主题消费消息。
生产者和消费者代码与《Kafka应用Demo:按主题订阅消费消息》相同。
测试步骤
- 生产者发送多个数字消息到kafka队列, 可以看到只有其中一个消费者在接收并消费消息,另外一个消费者实例处于空闲状态。
- 把正在处理消息的消费者进程停掉后,另外一个消费者实例将接手处理剩余未完成的消息。
分析
从测试结果来看:启动多个相同组ID的消费者实例,可以提升系统的可靠性,当处理任务的消费者挂掉后 同组的其它消费者能接过任务继续往下处理。但是,备份实例在系统正常运行期间是空闲的,浪费了资源,这种方式没有起到负载均衡的效果。