分布式 --- Dubbo和Zookeeper

  • 学习视频
  • https://www.bilibili.com/video/BV1rt4y1S7Co?p=11

Zookeeper

1,分布式概述

  • 早期我们使用单体架构,即所有服务部署在一台服务器的一个进程中,随着互联网的发展,逐步演进为分布式架构,多个服务分别部署在不同的机器的不同进程中。
  • 在这里插入图片描述

2,zookeeper概述

  • zookeeper是一个开源的分布式协调服务,提供分布式数据一致性解决方案,分布式应用程序可以实现数据发布订阅,负载均衡,命名服务,集群管理分布式锁,分布队列等功能。

3,CAP原则

  • CAP在分布式系统中主要指的是一致性(Consistency),可用性(Availability)和分区容错性(Partition tolerance)
    在这里插入图片描述

4, 一致性协议

  • 事务需要跨越多个分布式节点时,为了保证事务的ACID特性,需要选举出一个协调者来协调分布式各个节点的调度,基于这个思想衍生了多种一致性协议。
4.1 二阶段提交
  • 顾名思义,二阶段提交将事务的提交过程分为两个阶段:
    在这里插入图片描述
  • 阶段二
    在这里插入图片描述
  • 缺点
    • 阻塞:执行过程中间,节点都处于阻塞状态,等待这其他节点操作成功或失败,数据库资源得不到释放
    • 单点问题:如果协调者挂掉,那直接影响整个事务的提交。特别是在过程中挂掉,其他参与者就陷入了阻塞
    • 数据一致性:在第二个阶段中,如果某些参与者因为网络抖动,没收到提交请求,而其他参与者已经提交了事务,则数据会不一致
      原文链接:https://blog.csdn.net/weixin_42530536/article/details/113383131
4.2 三阶段提交
  • 3PC是2PC的改进版,实质是将2PC中提交的事务请求拆分成两步,形成了CanCommit,PreCommit,doCommit三个阶段的事务一致性协议。
    在这里插入图片描述
  • 阶段二和阶段三
    在这里插入图片描述
    在这里插入图片描述
  • 相对于2PC,3PC主要解决的单点故障问题,并减少阻塞,因为一旦参与者无法及时收到来自协调者的信息之后,他会默认执行commit。而不会一直持有事务资源并处于阻塞状态。但是这种机制也会导致数据一致性问题,因为,由于网络原因,协调者发送的abort响应没有及时被参与者接收到,那么参与者在等待超时之后执行了commit操作。这样就和其他接到abort命令并执行回滚的参与者之间存在数据不一致的情况。
4.3 Paxos算法
  • Paxos算法:基于消息传递且具有高度容错性的一种算法,是目前公认的解决分布式一致性问题最有效的算法。

  • 解决问题:在分布式系统中,如果产生宕机或者网络异常情况,快速的正确的在集群内部对某个数据的值达成一致,并且不管发生任何异常,都不会破坏整个系统的一致性

  • 重要概念:半数原则:少数服从多数

  • paxos中的4个角色

    • client 产生提案者
    • proposer:提案者
    • acceptor:决策者
    • learners: 学习者
      在这里插入图片描述
  • Basic Pax

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值