技术分享 消息队列MQ有什么缺点?

trever · 2021-04-29 19:13:02 · 热度: 48

任何技术都是一把双刃剑,在引入消息队列的同时必定也会伴随着相应的问题,正如《人月神话》中所说,没有银弹。
消息队列的引入会带来3个核心的问题:

  1. 系统可靠性降低
    在引入MQ时,MQ作为了中间层,这就使得模块与对应的MQ是紧耦合的关系。一旦MQ宕机,下游服务即使正常运行,但整个系统却无法使用。这个问题的解决方式是 MQ的高可用,使得MQ高可用,不会那么容易宕机达到5个9。
  2. 系统复杂度提高
    引入MQ,需要考虑的问题变复杂,随之而来的问题是
    1. 消息丢了怎么办
    2. 重复消费消息问题
    3. 消息的顺序问题
      这几个问题都有对应的解决方案。
  3. 处理结果的最终一致性问题
    引入MQ会导致处理结果的最终一致性问题,因为模块A与其他模块之间解耦,从而模块A不知道其他模块的处理结果
    这就导致模块A以为处理结果OK,但实际上可能模块B处理结果失败,这也是异步化所带来的最终一致性问题。

为您推荐与 消息队列 相关的帖子:

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册