面试实战题-分布式技术

分布式

分布式锁

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

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值