- 消息的消费
- 消费的类型
- Pull方式
- 缺点:
- 优点:
- Push方式
- 缺点
- 优点:
- 消费的模式
- 广播消费
- 集群消费
- 消费进度的保存
- 消费者从Broker中获取消息的方式有两种:Pull(拉取)方式和Push(推送)方式
- Consumer主动从Broker中获取消息,主动权在Consumer。一旦获取了批量消息,就会启动消费过程
- 实时性较弱,Broker中有了新的消息时,消费者不能及时发现并消费
- 便于应用控制消息的拉取
-
Broker 收到消息后会主动推送给Consumer,该方式获取实时性较高
-
该方式是典型的发布-订阅模式,即Consumer向其关联的Queue注册监听器,一旦发现有新的消息到来就会触发回调,回调方法时Consumer去Queue中拉去消息。这些都是基于Consumer与Broker之间的长连接。而长连接是需要消耗资源的
- 会占用较多的系统资源
- 封装了对关联Queue的遍历,实时性强
广播消费模式下,相同Consumer Group的每个Consumer实例都接收同一个Topic的全量消息。即:每条消息都会被发送到Consumer Group中的每个Consumer。
集群消费集群消费模式下,相同Consumer Group的每个Consumer实例平均分摊同一个Topic的消息。即每条消息只会被发送到Consumer Group中的某个Consumer。
消费进度的保存- 广播模式:消费进度保存在Consumer端,广播模式下consumer group中每个consumer都会消费所有消息,但它们的消费进度是不同。所以consumer各自保存各自的消费进度
- 集群模式:消费进度保存在broker中。consumer group中的所有consumer共同消费一个Topic中的消息,同一条消息只会被消费一次。消费进度会参与到消费的负载均衡中,所以消费进度需要共享。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)