zookeeper(1)—— 分布式系统简介

目录

一、分布式系统

1.1 什么是分布式系统?

1.2 分布式系统特点

1.3 分布式系统带来的问题

1.4 分布式系统理论

1.5 分布式算法


一、分布式系统

1.1 什么是分布式系统?

        在传统项目中,通常是将一个项目打成war包,部署在tomcat中运行。当项目越来越大时,这种方式就不太适用了。此时,会将项目分解成不同的服务,这些服务部署在不同的计算机上,彼此之间通过网络相互协调工作。总之,一个硬件或软件组织分布在不同的网络计算机上,彼此之间通过消息传递进行通信和协调的系统即为分布式系统

1.2 分布式系统特点

分布性:整个项目在空间上是任意的

对等性:在分布式系统中,每个微服务都可能出现问题,这时就需要两个或以上完全相同的微服务,在一个出现问题时能够替换,保证系统能够正常运行

并发性:比多线程并发更高一个层次,从多进程,多JVM的角度,保证并发安全

缺乏全局时钟:由于分布式系统可以部署多个节点,每个节点都有自己的时钟系统

故障随时发生:由于分布,任何一个节点都可能出现问题,节点越多,出现故障的概率越大

1.3 分布式系统带来的问题

1、网络异常

分布式系统之间通过网络互相交互,而网络是不稳定的

2、网络分区

也称为脑裂,在一个系统中,本来应该有一个指挥官,但是由于网络故障等原因,导致部分区域又出现一个指挥官,二者互相冲突

3、三态

正常调用服务,要么成功,要么失败。当出现异常时,非常可能出现超时现象,此时,发起方并不知道请求是否成功或者失败

4、节点故障

分布式系统的某些节点可能会出现宕机或者“假死”现象

1.4 分布式系统理论

既然分布式系统有那么多问题,那么应该如何解决这些问题?依靠什么理论依据呢?

1、CAP理论

一致性C、可用性A、分区容错性P

一致性:和对等性差不多,在分布式系统中,数据在多个副本之间是否能够保证一致

可用性:系统提供服务必须一直处于可用状态,对于用户的请求总是在有限的时间内返回结果

分区容错性:分布式系统在遇到任何网络分区故障的时候,仍然需要能够对外提供满足一致性和可用性的服务,不能出现脑裂的情况,除非整个网络环境都发生故障

主要在A和C中间寻求平衡

2、Base理论

即使无法做到强一致性,但分布式系统可以根据自己的业务特点,采用适当的方式使系统达到最终的一致性

基本可用:当分布式系统出现不可预见的故障时,允许损失部分可用性,保证系统的基本可用。eg双十一期间部分用户淘宝页面的卡顿或降级

软状态:运行系统中的数据存在中间状态,即系统的不同节点的数据副本之间的同步存在延时,并认为这种延时不会影响系统的可用性。eg、12306购票,请求会进入排队队列

最终一致性:所有数据在经过一段时间的数据同步后,最终会达到一致

1.5 分布式算法

2pc、3pc、paxos、zab算法

1.5.1  2pc

也称之为两阶段提交

第一阶段:执行事务,记录日志等

第二阶段:提交事务

一旦发现任何一个资源在第一阶段没有成功,则发送rollback

优点:原理简单,实现简单

缺点:

同步阻塞:在二阶段提交的过程,所有节点都在等待其他节点的响应,无法进行其他操作。这种同步阻塞极大的限制了分布式系统的性能。

单点问题:协调者在整个过程中很重要,一旦其出现问题,整个流程无法运转。并且,其他参与者将会处于一直锁定事务资源的状态,而无法继续完成事务操作。

数据不一致:当协调者向所有参与者发送commit请求之后,发生局部网络异常,或者协调者在尚未发送完所有的commit之前自身出现问题,导致最终只有部分参与者收到commit请求,这就会导致严重的数据不一致问题。

容错性不好:任意一个节点的失败都会导致整个事务的失败。

1.5.2 3pc

第一阶段:确认所有资源都是正常的

第二阶段:执行事务,写日志

第三阶段:commit(与2PC区别:在一段时间后资源默认commit)

优点:减少了单点故障概率,万一协调者出现问题,事务也会提交

缺点:还是存在这些问题,只是减少概率的出现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值