阿里面试:说说你项目里使用的 MQ ,分布式系统中 MQ 作用?
开篇思考 MQ 为什么在系统中使用?一定要在分布式系统中使用吗? MQ 有哪些中间件?他们有哪些特点? MQ 给系统带来好处的同时有没有带来什么问题?如何解决? 在阿里的面试中,面试官问到关于 MQ 的几个问题: 你的项目中 MQ 的作用? 为什么选择这款 MQ 作为消息中间件? 重复消费怎么办? 如何确保消息被消费? 有遇到其他问题吗?那么接下来带着问题先思考下,有好的想法可以在评论区留言,大家一起分享。 消息中间件在系统中的使用 我之前写过一篇关于 rocketMQ 实现分布式锁的文章,主要介绍如何使用 RocketMQ 实现分布式锁,《Springcloud + RocketMQ 解决分布式事务》 但是这个功能并不是 MQ 基本功能,也不是所有 MQ 都有的功能。 MQ 在系统中到底有哪些作用呢?抛开基本的消息发布订阅不说,还有以下几点: 分布式系统解耦 不需要立即返回的业务异步处理 削峰填谷,不直接访问服务,缓解服务压力,增加性能 日志记录 分布式系统解耦 在分布式系统中,要么是通过 rest 调用,要么是通过 dubbo 等 RPC 调用,但是有些场景需要解耦设计,不能直接调...
