关于使用消息队列的清单
消息队列,英文:MessageQueue,下面简称MQ.
这里的MQ是指分布式系统下的消息系统.
是什么MQ
MQ是一种用来进行应用间通信的组件.如下图
什么时候用RPC,什么时候用MQ
判断依据:应用A是否依赖应用B的结果.如果依赖,必须使用RPC,如果不依赖,可以使用MQ.
MQ典型使用场景
发布订阅模型
当应用A的信息被多个应用所需要的时候,我们可以通过MQ的广播特性来实现.相比于调用三次RPC,应用A与BCD没有耦合.并且响应速度也会大概率优于三次RPC.
削峰
当应用A的流量突增,而应用B没有任何限流措施的情况下,应用B可能会被打死.而进一步带崩A.
这种场景,我们可以使用MQ来进行缓冲请求,让应用B按照自己的速度处理.也可以有足够的时间进行扩容.
注意事项
- MQ为了保证消息必达,一般都会重复发送.所以要在应用层面考虑做幂等.
具体做法可以根据消息内容生成全局的id.第二次遇到就不处理.
网友评论