面试实战题-分布式技术

|-----|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 分布式 | 分布式锁 | 1、数据库:select 的 for update 操作是基于间隙锁 gap lock 实现的,这是一种悲观锁的实现方式,所以存在阻塞问题。 2、zookeeper临时顺序节点+Watch机制,如果是最小节点,则获得锁 3、redis的setnx方法在 Redis 集群环境下,依然存在问题。由于 Redis 集群数据同步到各个节点时是异步的,如果在 Master 节点获取到锁后,在没有同步到其它节点时,Master 节点崩溃了,此时新的 Master 节点依然可以获取锁,所以多个应用服务可以同时获取到锁。 4、redLock原理:当应用服务成功获取锁的 Redis 节点超过半数(N/2+1,N 为节点数) 时,并且获取锁消耗的实际时间不超过锁的过期时间,则获取锁成功 | 分布式 | 如何设计更优的分布式锁? (多种方式) 慢谈 Redis 实现分布式锁 以及 Redisson 源码解析 (Redis实现) |
| | dubbo和zookeeper扫盲 | Zookeeper是一个分布式的服务框架,是树型的目录服务的数据存储,能做到集群管理数据 ,这里能很好的作为Dubbo服务的注册中心。 | Dubbo入门教程-CSDN博客 https://github.com/apache/dubbo-spring-boot-project (dubbo代码) |
| | 分布式事务(待优化) | ● XA 方案(强一致) 基于1PC的弱 XA (去掉 XA 的 Prepare 阶段) 基于2PC的强 XA (prepare commit/rollback )。 ● TCC 方案(本质2PC,分try confirm cancel) ● 本地消息表(严重依赖于数据库的消息表来管理事务) ● 可靠消息最终一致性方案( RocketMQ 就支持消息事务) ● 最大努力通知方案(RocketMQ 的消息重试) ● SAGA(长事务拆分为多个本地短事务,由 Saga 事务协调器协调,如果正常结束那就正常完成,如果某个步骤失败,则根据相反顺序一次调用补偿操作) | https://github.com/daydreamdev/MeetingFilm/blob/master/note/%E6%B5%85%E6%9E%90%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.md https://www.cnblogs.com/savorboard/p/distributed-system-transaction-consistency.html http://svip.iocoder.cn |
| | dubbo面试题 | Dubbo推荐使用什么序列化框架,你知道的还有哪些? 推荐使用Hessian序列化,还有Duddo、FastJson、Java自带序列化。 | http://svip.iocoder.cn |
| | dubbo调用流程 | ● Provider 第 0 步,start 启动服务。 第 1 步,register 注册服务到注册中心。 ● Consumer 第 2 步,subscribe 向注册中心订阅服务。 【异步】第 3 步,notify 当服务发生变化时,获取最新的服务列表,更新本地缓存。 ● invoke 调用 Consumer 直接发起对 Provider 的调用,无需经过注册中心。而对多个 Provider 的负载均衡,Consumer 通过 cluster 组件实现。 ● count 监控 【异步】Consumer 和 Provider 都异步通知监控中心。 | http://svip.iocoder.cn |
| | Dubbo通信协议 | Dubbo支持的通信协议:dubbo://(推荐)、rmi://、hessian://、http://、webservice://、thrift://、memcached://、redis://、rest:// | https://www.jianshu.com/p/eb4960467e00 |
| | Dubbo负载均衡策略 | 随机/加权轮询/最小活跃调用数/一致性hash | http://svip.iocoder.cn |
| | 接口如何实现幂等性 | ● 对于每个请求必须有一个唯一的标识 ● 每次处理完请求之后,必须有一个记录标识这个请求处理过了。 ● 每次接收请求需要进行判断,判断之前是否处理过。 | http://svip.iocoder.cn |
| | Dubbo服务暴露原理 | ● 本地暴露是暴露在JVM中,不需要网络通信. ● 远程暴露是将ip,端口等信息暴露给远程客户端,调用时需要网络通信. | https://www.jianshu.com/p/60a9263f2ee2 |
| | RPC框架大比拼 | 1 grpc 基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发 | 分布式RPC框架性能大比拼 |
| | CAP理论 | 对于一个分布式计算系统,不可能同时满足一致性(Consistence)、可用性(Availability)、分区容错性(Partition Tolerance)三个设计约束 | 23 | 想成为架构师,你必须掌握的CAP细节-从0开始学架构-极客时间 |
| | zipkin调用链原理 | 在接入zipkin后,一次http请求则携带了其他信息:trace信息以及时间戳,然后才由http client去真正执行GET请求,追踪器将这次请求的span信息异步发送到zipkin的收集器。此时完成了一次请求的追踪。 | 404,您访问的页面已经不存在! |
| | 注册中心对比 | Eureka是AP,Consul、Zookeeper是CP | Eureka&Zookeeper&Consul 原理与对比_eureka的 leader与follower-CSDN博客 微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比-CSDN博客 |
| | 大型网站架构演进 | 淘宝从单机到大型分布式系统的演进历程 | https://segmentfault.com/a/1190000018626163#comment-area |
| | 分布式ID | 美团数据库分布式id方案 | Leaf------美团点评分布式ID生成系统 - 美团技术团队 |
| | 集群中使用定时任务xxl-job | "GLUE模式(Java)"的执行代码托管到调度中心在线维护,相比"Bean模式任务"需要在执行器项目开发部署上线,更加简便轻量 | 分布式任务调度平台XXL-JOB |

相关推荐
ocean21031 小时前
2025-2026年AI部署与MLOps大厂面试高频问题
人工智能·面试·大模型推理·ai部署
辰烨chenye4 小时前
LeetCode Hot 100 题解 · 子串篇
算法·leetcode·职场和发展
洋不写bug7 小时前
链表面试笔试经典题目详细解析,题目多解法,复杂度分析
数据结构·链表·面试
黄敬峰9 小时前
一文搞懂结构化大模型输出:从 SSE 到 Tool Calling 的四种姿势
面试
星星落进兜里9 小时前
Redis 内存缓存,面试补充
数据库·redis·面试
蒸蒸yyyyzwd10 小时前
cpp 选手秋招学习笔记 day27
服务器·c++·面试·八股
程序员清风11 小时前
聊聊怎么缓解找工作的焦虑感?
java·后端·面试
杰克尼11 小时前
同城拼车项目面试问题_01
spring·面试·职场和发展
YonyouHRSaaS11 小时前
2026年AI招聘系统怎么选?AI面试功能怎么评估?
人工智能·面试·职场和发展·求职招聘·ai面试
写代码像蔡徐抻12 小时前
三年了,AI为何还没有抢走程序员饭碗?
前端·后端·面试