本系列会系统的整理MySQL,Redis,SSM框架,算法,计网等面试常问技术栈的面试题,本文主要是整理分享了 分布式 相关的面试题,MySQL、Spring、JVM、Redis之前已经更新了,需要的同学也可以去看一下,希望对正在准备秋招的你们有所帮助!
当然个人整理的所有面试题都无偿分享,需要的同学可以私信我
一、分布式基础
- 1、集群、分布式、SOA、微服务的概念及区别
集群:不同服务器部署同一套应用服务对外提供访问,实现服务的负载均衡或者互备(热备,主从等),指同一种组件的多个实例,形成的逻辑上的整体。单个节点可以提供完整服务。集群是物理形态
分布式:服务的不同模块部署在不同的服务器上,单个节点不能提供完整服务,需要多节点协调提供服务(也可以是相同组件部署在不同节点、但节点间通过交换信息协作提供服务),分布式强调的是工作方式
SOA:面向服务的架构,一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务通常以独立的形式存在于操作系统进程中。各个服务之间通过网络调用。
微服务:在 SOA 上做的升华,微服务架构强调的一个重点是业务需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成
- 2、简述CAP理论
- 3、简述Base理论
- 4、数据一致性模型有哪些
- 5、选举算法Quorum 机制、WARO
- 6、简述paxos算法
- 7、简述raft算法
- 8、简述zab协议
- 9、负载均衡策略有哪些
- 10、分布式系统的设计目标
二、分布式事务
- 1、分布式事务有哪些解决方案
- 2、对比两阶段,三阶段有哪些改进
- 3、简述TCC事务模型
三、分布式服务
- 1、如何理解RPC
- 2、zk的初始化选举和崩溃选举过程
- 3、zk的watch机制实现原理
- 4、zk分布式锁实现原理
- 5、Zookeeper 的典型应用场景
- 6、zk的数据同步原理
- 7、zk中一个客户端修改了某个节点的数据,其他客户端能够马上获取到这个最新数据吗?
- 8、请谈谈ZooKeeper对事务性的支持
- 9、简述zk中的观察者机制
- 10、zk的会话管理机制
- 11、zk和eureka的对比
- 12、Dubbo是什么?能做什么?
- 13、简述dubbo的分层设计
- 14、能说下Dubbo的工作流程吗
- 15、dubbo服务暴露过程
- 16、dubbo服务引入过程
- 17、dubbo服务调用过程
- 18、Dubbo支持的注册中心有哪些?
- 19、dubbo集群容错策略有哪些
- 20、dubbo的SPI机制
四、分布式存储
- 1、如何实现分库分表
- 2、存储拆分后如何解决唯一主键问题
- 3、雪花算法原理
- 4、如何解决不使用分区键的查询问题
- 5、session的分布式方案
五、分布式缓存
- 1、如何避免缓存穿透、缓存击穿、缓存雪崩?
- 2、分布式系统中常用的缓存方案有哪些
- 3、如何保证数据库与缓存的一致性?
- 4、缓存过期都有哪些策略?
- 5、常见的缓存淘汰算法
- 6、布隆过滤器原理,优缺点
- 7、分布式缓存寻址算法
- 8、redis的持久化机制
- 9、Redis单线程为什么这么快
- 10、说一下你知道的redis高可用方案
- 11、redis 主从同步机制
- 12、简述Redis事务实现
- 13、简述redis数据结构
- 14、数据库实现分布式锁的问题及解决方案
- 15、redis分布式锁实现
六、分布式高可用
- 1、什么是服务降级、什么是熔断
降级是解决系统资源不足和海量业务请求之间的矛盾
在暴增的流量请求下,对一些非核心流程业务、非关键业务,进行有策略的放弃,以此来释放系统资源,保证核心业务的正常运行,尽量避免这种系统资源分配的不平衡,打破二八策略,让更多的机器资源,承载主要的业务请求。服务降级不是一个常态策略,而是应对非正常情况下的应急策略。
服务降级的结果,通常是对一些业务请求,返回一个统一的结果,可以理解为是一种 FailOver 快速失败的策略。一般通过配置中心配置开关实现开启降级熔断模式保护的是业务系统不被外部大流量或者下游系统的异常而拖垮。
- 2、高并发场景下如何实现系统限流?
限流一般需要结合容量规划和压测来进行。当外部请求接近或者达到系统的最大阈值时,触发限流,采取其他的手段进行降级,保护系统不被压垮。常见的降级策略包括延迟处理、拒绝服务、随机拒绝等。