消息队列思考
2018-09-02 本文已影响4人
昙花未现
消息队列主要用于消息流转,异步解耦和消息堆积。
消息流转的使用场景:
一些系统,例如微信会有很多回调事件,用户点击菜单,发送消息等都会有对应的回调事件,上游系统在接收到回调事件后,可以把这些回调事件封装成消息,发送到消息队列里,下游系统可以根据自己的需要订阅感兴趣的事件,进行消费处理。
异步解耦的使用场景:
多个系统之间非实时同步调用,调用系统的稳定性依赖于被调用系统,耦合性比较高,稳定性比较差。利用消息队列,可以实现异步解耦,调用系统把消息发送到指定队列或者topic上,被调用系统从队列或者topic中消费消息。调用系统和被调用系统之间没有直接依赖,降低了系统之间的耦合性,基于消息队列的高可用,可以保证系统之间的稳定性。
消息堆积的使用场景:
如果调用系统的流量很大,超过被调用系统,被调用系统无法及时进行处理的情况下,利用消息队列堆积消息,被调用系统慢慢消费消息。
消息队列也有不足之处,会使系统变得复杂。