消息队列与RPC的区别

一. 区别

  1.消息队列能够积压消息,让消费者可以按照自己的节奏处理消息,但是RPC不能.

  2.消息队列是一个异步的过程(生产者发送消息之后,不会等待消息的处理),RPC是一个同步的过程.

  3.消息队列的生产者不能得知谁消费了消息,消费结果是否成功,而RPC的调用者明确知道被调用者是谁,处理结果也能获取到.

  4.由于消息队列在生产者和消费者之间还有一个queue节点,系统性能除了受自身因素影响外还受queue节点影响,而RPC没有中间节点,,系统性能只受自己的影响.

二. 适用场景

  由异同大致就能理解出两者的适用场景是什么:

  1.消息队列能够让服务器的负载不会过高,降低了并发度,所以效率受到了影响,又由于消息队列是一个异步的过程,且生产者不能得知消费者的信息,所以消息队列一般用于实时性要求不高的花费时间的操作.

  2.RPC是一个同步的过程,可能会因为突然高的并发量导致系统出问题,但是RPC具有很高的实时性,所以他一般用户需要立即返回结果的操作.

猜你喜欢

转载自www.cnblogs.com/ouhaitao/p/9261984.html
今日推荐