一,服务解耦
两个高耦合的服务,通过消息中间件的使用,从而变成低耦合。
例子:订单系统需要和库存系统配合实现业务。
订单系统的业务需要使用到库存系统的服务,但是,当使用库存系统出现错误,或者库存系统某一段时间内,不可用,那么随之造成的结果是,订单系统也变成不可用了。
引入消息队列后:
订单系统把订单信息发送到消息队列里边,即可给客户反馈下单操作完成,不需要等待库存系统的响应。同样的,库存系统只需要负责从消息队里里边取出信息即可,如果在处理过程中发生错误了,只需要再通知客户即可。当客户系统不可用的时候,造成的结果也只是消息堆积,等待库存系统恢复,即可再从消息队列里获取信息,处理业务。在库存系统不可以的期间,订单系统还能继续下单往消息队列写入订单的消息,不会影响到订单系统的业务,这就是解耦合带来的好处。
二,异步通信
例子:客户注册成功之后发送短信通知
1.串行处理