消息中间件简介
介绍
作用
消息中间件主要用于异步,削峰,解耦这几大典型场景。
异步
对于没有强制顺序的任务,可以并行接受消息队列,并行对不同的业务逻辑进行异步处理,比如优惠卷,积分业务。
削峰
对于高并发业务,可以将请求放入消息队列中,消费方按照比较稳定的消费速度,对请求进行处理,从而起到削峰作用。
解耦
将不同的业务模块,分离出来,每个单独部署,单独维护,互相之间采用消息队列进行通信,从而起到解耦作用。
问题
系统复杂性
使用消息队列,会增加系统维护成本,不仅要维护原来的系统,还要对消息队列进行维护。
与此同时,还需要考虑对消息的正常处理,异常处理(重复消费,消息丢失,消息的顺序消费)。
数据一致性
这是分布式系统中的一个问题,在使用了消息中间件的系统中,消息发送方无法保证消费方是否正确的消费了消息,如果是异常的消费消息,就有可能造成,发送方与接收方的数据不一致。
这里就需要分布式事务来保证数据的一致性,将消费方,发送方的业务逻辑放在一个事务里面提交,一起成功,一起失败,保证数据的一致性。
可用性
MQ自己的可靠性,同样需要开发者进行维护。
相关文章