3.一致性协议 2PC协议(ZooKeeper手记)

2PC和3PC来历

在分布式系统中,每一个机器节点都能明确知道,自己在进行的事务操作是否成功(可以理解为单机操作),但是却无法直接获取到其他分布式节点的操作结果。因此,当一个事务操作需要跨越多个分布式节点的时候,为了保持事务处理的ACID特性,就需要引入一个称为“协调者”的组件来统一调度所有分布式节点的执行逻辑,我们把他称作“参与者”。基于这个思想,衍生了2PC和3PC的两种协议。

1. 2PC(Two-Phase Commit)二阶段提交

  • 阶段一:提交事务请求

    • 事务询问。
      协调者向所有的参与者发送事务内容,询问是否可以执行事务提交操作,并开始等待各参与者的响应。
    • 执行事务
      各参与者执行事务操作,并将undo和redo信息记入事务日志中。
    • 各参与者向协调者反馈事务询问的响应
      如果参与者成功执行了事务操作,那么反馈给协调者Yes响应,反之反馈No响应。
  • 阶段二:执行事务提交 (阶段一反馈的结果都是Yes)
    • 发送提交请求
      协调者向所有参与者节点发出Commit请求。
    • 事务提交
      参与者接收到Commit请求后,会正式执行事务提交操作。
    • 反馈事务提交结果
      参与者在完成事务提交之后,向协调者发送ACK消息。
    • 完成事务
      协调者接受到所有参与者反馈的ACK消息后,完成事务。
  • 阶段二:中断事务 (阶段一反馈的结果有No或者有超时情况)
    • 发送回滚请求
      协调者向所有参与者节点发出RollBack请求。
    • 事务回滚
      参与者接收到RollBack请求后,利用阶段一中undo信息来执行事务回滚操作。
    • 反馈事务回滚结果
      参与者在完成事务回滚之后,向协调者发送ACK消息。
    • 中断事务
      协调者接受到所有参与者反馈的ACK消息后,完成事务中断。
  • 优点
    原理简单,实现方便。
  • 缺点
    • 同步阻塞
    • 单点问题
    • 数据不一致
    • 太过保守

原文地址:http://blog.51cto.com/12133258/2144016

时间: 2024-10-11 13:49:15

3.一致性协议 2PC协议(ZooKeeper手记)的相关文章

Zookeeper——一致性协议:Zab协议

Reference: https://www.jianshu.com/p/2bceacd60b8a 什么是Zab协议 Zab 协议的作用 Zab 协议原理 Zab 协议核心 Zab 协议内容 原子广播 崩溃恢复 如何保证数据一致性 Zab 协议如何数据同步 如何处理需要丢弃的 Proposal Zab 协议实现原理 选主过程 什么是Zab协议? Zab协议 的全称是 Zookeeper Atomic Broadcast (Zookeeper原子广播). Zookeeper 是通过 Zab 协议来

TCP/IP协议,HTTP协议

1. 协议  a. TCP/IP总体构架概述     TCP/IP协议并不全然符合OSI的七层參考模型.传统的开放式系统互连參考模型,是一种通信协议的7层抽象的參考模型,当中每一层运行某一特定任务.该模型的目的是使各种硬件在同样的层次上相互通信.这7层是:物理层.数据链路层.网路层.传输层.话路层.表示层和应用层.而TCP/IP通讯协议採用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完毕自己的需求.这4层分别为:     i.   应用层:应用程序间沟通的层,如超文本传送协议(HTTP

TCP/IP协议-IP协议

A contented mind is a perpetual feast. "知足长乐" 参考资料:TCP/IP入门经典 (第五版) TCP/IP详解 卷一:协议 一.简介 IP协议(Internet协议,网际协议),是TCP/IP协议族中最核心的协议,位于协议栈的网络层 既然位于网络层,所以IP协议最主要的功能就是 提供独立于硬件的逻辑寻址 和 支持网间数据传递的路由选择,我们将在后面的部分介绍这两个功能,下面先来分析一下IP首部 二.IP首部 我们在 TCP/IP协议-入门 中说

网络七层协议/五层协议

将网络各个层面比喻成一次深情的告白: 应用层: 规定"应用程序"的数据格式. http / ftp /email 等.   //纸条上写的是啥? 传输层: 建立"端口"到"端口"之间的通信. UDP/TCP 协议."端口". //我们帮你传纸条 网络层: 确定每一台计算机的位置,建立"主机"到"主机"之间的通信.IPv4协议,"IP地址".   // 女孩的位置 数据

可靠的传输层协议——TCP协议

TCP协议 TCP协议工作在传输层,虽然它与UDP的下一层都是IP但是它却和UDP的效果完全不同,它是一种可靠的传输层协议 一.TCP协议封装 TCP数据段头部共有20个字节,包括16位的源端口号,16位的目的端口号,端口号与前面各层中的协议类型相似,都指的是上层将要交给谁,这个端口号就是主机上一个进程所绑定的一个入口,所以通过端口号和IP就能找到唯一主机的唯一进程. 32位序号:用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节.如果将字节流看作在两个应用

swift协议_010-swift协议protocol

//: Playground - noun: a place where people can play import UIKit //-----协议-------// //协议:声明一组属性和方法,由协议的签订者来实现协议方法. //1.协议的声明 protocol WXHLProtocol { //声明一组方法 func doHomework() func dontLate() //3.Swift的协议中可以声明属性 var money : Int {set get} var classNu

HTTP 之 HTTP协议(HTTP协议概述、HTTP消息、缓存控制相关头部、Cookie相关头部)

一.HTTP 协议概述 HTTP协议历史与标准 总结:本章内容主要介绍了 HTTP协议(HTTP协议概述.HTTP消息.缓存控制相关头部.Cookie相关头部)

实验八 应用层协议Ⅱ-FTP协议分析

实验八 应用层协议Ⅱ-FTP协议分析 一.实验目的 1.掌握FTP协议的实现原理. 2.了解控制通道和数据通道. 二.实验内容 用WareShark追踪ftp连接. 1.三次握手 2.ftp服务器回发"准备就绪". 3.客户端给服务器发送用户名,服务器回发ACK,并向服务器请求密码. 4.客户端给服务器发送密码,密码为"[email protected]",服务器回发ACK并告诉客户端登录       成功. 三.实验总结 这次实验体验了FTP文件传输的过程,从三次

精通企业网络当中网红协议OSPF协议

OSPF协议 OSPF协议的工作机制类似于咱们的中国地图一样,咱们认拿着地图到达目标地点 ,路由器运行OSPF后,也会有一张类似于地图的东西,叫做LSDB(链路状态数据库)那么,路由器会利用这个LSDB(地图)去寻找到达其他路由器的最优路径(执行SPF算法).把寻找好的最优路径用笔记记录(就是放在路由表中)下来,以便于以后再去这个地方的时候,直接看下笔记上面的路径就可以了 OSPF协议的区域概念中国的首都是北京,咱们中国34个省,每一个省份都是紧紧的挨着,并且相互连接着在OSPF协议当中,有区域