1.消息队列可以积压消息,让消费者能够按照本身的节奏处理消息,可是RPC不能.服务器
2.消息队列是一个异步的过程(生产者发送消息以后,不会等待消息的处理),RPC是一个同步的过程.并发
3.消息队列的生产者不能得知谁消费了消息,消费结果是否成功,而RPC的调用者明确知道被调用者是谁,处理结果也能获取到.异步
4.因为消息队列在生产者和消费者之间还有一个queue节点,系统性能除了受自身因素影响外还受queue节点影响,而RPC没有中间节点,,系统性能只受本身的影响.性能
由异同大体就能理解出二者的适用场景是什么:队列
1.消息队列可以让服务器的负载不会太高,下降了并发度,因此效率受到了影响,又因为消息队列是一个异步的过程,且生产者不能得知消费者的信息,因此消息队列通常用于实时性要求不高的花费时间的操做.同步
2.RPC是一个同步的过程,可能会由于忽然高的并发量致使系统出问题,可是RPC具备很高的实时性,因此他通常用户须要当即返回结果的操做.消息队列