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

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

相关文章
|
5月前
|
算法 Java
50道java集合面试题
50道 java 集合面试题
|
7月前
|
缓存 Java API
Java 面试实操指南与最新技术结合的实战攻略
本指南涵盖Java 17+新特性、Spring Boot 3微服务、响应式编程、容器化部署与数据缓存实操,结合代码案例解析高频面试技术点,助你掌握最新Java技术栈,提升实战能力,轻松应对Java中高级岗位面试。
548 0
|
7月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
335 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
|
5月前
|
算法 Java
50道java基础面试题
50道java基础面试题
|
7月前
|
缓存 Java 关系型数据库
Java 面试经验总结与最新 BAT 面试资料整理含核心考点的 Java 面试经验及最新 BAT 面试资料
本文汇总了Java面试经验与BAT等大厂常见面试考点,涵盖心态准备、简历优化、面试技巧及Java基础、多线程、JVM、数据库、框架等核心技术点,并附实际代码示例,助力高效备战Java面试。
253 0
|
7月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
474 0
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!

热门文章

最新文章