2022年腾讯首发Java岗分布式面试真题,助力金三银四我是认真的

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 分布式分为分布式缓存(Redis)、分布式锁(Redis 或 Zookeeper)、分布式服务(Dubbo 或 SpringCloud)、分布式服务协调(Zookeeper)、分布式消息队列(Kafka 、RabbitMq)、分布式 Session 、分布式事务、分布式搜索(Elasticsearch)等。不可能所有分布式内容都熟悉,一定要在某个领域有所专长。

# 前言

分布式分为分布式缓存(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分布式面试真题可以对大家今年的金三银四面试跳槽有帮助。

相关文章
|
6月前
|
存储 缓存 NoSQL
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
redis分布式锁、redisson、可重入、主从一致性、WatchDog、Redlock红锁、zookeeper;Redis集群、主从复制,全量同步、增量同步;哨兵,分片集群,Redis为什么这么快,I/O多路复用模型——用户空间和内核空间、阻塞IO、非阻塞IO、IO多路复用,Redis网络模型
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
|
16天前
|
消息中间件 NoSQL Java
面试官必问的分布式锁面试题,你答得上来吗?
本文介绍了分布式锁的概念、实现方式及其在项目中的应用。首先通过黄金圈法则分析了分布式锁的“为什么”、“怎么做”和“做什么”。接着详细讲解了使用 Redisson 和 SpringBoot + Lettuce 实现分布式锁的具体方法,包括代码示例和锁续期机制。最后解释了 Lua 脚本的作用及其在 Redis 中的应用,强调了 Lua 保证操作原子性的重要性。文中还提及了 Redis 命令组合执行时的非原子性问题,并提供了 Lua 脚本实现分布式锁的示例。 如果你对分布式锁感兴趣或有相关需求,欢迎关注+点赞,必回关!
36 2
|
5月前
|
算法 Go
[go 面试] 雪花算法与分布式ID生成
[go 面试] 雪花算法与分布式ID生成
|
3月前
|
缓存 NoSQL Java
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
80 3
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
|
3月前
|
消息中间件 架构师 Java
阿里面试:秒杀的分布式事务, 是如何设计的?
在40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试阿里、滴滴、极兔等一线互联网企业时,遇到了许多关于分布式事务的重要面试题。为了帮助大家更好地应对这些面试题,尼恩进行了系统化的梳理,详细介绍了Seata和RocketMQ事务消息的结合,以及如何实现强弱结合型事务。文章还提供了分布式事务的标准面试答案,并推荐了《尼恩Java面试宝典PDF》等资源,帮助大家在面试中脱颖而出。
|
4月前
|
NoSQL Java Redis
面试官:项目中如何实现分布式锁?
面试官:项目中如何实现分布式锁?
109 6
面试官:项目中如何实现分布式锁?
|
3月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
64 2
|
3月前
|
缓存 NoSQL 算法
面试题:Redis如何实现分布式锁!
面试题:Redis如何实现分布式锁!
|
5月前
|
存储 NoSQL Java
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
这篇文章是关于Java面试中的分布式架构问题的笔记,包括分布式架构下的Session共享方案、RPC和RMI的理解、分布式ID生成方案、分布式锁解决方案以及分布式事务解决方案。
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
|
5月前
|
消息中间件 缓存 负载均衡
这些年背过的面试题——分布式篇
分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。