面试实战题-分布式技术

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

相关推荐
P.H. Infinity2 分钟前
【RabbitMQ】10-抽取MQ工具
数据库·分布式·rabbitmq
刘艳兵的学习博客2 小时前
刘艳兵-DBA033-如下那种应用场景符合Oracle ROWID存储规则?
服务器·数据库·oracle·面试·刘艳兵
Hsu_kk2 小时前
Kafka 安装教程
大数据·分布式·kafka
苍老流年2 小时前
1. kafka分布式环境搭建
分布式·kafka
sj11637394032 小时前
Kafka参数了解
数据库·分布式·kafka
Hsu_kk3 小时前
Kafka Eagle 安装教程
分布式·kafka
CodingBrother3 小时前
Kafka 与 RabbitMQ 的联系
分布式·kafka·rabbitmq
pblh1233 小时前
2023_Spark_实验十五:SparkSQL进阶操作
大数据·分布式·spark
silver98864 小时前
分布式相关杂项
分布式
jerry60910 小时前
7天用Go从零实现分布式缓存GeeCache(改进)(未完待续)
分布式·缓存·golang