消息队列的作用和整体介绍

为什么使用消息队列

解耦

​ 譬如签到送积分, 签到和送积分是两个操作. 签到产生了很重要的数据, 它可以把该消息发送到MQ. 然后积分系统需要该数据, 从MQ中直接获取即可. 这样签到系统就做到了和积分系统解耦. 不必担心积分系统挂了怎么办, 是不是需要重试等. 这些都可以在积分系统内部自己实现. 再者, 如果以后另外一套系统也需要该签到数据, 直接从MQ中获取即可, 实际上与签到系统已无关系.

异步

​ 当做到解耦后, 实际异步就是自然而然的事情. 如果签到只需要1ms, 而送积分, 或者其他操作需要500ms, 那不可能等所有操作完成之后再去返回数据给用户. 这样就做到了异步.

削峰

​ 削峰是指当并发访问高峰期, 通过MQ达到限流的目的, 从而减少对数据库MySQL的压力.

消息队列有什么优点和缺点

优点就是第一点所提到的解耦, 异步, 削峰

缺点:

  • 系统可用性降低(当然有办法保证高可用), 相对而言
  • 系统复杂度提高(这是引入新技术之后的必然结果), 因为随之而来的问题就是该技术本身的问题: 如何保证消息没有重复消费, 如何保证消息不丢失, 如何保证消息的顺序性等等
  • 数据一致性问题(也可以归为系统复杂度提高的问题), 可以解决
  • 如何保证消息的高可用
  • 消息传递路径更长, 延时会增加
  • 上游无法知道下游的执行结果(很致命)

MQ适合使用的场景

  • 数据驱动的任务依赖. 如晚上执行的定时任务, task1, task2, task3, task2依赖task1, task3依赖task2
  • 上游不关心执行结果
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值