MQ面试题相关总结第1季

互联网大厂面试要求

数据结构和算法软素质工程素养履历背景学历带团队管理技术广度技术深度项目经验系统设计

分析一下自己所处在的水平:

(1)自己在技术广度上做的如何?你现在主流技术栈哪些技术都有一定的了解,包括核心原理和常见技术方案

(2)自己在项目经验和生产经验上做的如何?你会的这些技术,自己在项目里到底用过多少?用的有多复杂?用的时候考虑了哪些项目细节和生产细节?

(3)技术深度,你现在对哪些技术是除了核心原理以及基础知识之外,对一些技术的底层的概念和原理有一定的了解

(4)系统设计,你目前自己独立负责过设计的系统和架构有多复杂?如果让你来独立设计秒杀系统、红包系统、12306系统,或者是一些其他大型的架构,你会如何来设计呢?

 

Spring Cloud

Eureka:服务注册中心

Feign:服务调用

Ribbon:负载均衡

Zuul/Spring Cloud Gatway:网关。灰度发布、统一熔断、统一降级、统一缓存、统一限流、统一授权认证

Hystrix:链路追踪s限流方案、熔断方案、资源隔离、降级机制

 

Dubbo

Dubboæ ¸å¿æ¶æåç

动态代理:Proxy

负载均衡:Cluster,负载均衡,故障转移

注册中心:Registry

通信协议:Protocol,filter机制,http、rmi、dubbo等协议

信息交换:Exchange,Request和Response

网络通信:Transport,netty、mina

序列化:封装好的请求如何序列化成二进制数组,通过netty/mina发送出去

 

消息队列

  • 用过消息队列么?
  • 说说你们项目里是怎么用消息队列的?
  • 为什么使用消息队列?
  • 消息队列有什么优点和缺点?
  • Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?
  • 如何保证消息队列的高可用?
  • 如何保证消息不被重复消费?如何保证消息消费时的幂等性?
  • 如何保证消息的可靠性传输,要是消息丢失了怎么办?
  • 如何保证消息的顺序性?
  • 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
  • 如果让你写一个消息队列,该如何进行架构设计,说一下你的思路?

 

为什么使用消息队列

消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么?

消息队列常见的使用场景有 3 个:解耦异步削峰

解耦

供应商商品信息变更了,供应商A系统发送数据到 商品服务B、货架服务C、活动服务D 三个系统,通过接口调用发送。

如果现在新增了一个搜索服务E也需要保存商品信息,供应商服务A就需要新增代码去调用。如果现在活动服务D不需要商品的变更信息,供应商A就需要删除调用D的代码。

在这个场景中,供应商A 系统跟其它各种业务系统严重耦合

mq-1

如果使用 MQ,供应商A 系统产生一条数据,发送到 MQ 里面去,哪个服务需要数据自己去 MQ 里面消费,哪个服务不需要这条数据就取消对 MQ 消息的消费即可。这样下来,A 系统压根儿不需要去考虑要给谁发送数据,不需要维护这个代码,也不需要考虑人家是否调用成功、失败超时等情况。

mq-2

总结:通过一个 MQ,Pub/Sub 发布订阅消息这么一个模型,A 系统就跟其它系统彻底解耦了。

异步

现在供应商通过接口修改了商品信息,A 系统接收一个请求,需要在自己本地写库&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值