
回复
要了解MQ的必要性,需要先了解一下微服务的产生与出现的问题。只有了解了问题产生的原因才能明白MQ的作用。
举个栗子:支付业务
在微服务的环境下,会将三个步骤拆分成三个服务,例如:支付服务,订单服务,物流服务。三者顾名思义只做好自己的一件事情。
情况会变复杂,同样以支付业务为例,三个步骤需要有服务间的调用,如下图,有两次调用产生,服务间调用一般有两种方式:restful 的http与RPC。这里不讨论两者的区别。
微服务化的好处:化整为零,单一服务制作单一的事情,可以防止单服务无线膨胀。无论从开发,测试,运维方面单个服务都是占优势的。
微服务带来的问题:
MQ作为解决分布式事务的一种,是如何解决分布式事务问题的,如下图,支付服务完成支付步骤后,往MQ发送一条已支付消息,订单服务收到消息后更改订单状态。