RcoketMQ 消费mq的两种方式:
pull 和 push
push:消费者注册MassageListener监听器,时刻监听从broke推过来的消息并消费。
pull:消费者自己实现取消息的逻辑,首先通过topic取出所有的MassageQueue,遍历所有的MassageQueue
,然后从每个MassageQueue中批量取出消息并记录当前队列的offset。
区别
push
实时性高,但是会增加服务的负载,如果push过快,服务端会出问题。
pull
主动权在消费者手里,可控性好。但实时性不好保证,且时间间隔不好设置,太短的话回取到空消息,浪费服务资源,太长
消息不能得到及时处理。
通常一个topic对应多个队列,默认为4(0 1 2 3),push模式下,可以指定发到同一个queue中确保顺序消费。pull模式下,
可以指定多个queue,由消费者来控制消费顺序。