消息队列与RPC调用的区别
文章目录
前言
两个服务之间直接调用API和使用消息队列有啥区别,前篇文章只是笼统的说了几个优点,下面我会一一举例
首先看服务一直接调用服务二,这种方式有几个弊端:
1.当服务一处理速度两倍于服务二的时候,服务一每次都要等待服务二处理完才能发送下一个请求
2.当服务一请求发送之后,服务二的请求返回失败,如何进行事务回滚
3.服务二的入参结构改变,服务一需要调整
这些弊端都可以用消息队列避免
1.消息队列可以进行消息堆积,所以服务一发送的请求可以堆积在消息队列中,不必等待服务二。服务二可以增加实例,加速消费。
2.消息队列有重试机制,如果服务端的业务是幂等操作,可以多次重试
3.服务一只要发送全量日志消息,怎么消费消息是服务二的事情,所以服务二怎么调整入参影响不了服务一。