向sap发送message_RocketMQ篇2:发送和接收消息

本文详细介绍了RocketMQ中不同类型的消费者,如DefaultMQPushConsumer的Clustering和Broadcasting模式,强调了PushConsumer的流量控制和PullConsumer的自主控制特性。此外,还讨论了生产者类型,包括DefaultMQProducer的发送机制、延迟消息和事务支持。同时,解释了如何存储队列位置信息,并提供了自定义日志输出的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不同类型的消费者

1、DefaultMQPushConsumer

  1. 由系统控制读取操作,收到消息后自动调用传入的处理方法来处理
  2. 设置好各种参数和传入处理消息的函数。系统收到后自动调用处理函数来处理消息,自动保存Offset,并加入新的消费者之后自动做负载均衡
a9af6180f9ec057e93f98c61e67c112d.png
  1. Consumer的GroupName:用于把多个Consumer一起,提高并发处理能力,两种消费模式
    1. Clustering:顺序消费模式,同一个ConsumerGroup里的每个Consumer只消费所订阅消息的一部分内容。同一个ConsumerGroup里所有的Consumer消费的内容合起来才是订阅Topic内容的全部,达到负载均衡的目的。
    2. Broadcasting:广播模式,同一个ConsumerGroup里的每个Consumer都能消费到所订阅Topic的全部消息,就是一个消息会被多次分发,被多个Consumer消费。
  1. NameServer的地址和端口号,可以填写多个,用分号分割。
  2. Topic名称用来标识消息类型,需要提前创建。如果不需要消费某个Topic下的所有消息,可以通过指定消息的Tag进行消息过滤。

2、DefaultMQPushConsumer的处理流程

  1. Push方式优点:实时性高
  2. Push方式缺点:加大Server端 工作量,进而影响Server端性能;各个Client性能不同,处理发送过来的任务时可能出现各种潜在问题;
  3. Pull方式优点:有主动权,Client自己去拉取数据
  4. Pull方式缺点:间隔不好确定;循环拉取消息的间隔不好设定,间隔小,容易"忙等",浪费资源;间隔大,不能及时处理
  5. 通过长轮询的方式达到Push效果的方法,长轮询方式既有Pull的优点,又兼具Push方式的实时性。设置brokerSuspendMaxTimeMillis,设置Broker最长阻塞时间,默认设置15s。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值