分布式面试题

本文深入探讨了分布式系统的基础概念,包括集群、分布式、SOA和微服务的区别。详细阐述了CAP理论,解释了数据一致性、服务可用性和分区容错性之间的权衡,并分析了为何系统不能同时满足CAP的三个属性。此外,文章还介绍了Base理论,以及数据一致性模型如强一致性、弱一致性与最终一致性。最后,文中提到了Paxos和Raft等分布式一致性算法,讨论了选举机制和日志同步策略,帮助理解分布式环境中的数据一致性问题。
摘要由CSDN通过智能技术生成

集群、分布式、SOA、微服务的概念及区别

集群:不同服务器部署同一套应用服务对外提供访问,实现服务的负载均衡或者互备(热备,主从等), 指同一种组件的多个实例,形成的逻辑上的整体。单个节点可以提供完整服务。集群是物理形态

分布式:服务的不同模块部署在不同的服务器上,单个节点不能提供完整服务,需要多节点协调提供服 务(也可以是相同组件部署在不同节点、但节点间通过交换信息协作提供服务),分布式强调的是工作方 式

SOA:面向服务的架构,一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的 功能。一个服务通常以独立的形式存在于操作系统进程中。各个服务之间通过网络调用。

中心化实现:ESB(企业服务总线),各服务通过ESB进行交互,解决异构系统之间的连通性,通过 协议转换、消息解析、消息路由把服务提供者的数据传送到服务消费者。很重,有一定的逻辑,可 以解决一些公用逻辑的问题。

去中心化实现:微服务

微服务:在 SOA 上做的升华,微服务架构强调的一个重点是业务需要彻底的组件化和服务化,原有的 单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和 集成

服务单一职责

轻量级通信:去掉ESB总线,采用restapi通信

简述CAP理论

数据一致性(consistency):如果系统对一个写操作返回成功,那么之后的读请求都必须读到这个新 数据;如果返回失败,那么所有读操作都不能读到这个数据,对调用者而言数据具有强一致性 (strong consistency)

服务可用性(availability):所有读写请求在一定时间内得到响应,可终止、不会一直等待

分区容错性(partition-tolerance):在网络分区的情况下,被分隔的节点仍能正常对外服务

如果选择了 CA 而放弃了 P,那么当发生分区现象时,为了保证 C,系统需要禁止写入,当有写入请求 时,系统返回 error(例如,当前系统不允许写入),这又和 A 冲突了,因为 A 要求返回 no error 和 no timeout。因此,分布式系统理论上不可能选择 CA 架构,只能选择 CP 或者 AP 架构。

反证:

如果 CAP 三者可同时满足,由于允许 P 的存在,则一定存在节点之间的丢包,如此则不能保证 C

因为允许分区容错,写操作可能在节点 1 上成功,在节点 2 上失败,这时候对于 Client 1 (读取节点1) 和 Client 2(读取节点2),就会读取到不一致的值,出现不一致的情况。如果要保持一致性,写操作必须 同时失败, 也就是降低系统的可用性。

简述Base理论

cap理论的一种妥协,由于cap只能二取其一,base理论降低了发生分区容错时对可用性和一致性的要 求

1、基本可用:允许可用性降低(可能响应延长、可能服务降级),

2、软状态:指允许系统中的数据存在中间状态,并认为该中间状态不会影响系统整体可用性。

3、最终一致性:节点数据同步可以存在时延),但在一定的期限后必须达成数据的一致,状态变为最 终状态

数据一致性模型有哪些

强一致性:当更新操作完成之后,任何多个后续进程的访问都会返回最新的更新过的值,这种是对用户 最友好的,就是用户上一次写什么,下一次就保证能读到什么。根据 CAP 理论,这种实现需要牺牲可 用性。

弱一致性:系统在数据写入成功之后,不承诺立即可以

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值