学习重点
- 消息发送方式
- 消息启动流程
- 消息发送流程
一、消息发送方式
RocketMQ 支持三种消息发送方式:同步(sync)、异步(async)、单向(oneway)。
- 同步:发送者向 MQ 执行发送消息 API 时,同步等待,直到消息服务器返回发送结果。
- 异步:发送者向 MQ 执行发送消息 API 时,指定消息发送成功后的回掉函数,然后调用消息发送 API 后,立即返回,消息发送者线程不阻塞,直到运行结束,消息发送成功或失败的回调任务在一个新的线程中执行。
- 单向:消息发送者向 MQ 执行发送消息 API 时,直接返回,不等待消息服务器的结果,也不注册回调函数,简单地说,就是只管发,不在乎消息是否成功存储在消息服务器上。
二、消息启动流程
消息生产者的代码都在 client 模块中,相对于 RocketMQ 来说,它就是客户端,也是消息的提供者,我们在应用系统中初始化生产者的一个实例即可使用它来发消息。
生产者实现类
DefaultMQProducer 是默认的消息生产者实现类,主要用于创建topic、发送消息、查找消息。下面看一些比较关键的属性:
- sendMsgTimeout:发送消息默认超时时间, 默认 3s
- compressMsgBodyOverHowmuch:消息体超过该值则启用压缩&#