消息中间键 RabbitMQ
最后更新于:2022-04-02 04:13:42
[TOC]
## 为什么使用消息队列
### 使用消息队列的好处
1. 业务系统往往要求响应能力特别强,能够起到削峰填谷的作用。
2. 解耦和高可用。如果一个系统“挂了”,则不会影响其他系统的继续运行。
3. 业务系统往往有对消息的高可靠要求,以及有对复杂功能(如ACK)的要求。
4. 增强业务系统的异步处理能力,减少甚至几乎不可能出现并发现象。
## 案例分析
### 传统做法弊端
1. 一旦业务处理时间超过了定时器时间间隔,就会导致漏单。
2. 如果采用新开线程的方式获取数据,那么由于处理大量新开线程,会容易造成
服务器宕机。
3. 数据库压力大,易并发。
![A3164952-D149-4A03-8C6A-343302572B13.png](http://yanxuan.nosdn.127.net/847d35a8875f03c64e38e40b505bb525.png)
### 使用消息队列
先定时从数据库获取数据,然后存入MQ消息队列,最后Job定期扫描MQ消息队列进行处理,有如下优点
1. 业务可注册、可配置。
2. 数据获取规则可配置。
3. 成功消费MQ中的消息才会被确认(ACK),提高可靠性。
4. 大大增强了异步处理业务作业的能力,假设Job扫描后先预取5条消息,然后异
步处理这5条消息,也就是说,这5条消息可能会同时被处理。
![E7C58026-0A86-4AD2-B382-DCC45DA9FD1D.png](http://yanxuan.nosdn.127.net/74e2ea33f9b2e48c698a507b06789a03.png)
## RAbbitMQ 简介
';