想使用消息队列,先考虑下这些问题!
原创:Java派(微信公众号:Java派),欢迎分享,转载请保留出处。 消息队列优势 消息队列(Message Queue,简称MQ),其主要用于在复杂的微服务系统中进行消息通信,它的优点可以大致整理成以下几点: 服务间解耦 提高服务并发、性能 突发流量削峰 ... 服务间解耦 微服务系统业务之间相互依赖,各种调用错综复杂,如果不能良好对服务进行解耦那一个服务的可用性、并发都会受到其他服务的影响。 在没有引用MQ的之前服务调用大概是这些步骤: 图上的A服务是直接调用的,这是没啥问题的,但是服务上线后要迭代更新的麻,这个时候要是服务C的开发人员有点代码小洁癖说:我这个C服务接口命名不太好,我需要重新更新下,当A服务的小哥哥还戴着小耳机听着小歌曲,突然就得改代码了~~。 后来负责服务C的那小哥哥也不好意思了,提出大家一起使用MQ吧,于是A、C的调用就变成下面这个样子了: 服务A不直接调用C而是向消息队列中发送消息(生产者),另一边的C取出队列中的消息(消费者)进行处理,这样A、C就完成了解耦。 提高服务并发、性能 举个例子,在没引入MQ之前服务调用多个服务都是同步调用,比如像这样: 服务A要顺序的调用B、C服务来完成业务逻辑如果 A->B 需要200ms, A->C 需要200ms,再加上自身业务逻辑处理可能需要花费500ms,其中有400ms是调用A和B的花费