异步调用方式其实就是基于消息通知的方式,一般包含三个角色:。
消息发送者:投递消息的人,就是原来的调用方
消息代理:管理、暂存、转发消息,你可以把它理解成微信服务器
消息接收者:接收和处理消息的人,就是原来的服务提供方
异步通讯的优势:1.解除耦合,拓展性强
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.无需等待,性能好
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3.故障隔离
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4.缓存消息,流量削峰填谷
异步调用的问题是什么?
1.不能立即得到调用结果,时效性差
2.不确定下游业务执行是否成功
3.业务安全依赖于Broker的可靠性
MQ(MessageQueue),中文是消息队列,字面来看就是存放消息的队列。也就是异步调用中的Broker.
RabbitMQ是基于Erlang语言开发的开源消息通信中间件,官网地址: https://www.rabbitma.com/