一、异步的常见形态:
- 通知:
- 请求异步响应:客户端发送请求到服务端,服务端异步相应请求。客户端不会阻塞,而且被设置成默认相应不会送达;
- 消息:利用消息可以实现一对多形态的交互。客户端发布消息,可以被一个或多个感兴趣的服务项消费;客户端发布消息,等待服务发回的响应。
二、RabbitMQ的典型应用:
- 异步处理;比如用户注册之后就要发短信和加积分,注册信息写入数据库之后让短信服务和积分服务去做相应的处理,这样就能提升用户体验;
- 流量削峰:一般用在秒杀的场景,在应用前端加入消息队列,从而控制活动的人数,消息队列超过最大长度,应该直接抛弃用户请求。秒杀业务根据消息队列中的请求信息再做后续的处理;
- 日志处理:典型的是kaka
- 应用解耦:例如订单服务下单之后将商品信息写入消息队列,返回给前端下单成功或者失败的信息。商品服务通过拉或者推的方式获得下单信息,然后进行库存方面的操作。下单之后订单服务写入消息队列后就不再关心后续的操作,从而实现订单服务和商品服务的应用解耦。
三、RabbitMQ的基本使用:
- 引入依赖:
- 添加RabbitMQ的配置
-
写接收方测试类:
接收方
-
写发送方:
发送方
四、RabbitMQ消息的分组:




四、商品/订单服务中使用MQ

网友评论