SpringCloud微服务学习笔记(三)_RabbitMQ
文章目录
- RabbitMQ
- 同步调用的优缺点(所有服务同时处理)
- 异步调用的优缺点(服务异步处理)
RabbitMQ
- 同步通讯
在同步通信中,发送方发出请求后,会等待接收方处理完成并返回结果后再继续执行。也就是说,发送方在收到响应之前会被“阻塞”。
比如支付操作 - 异步通信
在异步通信中,发送方发出请求后,不需要等待接收方处理完成,而是立即返回并继续执行后续操作。接收方在处理完成后,会通过回调或事件通知发送方结果。
比如短信发消息
同步调用和异步调用的概念还是有差异的,通讯面向用户,调用面向服务器
同步调用的优缺点(所有服务同时处理)
消息提供者–>消息消费者,消息传完就没了
- 优点
时效性强,等待到结果后才返回 - 缺点
拓展性差
性能下降
级联失败问题
异步调用的优缺点(服务异步处理)
消息提供者–>消息代理–>消息消费者
- 优点
耦合度低,拓展性强
异步调用,无需等待,性能好
故障隔离,下游服务故障不影响上游业务
缓存消息,流量削峰填谷 - 缺点
不能立刻得到调用结果,时效性差
不确定下游业务执行是否成功
业务安全依赖于Broker(消息队列中间件)的可靠性