2022年腾讯首发Java岗分布式面试真题,助力金三银四我是认真的
前言
分布式分为分布式缓存(Redis)、分布式锁(Redis 或 Zookeeper)、分布式服务(Dubbo 或 SpringCloud)、分布式服务协调(Zookeeper)、分布式消息队列(Kafka 、RabbitMq)、分布式 Session 、分布式事务、分布式搜索(Elasticsearch)等。不可能所有分布式内容都熟悉,一定要在某个领域有所专长。
一、分布式基础
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、高并发场景下如何实现系统限流?
限流一般需要结合容量规划和压测来进行。当外部请求接近或者达到系统的最大阈值时,触发限流,采取其他的手段进行降级,保护系统不被压垮。常见的降级策略包括延迟处理、拒绝服务、随机拒绝等。
七、消息中间件
1、消息队列的优缺点,使用场景
2、如何保证消息不被重复消费
3、Kafka、ActiveMQ、RabbitMQ、RocketMQ 对比
4、RabbitMQ架构设计
5、简述RabbitMq的交换机类型
6、rabbitmq可以直连队列么?
7、rabbitmq的持久化机制
8、RabbitMQ事务消息
9、RabbitMQ如何保证消息的可靠性传输
10、rabbitmq的死信队列、延迟队列原理
11、rabbitmq的普通集群原理
12、rabbitmq的镜像队列原理
13、kafka架构设计
14、kafka高性能高吞吐的原因
15、kafka的副本同步机制
16、Kafka消息高可靠解决方案
17、kafka的rebalance机制
18、RocketMQ 架构设计
19、RocketMQ 事务消息原理
20、RocketMQ 顺序消息原理
不论是校招还是社招都避免不了各种⾯试、笔试,如何去准备这些东⻄就显得格外重要,希望这份Java分布式面试真题可以对大家今年的金三银四面试跳槽有帮助。