消息队列主要应用的业务场景:解耦、错峰和流控、广播、最终一致性。
消息队列(MQ)是一种能实现生产者到消费者单向通信的通信模型,一般来说是指实现这个模型的中间件。
比如下面的场景 A–>B,A请求端、B是后端处理端,如果没有消息队列,A的每一次操作都要同时触发B端,意味着A的直接对接者是B,对于大流量的场景这样会对接口造成很大的压力。 A–>[队列]–>B/C/D……,A间接服务于B,B何时处理A的请求就由B自身来决定了。而且接入者可以是C/D等。
RPC和MQ的区别?
RPC(Remote Procedure Call)远程过程调用,主要解决远程通信间的问题,不需要了解底层网络的通信机制。
如阿里的dubbo。
区别:对于实时性高的场景优先考虑RPC,对于流量控制、解耦等优先考虑MQ。