快速入门
# 简介
以商品订单场景为例
如果商品服务和订单服务是两个不同的微服务,在下单的过程中订单服务需要调用商品服务进行扣库存操作。按照传统的方式,下单过程要等到调用完毕之后才能返回下单成功,如果网络产生波动等原因使得商品服务扣库存延迟或者失败,会带来较差的用户体验,如果在高并发的场景下,这样的处理显然是不合适的,那怎么进行优化呢?这就需要消息队列登场了
消息队列提供一个异步通信机制,消息的发送者不必一直等待到消息被成功处理才返回,而是立即返回。消息中间件负责处理网络通信,如果网络连接不可用,消息被暂存于队列当中,当网络畅通的时候在将消息转发给相应的应用程序或者服务,前提是这些服务订阅了该队列
在商品服务和订单服务之间使用消息中间件,既可以提高并发量,又降低服务之间的耦合度
RabbitMQ是一个开源的消息代理的队列服务器,用来通过普通协议在完全不同的应用之间共享数据
# 应用场景
- 异步处理
- 把消息放入消息中间件中,等到需要的时候再去处理
- 流量削峰
- 如秒杀活动,在短时间内访问量急剧增加,使用消息队列,当消息队列满了就拒绝响应,跳转到错误页面,这样就可以使得系统不会因为超负载而崩溃
- 日志处理
- 应用解耦
# 使用docker进行安装
docker pull rabbitmq:management
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management
1
2
2
# 访问控制台
- 访问地址:http://localhost:15672/
- 用户名密码:guest/guest
- 当前版本 3.9.11
Last Updated: 2022/03/20, 10:04:55