关于MQ使用的清单

关于使用消息队列的清单

消息队列,英文:MessageQueue,下面简称MQ.

这里的MQ是指分布式系统下的消息系统.

是什么MQ

MQ是一种用来进行应用间通信的组件.如下图

什么时候用RPC,什么时候用MQ

判断依据:应用A是否依赖应用B的结果.如果依赖,必须使用RPC,如果不依赖,可以使用MQ.

MQ典型使用场景

发布订阅模型

当应用A的信息被多个应用所需要的时候,我们可以通过MQ的广播特性来实现.相比于调用三次RPC,应用A与BCD没有耦合.并且响应速度也会大概率优于三次RPC.

削峰

当应用A的流量突增,而应用B没有任何限流措施的情况下,应用B可能会被打死.而进一步带崩A.

这种场景,我们可以使用MQ来进行缓冲请求,让应用B按照自己的速度处理.也可以有足够的时间进行扩容.

注意事项

  1. MQ为了保证消息必达,一般都会重复发送.所以要在应用层面考虑做幂等.
    具体做法可以根据消息内容生成全局的id.第二次遇到就不处理.

推荐阅读更多精彩内容