面试实战题-分布式技术

|-----|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 分布式 | 分布式锁 | 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 |

相关推荐
cheems952714 分钟前
[RabbitMQ] RabbitMQ 工作流程全解析
分布式·rabbitmq
kyriewen1 小时前
用户打开飞行模式都能打开你的网站?Service Worker 做离线缓存,PWA 实战
前端·javascript·面试
huaiixinsi1 小时前
Java 后端面试高频题整理(02)
java·开发语言·spring·面试·职场和发展·架构·maven
吃着火锅x唱着歌2 小时前
LeetCode 503.下一个更大元素II
算法·leetcode·职场和发展
敖正炀2 小时前
读写分离与数据库中间件选型
分布式
Nontee2 小时前
Java 后端面试题目全集
java·开发语言·面试
天真小巫3 小时前
2026.5.17总结
职场和发展
凯瑟琳.奥古斯特3 小时前
信号分类与特性解析
java·开发语言·职场和发展
张元清3 小时前
React 里不用 setTimeout 的计时器写法:useTimeout、useInterval、useCountDown 和 useRafFn
前端·javascript·面试
Mahir083 小时前
Redis 分布式锁与 Redisson 深度解析:从原生实现到工业级解决方案
数据库·redis·分布式·缓存·面试