RocketMQ简介
官网中有很多样例,包括从GitHub拉下来的rocketmq源码也有,所以简单使用这里不再累赘。
mq带来的好处
- 解耦: 通过mq这个中介通信达到应用间的解耦。
- 异步: mq支持异步消息,在不关心消息被消费结果的场景中,适合使用异步消息。
- 削峰:在高并发系统中,接口能承受的并发量远远低于mq能承受的并发量,因此mq可以充当网络请求的缓冲池,降低服务端压力。
- 一定程度取代定时任务:在某些业务场景中,如果要监视某个状态的变化进而做相关操作。不用mq的话往往会使用定时任务去定时监视这个任务,这样白白浪费系统性能。使用mq的话,这个状态改变了就可以主动通知相关应用去做相应的操作,将被动检测自己的状态改变为主动通知的方式。
mq带来的弊端
- 主要是给业务系统增加复杂性,比如如何避免重复消费消息、消息不丢失等。
- 降低系统可用性,如果mq挂掉了,可能会导致系统相关功能不可用。
主流MQ对比
引用rocketmq官网的对比图如下