分享
消息队列
输入“/”快速插入内容
消息队列
1.
消息队列的定义
消息队列:一个存放消息的容器,当我们需要使用消息时,直接从容器中取出消息供自己使用。消息按照顺序来消费,参与消息传递的双方称为
生产者
和
消费者
,生产者负责发送消息,消费者负责处理消息
2.
消息队列的作用
主要有以下三点好处:
1.
通过异步处理提高系统性能(减少响应所需时间)
2.
削峰/限流
3.
降低系统耦合性
2.1
通过异步处理提高系统性能(减少响应所需时间)
总结
:将用户的请求数据存储到消息队列之后就立即返回结果。随后,系统再对消息进行消费。
说明
:用户请求数据写入到消息队列之后就立即返回给用户,但是请求数据在后续的业务校验、写数据库等操作中可能失败。在使用消息队列进行异步处理之后,需要适当修改业务流程进行配合,让用户在提交订单之后,订单数据写入消息队列,不能立即返回用户订单提交成功,需要在消息队列的订单消费者进程真正处理完该订单之后,甚至出库后,再通过电子邮件或短信通知用户订单成功,以免交易纠纷
2.2
削峰 / 限流
总结
:短时间高并发产生的事务消息存储在消息队列中,然后后端服务再慢慢根据自己的能力去消费这些信息,这样就避免直接把后端服务打垮掉
说明:
在电子商务一些秒杀、促销活动中,合理使用消息队列可以有效抵御促销活动刚开始大量订单涌入堆系统的冲击。
2.3
降低系统耦合性
总结
:生产者(客户端)发送消息到消息队列中去,接受者(服务端)处理消息,需要消费的系统直接去消息队列取消息进行消费即可而不需要和其他系统有耦合,这显然也提高了系统的扩展性