MQ的优点和缺点? 优点:解耦 异步,削峰 解耦: 所以需要用来解耦: 异步: 解决方法: 削峰: 解决方法是: 缺点:降低高可用性.增加系统的复杂程度.一致性问题 降低高可用的原因: 系统引入的外部依赖越多,越容易挂掉,本来你就是A系统调用BCD三个系统的接口就好了,现在又加入一个mq,万一mq挂掉了,整个系统也就崩溃了. 增加系统的复杂程度: 硬生生的增加一个MQ进来怎么保证不被重复消费?怎么保证不会出现消息丢失的情况?怎么保证消息传递的顺序性? 一致性问题: 系统A处理完以后直接返回成功了,人家都认为你这个请求成功了,但问题是,要是BCD三个系统成功了,结果C系统写库失败了,咋整?数据就不一致了. 如果发生丢消息的时候怎么解决? 同时还可以采用mq手动签到的方式,client真的接收到了消息,才签到,否则就不能签到,直接接收再签到. 怎么保证MQ不会重复发送消息? 采用的是一张表来记录消息处理的状态,在处理MQ发送的消息的时候,我先查看一下这张表,是不是处理过相同的消息.如果发送过,就不在发送. MQ重复消费的问题 1.首先产生mq重复消费的问题的原因 2.如何解决mq的重复消费问题 mq消息的顺序是怎么进行保证的? 消息被发送的时候保持顺序 消息被存储的时候保持和发送的顺序的一致 消息被消费的时候保持和存储的消息顺序一致. 1. 引入消息队列之后如何保证其高可用性? (1