RocketMQ的Consumer有两种消费模式,通过
consumer.setMessageModel(MessageModel.BROADCASTING)
和consumer.setMessageModel(MessageModel.CLUSTERING)
设置
广播模式
当使用广播消费模式时,MQ 会将每条消息推送给集群内所有订阅该topic和tag的客户端,保证消息至少被每台机器消费一次(若有多个集群都关注这个topic和tag,则每个集群的每个机器都消费一次)。
消息发送失败不会重投
消费进度由consumer维护,broker并不关心一条消息有没有消费成功
集群模式
该模式下,一条消息只要被关注该topic和tag的集群只消费一次就行(如果有多个集群(每个集群(group)里有多台机器)都关注了这个topic和tag,则每个集群都挑随机一个机器消费一次)。
消息失败会重投,但不保证重投到同一机器上
消费进度由broker维护