消息中间键 RabbitMQ
最后更新于:2022-04-02 04:13:42
[TOC]
## 为什么使用消息队列
### 使用消息队列的好处
1. 业务系统往往要求响应能力特别强,能够起到削峰填谷的作用。
2. 解耦和高可用。如果一个系统“挂了”,则不会影响其他系统的继续运行。
3. 业务系统往往有对消息的高可靠要求,以及有对复杂功能(如ACK)的要求。
4. 增强业务系统的异步处理能力,减少甚至几乎不可能出现并发现象。
## 案例分析
### 传统做法弊端
1. 一旦业务处理时间超过了定时器时间间隔,就会导致漏单。
2. 如果采用新开线程的方式获取数据,那么由于处理大量新开线程,会容易造成
服务器宕机。
3. 数据库压力大,易并发。

### 使用消息队列
先定时从数据库获取数据,然后存入MQ消息队列,最后Job定期扫描MQ消息队列进行处理,有如下优点
1. 业务可注册、可配置。
2. 数据获取规则可配置。
3. 成功消费MQ中的消息才会被确认(ACK),提高可靠性。
4. 大大增强了异步处理业务作业的能力,假设Job扫描后先预取5条消息,然后异
步处理这5条消息,也就是说,这5条消息可能会同时被处理。

## RAbbitMQ 简介
';