分布式服务
文章平均质量分 76
最常见的分布式服务面试题,带你三分钟搞懂,面试再也不虚。
喵呜刷题
来来来,我们一起组队学习!
展开
-
说说你对高可用,高吞吐,低延迟的理解
高可用(HA):直白来说就是系统不会因为某台机器,或某个实例挂了,就不能提供服务了。高可用需要做到分布式、负载均衡、自动侦查、自动切换、自动恢复等。高吞吐: 单位时间内,能传输的数据量,对应指标就是TPSTPS VS QPSTPS: Transactions Per Second,意思是每秒事务数,具体事务的定义,都是人为的,可以一个接口、多个接口、一个业务流程等等。一个事务是指事务内第一个请求发送到接收到最后一个请求的响应的过程,以此来计算使用的时间和完成的事务个数。原创 2022-08-22 10:29:49 · 975 阅读 · 0 评论 -
两阶段VS三阶段提交协议
两阶段提交协议是协调所有分布式原子事务参与者,并决定提交或取消(回滚)的分布式算法。(1)协议参与者在两阶段提交协议中,系统一般包含两类机器(或节点):一类为协调者(coordinator),通常一个系统中只有一个;另一类为事务参与者(participants,cohorts或workers),一般包含多个,在数据存储系统中可以理解为数据副本的个数。协议中假设每个节点都会记录写前日志(write-ahead log)并持久性存储,即使节点发生故障日志也不会丢失。原创 2022-08-19 10:43:20 · 2207 阅读 · 0 评论 -
你如何理解高可用性?
高可用(HA)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。服务器的可用性是指单位时间内(通常一年),服务器可以正常工作的时间比例。......原创 2022-08-15 10:20:33 · 1000 阅读 · 0 评论 -
你是如何保证服务高可用性?
对于系统的稳定性,人为因素占比最大,所以我们在这方面下工夫最多。研发流程方面尽可能把所有流程都流程化、标准化、自动化,减少人为的过多的干预。上线流程:测试(自测、CR、QA测试)、预发、灰度、小流程、全量 CheckList、上线发布策略(先单台,再批量)、上线监控策略(系统指标、业务指标监控)配置变更流程:修改线上配置的 DoubleCheck,上线审批流程、回滚流程等...原创 2022-08-08 14:14:31 · 368 阅读 · 0 评论 -
高并发系统如何保护系统?
我们一般的应对策略是缓存、降级和限流!缓存缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;本地缓存,控制单机请求量很有效,如果分布式缓存承压的情况下也可以通过本地缓存先进行过滤。分布式缓存,对于处理整体业务的高并发很有用,但是也会存在一下问题,比如:缓存穿透、缓存击穿、缓存雪崩...原创 2022-08-05 13:59:37 · 469 阅读 · 0 评论 -
说说高并发限流策略
常用限流算法计数器算法漏桶算法(Leaky Bucket)原创 2022-08-04 10:29:25 · 379 阅读 · 0 评论 -
如何保证分布式session一致性?
什么是session?服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。.........原创 2022-08-03 10:30:09 · 381 阅读 · 0 评论 -
ZooKeeper的ZAB协议?
Zab(Zookeeper Atomic Broadcast)是为ZooKeeper协设计的崩溃恢复原子广播协议,它保证zookeeper集群数据的一致性和命令的全局有序性。ZAB协议的两种基本模式:崩溃恢复模式和消息广播模式。原创 2022-07-27 10:31:27 · 211 阅读 · 0 评论 -
说说你理解的服务发现
服务注册是针对服务端的,服务启动后需要注册,分为几个部分:启动注册、定时续期、退出撤销原创 2022-07-25 10:24:23 · 114 阅读 · 0 评论 -
ZooKeeper 的应用场景?
1、统一命名服务2、配置管理……原创 2022-07-22 14:05:58 · 628 阅读 · 0 评论 -
ZooKeeper 的原理是什么?
ZooKeeper是一项集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。 ZooKeeper简单,分布式,可靠且快速。原创 2022-07-19 17:06:03 · 523 阅读 · 0 评论 -
分布式系统中的幂等性设计?
通过全局唯一ID根据业务的操作和内容生成一个全局ID,在执行操作前先根据这个全局唯一ID是否存在,来判断这个操作是否已经执行。如果不存在则把全局ID存储到redis中,继续执行业务。如果存在则表示该方法已经执行,直接返回。适合单一逻辑处理。状态机控制...原创 2022-07-18 14:04:05 · 85 阅读 · 0 评论 -
负载均衡有哪些常见策略?
轮循 Round Robin这种方法会将收到的请求循环分配到服务器集群中的每台机器,即有效服务器。如果使用这种方式,所有的标记进入虚拟服务的服务器应该有相近的资源容量 以及负载相同的应用程序。如果所有的服务器有相同或者相近的性能那么选择这种方式会使服务器负载相同。基于这个前提,轮循调度是一个简单而有效的分配请求的方式。然而对于服务器不同的情况,选择这种方式就意味着能力比较弱的服务器也会在下一轮循环中接受轮循,即使这个服务器已经不能再处理当前这个请求了。 这可能导致能力较弱的服务器超载...原创 2022-07-16 11:53:52 · 5949 阅读 · 0 评论 -
分布式系统中的接口调用如何保证顺序性?
一般来说是不用保证顺序的。但是有的时候可能确实是需要严格的顺序保证。给大家举个例子,你服务A调用服务B,先插入 -> 再删除。可能会变成先删除 -> 再插入。原创 2022-07-15 13:17:47 · 653 阅读 · 0 评论 -
说说你了解的Dubbo架构
Dubbo 的两大设计原则Dubbo 使用“微内核+插件”的设计模式。内核只负责组装插件(扩展点),Dubbo 的功能都是由插件实现的,无限开放性设计架构,也就是 Dubbo 的所有功能点都可被用户自定义扩展、增强、替换。(SPI了解)...原创 2022-07-14 17:24:08 · 146 阅读 · 0 评论 -
Dubbo 支持哪些序列化协议?
在 Dubbo 支持哪些通信协议?我们讲过不少了,这里额外补充次常用的两种。protostuffprotostuff 的使用:可以直接使用封装好的 ProtostuffIOUtil 对象调用对于方法。protostuff 的原理: bytes = ProtostuffIOUtil.toByteArray(obj, schema, BUFFER);每个消息生成一个二进制数据流,结构如下:...原创 2022-07-13 12:03:21 · 579 阅读 · 0 评论 -
Dubbo 支持哪些通信协议?
dubbo协议默认就是走dubbo协议的。hessian序列化协议,单一长连接,TCP协议传输,NIO异步通信,适合大并发小数据量的服务调用,以及消费者远大于提供者,传输数据量很小(每次请求在100kb以内),但是并发量很高。rmi协议采用JDK标准的rmi协议实现,传输参数和返回参数对象需要实现Serializable接口,使用java标准序列化机制,使用阻塞式短连接,传输数据包大小混合,消费者和提供者个数差不多,可传文件,传输协议TCP。...原创 2022-07-12 10:35:08 · 1050 阅读 · 0 评论 -
Dubbo 服务调用过程怎样?
从实现角度说:Dubbo 是RPC框架,负责Client和Service之间通讯。从编码角度说:Dubbo将服务器间的调用变得跟本地方法调用一样简单(invoke实现),让我们能不关注底层完成Client和Service之间通讯。从系统角度说:Dubbo 解决了分布式系统之间通讯的各种问题,让业务能稳定高效的实现。具体实现:Dubbo总体分为三层:业务层(Biz),RPC层,Remote层。如果把每一层细分,可以分为十层。.........原创 2022-07-11 11:25:41 · 699 阅读 · 0 评论 -
Dubbo 注册中心挂了可以继续通信吗?
可以的,启动dubbo时,消费者会从zk拉取注册的生产者的地址接口等数据,缓存在本地。每次调用时,按照本地存储的地址进行调用。具体看看架构流程中的第4步。注册中心对等集群,任意一台宕掉后,会自动切换到另一台服务提供者无状态,任一台 宕机后,不影响使用服务提供者全部宕机,服务消费者会无法使用,并无限次重连等待服务者恢复...原创 2022-07-10 10:10:56 · 1397 阅读 · 0 评论 -
分布式系统唯一ID如何生成?
如果有多个Master库,则每个Master库设置的起始数字不一样,步长一样,可以是Master的个数。比如:Master1 生成的是 1,4,7,10,Master2生成的是2,5,8,11 Master3生成的是 3,6,9,12。这样就可以有效生成集群中的唯一ID,也可以大大降低ID生成数据库操作的负载。...原创 2022-07-09 14:59:47 · 529 阅读 · 0 评论 -
说说分布式协议2PC,3PC
2PC(两阶段提交)所谓的两个阶段是指:第一阶段:准备阶段(投票阶段) 和第二阶段:提交阶段(执行阶段)。原创 2022-07-08 18:58:27 · 336 阅读 · 0 评论 -
分布式事务有哪些解决方案?
分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。分布式事务处理的关键是必须有一种方法可以知道事务在任何地方所做的所有动作,提交或回滚事务必须产生一致的结果(全部提交或全部回滚)...原创 2022-07-07 10:27:48 · 246 阅读 · 0 评论