121道分布式面试题和答案

2022-06-13 09:05:17 浏览数 (1)

大家好,我是田哥。最近给大家整理了一份分布式面试题,一共有121道,后面会不断增加,争取做到全网最全的分布式面试题。大部分题目都是来自小伙伴们在面试中被问到后,反馈到我这里的。也由此可知,下一个被问到的估计就是你。

分布式事务

分布式事务相关面试题一共17道,后面不断完善。

请说说你对分布式系统 CAP 理论的理解,CAP 分别代表什么含义?

什么是二阶段提交?

什么是三阶段提交?

什么是补偿事务?

你知道哪些分布式事务解决方案?

为什么分布式系统的一致性和可用性不能同时满足?

你是如何理解数据一致性的?数据一致性有哪几种模型?

你在做系统设计时,如何选择实现强一致性还是弱一致性?

在你的项目里,是如何设计分布式事务,实现最终一致性的?

Sagas事务模型是什么?

熟悉哪些分布式锁实现方案?

分布式锁应该具备哪些条件?

哪种分布式锁实现方案更好?

你了解数据库的 binlog 和 redolog 吗?是如何实现一致性的呢?

分布式幂等性如何设计?

简单一次完整的 HTTP 请求所经历的步骤?

如何提高系统的并发能力?

分布式微服务

微服务模块一共搜集到面试题共42道,基本上已经覆盖完成,后期对这些题目做进步优化。

为什么需要 Dubbo?

Dubbo 的主要应用场景?

Dubbo 的核心功能?

Dubbo 服务注册与发现的流程?

Dubbo 的服务调用流程?

Dubbo 支持哪些协议,每种协议的应用场景、优缺点?

Dubbo 有些哪些注册中心?

Dubbo 如何实现服务治理?

Dubbo 的注册中心集群挂掉,如何正常消费?

Dubbo 集群提供了哪些负载均衡策略?

Dubbo 的集群容错方案有哪些?

Dubbo 支持哪些序列化方式?

说说一次 Dubbo 服务请求流程?

说说 Dubbo 工作原理

注册中心挂了,consumer 还能不能调用 provider?

怎么实现动态感知服务下线的呢?

服务提供者没挂,但在注册中心里看不到?

说说Dubbo的优先级配置

负载平衡的意义什么?

常见负载均衡算法有哪些?

你知道哪些限流算法?

说说什么是计数器(固定窗口)算法

说说什么是滑动窗口算法

说说什么是漏桶算法

说说什么是令牌桶算法

什么是微服务?

Spring Cloud 的核心组件有哪些?

Spring Cloud有什么优势?

什么是服务熔断?什么是服务降级?

Eureka和Zookeeper,作为注册中心,有什么区别

Spring Boot和Spring Cloud的区别?

什么是Hystrix?它如何实现容错?

说说 RPC 的实现原理

Eureka自我保护机制是什么?

什么是Ribbon?

什么是Feigin?它的优点是什么?

Ribbon和Feign的区别?

说说微服务之间是如何独立通讯的?

Spring Cloud如何实现服务的注册?

说说 Dubbo 与 Spring Cloud 的区别?

简述一下什么是Nginx,它有什么优势和功能?

Nginx是如何处理一个HTTP请求的呢?

分布式存储

共10道

当高并发系统设计时,为什么要分库分表?

用过哪些分库分表中间件?

不同的分库分表中间件都有什么优点和缺点?

如何对数据库进行垂直拆分或水平拆分?

如果要设计一个可以动态扩容缩容的分库分表方案,应该如何做?

数据库分库分表以后,如何处理设计主键生成器?

不同的主键生成方式有什么区别?

分布式ID生成有几种方案?

分库分表第三方框架有哪些?

分布式消息队列

共27道

为什么要使用消息队列?

消息队列有什么缺点?

如何保证消息队列的高可用?

如何保证消息不被重复消费?

如何保证消费的时候是幂等?

如何保证消息的可靠性传输?

传输过程出现消息丢失了怎么办?

如何保证消息的顺序性?

如何解决消息队列的延时问题?

如何解决消息队列的过期失效问题?

消息队列满了以后该怎么处理?

有几百万消息持续积压几小时,应该怎么解决?

如果让你写一个消息队列,该如何进行架构设计?

以 Kafka 为例,可以提出以下的问题:

描述一下 Kafka 的设计架构?

Kafka、ActiveMQ、RabbitMQ、RocketMQ 之间都有什么区别?

Kafka 消费端是否可能出现重复消费问题?

Kafka 为什么会分区?

Kafka 如何保证数据一致性?

Kafka 中 ISR、OSR、AR 是什么?

Kafka 在什么情况下会出现消息丢失?

Kafka 消息是采用 Pull 模式,还是 Push 模式?

Kafka 如何和 ZooKeeper 进行交互?

Kafka 是如何实现高吞吐率的?

如果是 RocketMQ,很多问题都是类似的,可以从以下的问题出发进行考察:

RocketMQ 和 ActiveMQ 有哪些区别?

为什么 RocketMQ 不会丢失消息?

RocketMQ 的事务消息都有哪些应用?

RocketMQ 是怎么保证系统高可用的?

分布式缓存

共25道

缓存雪崩、缓存穿透如何理解?

如何在业务中避免相关问题?

如何保证数据库与缓存的一致性?

如何进行缓存预热?

缓存集群如何失效?

一致性哈希有哪些应用?

缓存如何监控和优化热点 key?

Redis 有哪些数据结构?

Redis 和 Memcached 有哪些区别?

单线程的 Redis 如何实现高性能读写?

Redis 支持事务吗?

Redis 的管道如何实现?

Redis 有哪些失效策略?

Redis 的主从复制如何实现?

Redis 的 Sentinel 有哪些应用?

Redis 集群有哪几种方式?

Redis 和 memcached 什么区别?

Redis 的集群模式如何实现?

Redis 的 key 是如何寻址的?

Redis 的持久化底层如何实现?

Redis 过期策略都有哪些?

缓存与数据库不一致怎么办?

Redis 常见的性能问题和解决方案?

使用 Redis 如何实现异步队列?

Redis 如何实现延时队列?

总结

目前就整理这5大模块,后面还会继续完善。

0 人点赞