当前位置: 首页 > news >正文

网站建设总结体会wordpress修改首页

网站建设总结体会,wordpress修改首页,新产品线上推广方案,近期十大新闻热点事件数据库浅谈之共识算法 HELLO#xff0c;各位博友好#xff0c;我是阿呆 #x1f648;#x1f648;#x1f648; 这里是数据库浅谈系列#xff0c;收录在专栏 DATABASE 中 #x1f61c;#x1f61c;#x1f61c; 本系列阿呆将记录一些数据库领域相关的知识 #x1…数据库浅谈之共识算法 HELLO各位博友好我是阿呆 这里是数据库浅谈系列收录在专栏 DATABASE 中 本系列阿呆将记录一些数据库领域相关的知识 OK兄弟们废话不多直接开冲 一 概述 CAP 理论 在一个分布式系统中 Consistency一致性、 Availability可用性、Partition tolerance分区容错性三者不可得兼 一致性C所有数据备份同一时刻是否同样所有节点访问同一份最新数据副本 可用性A保证每个请求不管成功或者失败都有响应 分区容忍性P系统中任意信息的丢失不会影响系统继续运作 共识算法背景 问题 ① 有一份随时变动的数据确保它正确存储在网络中几台不同机器上怎么处理 在分布式系统中必须考虑动态数据如何在不可靠网络通讯条件下依然能在各节点之间正确复制 数据同步 状态转移(State Transfer) 性能损耗 每当数据有变化就把变化情况在各个节点之间的复制看成是一种事务性的操作只有系统的每一台机器都反馈成功完成磁盘写入后数据变化才能宣布成功。以同步为代表的数据复制方法叫做状态转移State Transfer 这类方法属于比较直观但通常要牺牲可用性 问题 ② 有一份随时变动的数据确保它正确存储在几台不同机器上且尽可能保证数据随时可用怎么做 共识算法 这个让系统各节点不受局部网络分区、机器崩溃、执行性能或者其它因素影响能最终表现出整体一致的过程就是各个节点的协商共识Consensus 两个目标 : ① 让分布式系统内部暂时容忍存在不同状态但最终保证大多数节点状态一致 ② 分布式系统在外部看来始终表现整体一致 共识Consensus与一致性Consistency的区别 一致性指的是数据不同副本之间的差异而共识是指达成一致性的方法与过程 状态机 操作转移 系统 高可用 和 高可靠 之间的矛盾是由于增加机器数量反而降低了可用性导致的 为缓解这个矛盾在分布式系统里主流的数据复制方法是以操作转移为基础的比如 ( x x 1 ) 使用确定操作使状态间产生确定转移结果的计算模型被称为状态机 状态机的特性任何初始状态一样的状态机如果执行命令序列一样那么最终达到状态也一样。多台机器的最终状态一致只要确保它们的初始状态和接收到的操作指令都是完全一致的就可以 广播指令与指令执行期间允许系统内部状态存在不一致的情况也就是不要求所有节点的每一条指令都是同时开始、同步完成的只要求在此期间的内部状态不能被外部观察到且当操作指令序列执行完成的时候所有节点的最终的状态是一致的这种模型就是状态机复制 Quorum 机制 在分布式环境下考虑到网络分区现象不可能消除且不必追求所有节点任何情况下数据状态一致所以采用 少数服从多数 原则。即系统中超过半数节点完成状态转换就认为数据变化已被正确地存储在了系统中。 容忍少数通常是不超过半数节点失联使增加机器数量可提升系统整体可用性 分布式共识基础 分布式共识是什么 在多个节点均可独自操作或记录的情况下使得所有节点针对某个状态达成一致的过程本质是 求同存异 一致性和共识的区别是什么 一致性指的是数据不同副本之间的差异而共识是指达成一致性的方法与过程 分布式共识的两个关键点是什么 1、获得记账权 2、所有节点达成一致 二 核心 Paxos 算法 要求 ① 为了有明确的多数决策节点数量应被设为奇数 ② 系统初始化时网络中每个节点都知道整个网络所有决策节点的数量、地址等信息 主要概念 提案节点Proposer提出对某个值设置节点设置值这个行为就是提案 (Proposal) 值一旦设置成功不会丢失也不可改变 决策节点Acceptor应答提案节点决定该提案是否可以被投票、是否可以被接受 提案一旦得到半数决策节点接受即被批准(Accept)。该值将不能更改也不会丢失且最终所有节点都会接受它 记录节点Learner不参与提案也不参与决策单纯从提案、决策节点中学习已达成共识的提案。少数节点刚从网络分区中恢复时将会进入这种状态 分布式并发操作下的共享数据 假设有一个变量 i 当前在系统中存储的数值为 2同时有外部请求 A、B 分别对系统发送操作指令把 i 的值加 1 和 把 i 的值乘 3。没有并发控制将可能得到 (21)×39 和 2×317 这两种结果。因此对同一个变量的并发修改必须先加锁后操作不能让 A、B 的请求被交替处理 但是在分布式系统中通讯故障可能在任何时刻出现。如果一个节点在取得锁后、在释放锁前发生崩溃失联就会导致整个操作被无限期等待所阻塞 解决方案 主要包括 准备Prepare和 批准Accept两个阶段 准备Prepare阶段相当于抢锁过程。如果发起提案那必须先向所有决策节点广播一个申请 ( 称为 Prepare请求 ) 。提案节点的 Prepare 请求中会携带一个全局唯一的数字 N 作为提案 ID决策节点收到后会给出两个承诺和一个应答 两个承诺 ① 不会再接受提案 ID 小于或等于 N 的 Prepare 请求 ② 不会再接受提案 ID 小于 N 的 Accept 请求 一个应答 不违背以前承诺前提下回复已经批准过提案中 ID 最大的那个提案所设定的值和提案 ID。如果该值没有被任何提案设定过则返回空值。如果违反此前承诺即收到的提案 ID 不是最大的可直接不理会请求 批准Accept 当提案节点收到了多数派决策节点应答后开始第二阶段 批准 过程 此时有两种可能 ① 如果提案节点发现所有响应的决策节点此前都没有批准过这个值即为空就说明它是第一个设置值的节点那就可以随意决定要设置的值并将自己选定的值与提案 ID。构成一个二元组ID,VALUE再次广播给全部决策节点 ② 如果提案节点发现响应的决策节点中已经有至少一个节点的应答中包含有值了那就必须从应答中找到提案ID 最大的那个值并接受构成一个二元组ID,maxAcceptValue然后再次广播给全部的决策节点 每个决策节点收到 Accept 请求时都会在不违背以前承诺前提下接受并持久化当前提案 ID 和携带数值。但如果收到的提案 ID 并不是收到过的最大的那对 Accept 请求将不理会 记录节点 当提案节点收到了多数派决策节点的应答后协商结束共识决议形成将决议发送给所有记录节点进行学习 Basic Paxos 协商过程-时序图 典型场景 背景假设一个分布式系统中有五个节点S1、S2、S3、S4、S5此时有两个并发的请求希望将同一个值分别设置为 X 和 YP 表示准备阶段A 表示批准阶段 场景一 在协商过程中谁先获得了多数节点支持先在Promise中返回决议值谁就是本次决议的最终值在协商结束之前无论有多少次新的提案都不在进行处理 S1 选定的提案 ID 是 3.1全局唯一 ID 3 加上节点标号 1先取得了多数派决策节点的 Promise 和 Accept 应答此时 S5 的提案 ID 是 4.5发起 Prepare 请求收到的多数派应答中至少会包含一个此前应答过 S1 的决策接节点假设是 S3 那么 S3 提供的 Premise 中必定将 S1 已经决议好的值 XS5 就必须无条件的使用 X 而不是 Y 作为自己的提案值。即使S5的提案ID更大但是已经有了Accept 场景二X 被选定不一定是要多数派共同批准只取决于 S5 提案时 Promise 应答中是否已经包含了批准过 X 决策节点如下图S5 发起提案 Prepars 请求时X 并未获取多数派批准但由于 S3 已经批准的原因最终共识的结果依然是 X 场景三S5 在提案的时候 Promise 应答中并没有包含批准过 X 的决策节点。比如应答 S5 提案时节点 S1已经批准了 X节点 S2、S3 并未批准但是返回了 Promise 应答那此时 S5 以更大的提案 ID 获得了 S3、S4、S5 的Promise 这三个节点均为批准过任何值那么 S3 将不会再接受来自 S1 的 Accept 请求因为它的提案 ID 已经不是最大的。所以这三个节点将批准Y的取值整个系统将会对取值为Y达成一致 场景四如果两个提案节点交替使用最大的提案ID使得准备阶段成功但是批准阶段失败的话那这个过程理论上可以无限延续下去形成活锁Live Lock实际算法中会引入随机超时时间来避免活锁产生 Multi Paxos (Raft) 活锁问题 两个提案节点互不相让提出自己的提案抢占同一个值修改权限导致整个系统再持续的反复横跳从外部来看就像是被锁住了 活锁问题和许多 BasicPaxos 异常场景中 (网络不可靠、请求并发) 所遇到的麻烦源于任何一个提案节点能完全平等的与其他节点并发的提出提案而带来的问题MultiPaxos 对 BasicPaxos 核心改进是选择 选主 提案节点通过心跳确定当前网络中所有节点里是否存在一个主提案节点 一旦发现没有主节点节点就会在心跳超时后 ( 不存在主节点 ) 使用 BasicPaxos 中定义的准备、批准的两轮网络过程向所有其他节点广播自己 竞选主节点的请求希望整个分布式系统对 由我做主节点 协商达成一致共识 如果得到了决策结点中多数派的批准便宣告竞选成功 选主完成后只有主节点本身才能提出提案。此时无论是哪个提案节点接收到客户端的请求操作都会将请求转发给主节点完成提案而主节点提案无需经过准备过程因为经过选举时那次准备后后续提案都是对相同提案 ID 的一连串批准过程 可以理解为 选主后不会有其它节点与主节点竞争相当于处于无并发环境的有序操作所以此时系统中要对某个值达成一致只进行一次批准交互即可 注 主提案节点竞选类似于 BasicPaxos 过程 任期和分区 原本idvalue二元组变成了三元组idivalue给主节点增加一个 单调递增 的任期编号应对主节点陷入网络分区后重新恢复但系统已完成了重新选主过程此时必须以任期编号大的节点为准 我们假设网络恢复正常如下图 网络分区 raft 算法 对于 双主问题 解决方案 从整体来看当节点有了选主机制后可以进一步简化为 主节点Leader和从节点(Follower)不必区分提案节点、决策节点和记录节点了 结点状态与竞选 leader 每个节点有三种状态followercandidateleader状态之间是互相转换的 主节点主节点负责与客户端通讯给follower发心跳同步日志与提交命令给 从节点 从节点每一个有一个倒计时器时间随机倒计时结束后自动转换成 candidate结点初始状态都是 follower candidate 向其它结点发送投票请求收到半数以上票时candidate 成为 leader并向其它 follower 发送心跳。如果再给其它 follower 发心跳同时收到了其它 candidate 的心跳说明同时当选 leader则本轮竞选无效再通过重置倒计时器重新竞选 倒计时器 当受到 candidate 投票请求与 leader 心跳倒计时器重新刷新倒计时 如何保证数据一致 客户端向服务端发送存储数据的请求 leader 记日志把消息分发 follower 记日志leader 提交响应客户端提交成功然后通知 follower 提交 发生网络分区时两个分区分别选举 leader出现脑裂那么超过半数结点的分区 leader 可以继续对外服务另一个分区 leader 无法提交 恢复网络正常后小于半数结点的分区 leader 重新变成 follower同时该分区的结点通过主节点日志追加丢失的数据 三 结语 身处于这个浮躁的社会却有耐心看到这里你一定是个很厉害的人吧 各位博友觉得文章有帮助的话别忘了点赞 关注哦你们的鼓励就是我最大的动力 博主还会不断更新更优质的内容加油吧技术人
http://www.tj-hxxt.cn/news/228306.html

相关文章:

  • 淘宝上做的网站 域名到期可以自己续费吗朗坤智能企业管理系统
  • 网站做302跳转的意义海南网站策划
  • 后台网站开发文档wordpress 链接 插件
  • daozicms企业建站系统项目推广平台排行榜
  • 网站备案修改域名ip东莞寮步在哪里
  • 重庆做网站最好的如何为企业网站设计完整的推广方案
  • 上海外贸soho网站建设网页设计实验报告分析
  • 某高校门户网站开发案例网站建设app销售好做吗
  • 远程教育网站建设系部网站建设中期检查总结
  • 网站建设对促进部门工作的益处网站的经营推广
  • 福清网站建设做团购网站的公司
  • 做笔记的网站天河区住房和建设水务局官方网站
  • 常平做网站网站开发技术总结
  • 天津网站建设方案上海微网站建设方案
  • 网站返回指定位置怎么做做外贸外文网站怎么做好
  • 什么是跨境电商平台成都网站优化指导
  • 化妆品销售网站开发与设计给网站做seo的价格
  • 2013年四川省泸州市技能竞赛网站建设样稿999免费网站传奇
  • 建设游戏运营网站开展工作做网站不能有中文字符
  • 西安知名的集团门户网站建设公司网站建设是软件开发吗
  • 外星人建设的网站建设网站怎样做
  • 简述企业网站建设的目的有哪些网站到底怎么做出来的
  • 杭州模板网站制作wordpress文章限时
  • 网站流量来源企业注册网上申请入口
  • 对网站建设起到计划和指导的作用深圳网站建设ln12345
  • 手机网站视频怎么下载漳州城乡建设局网站
  • 重庆网站建设专家wordpress在固定链接设置页面
  • 柯桥做网站有哪些公司网站开发是什么意思
  • 台州网站注册 公司同一ip网站
  • 中国国家城乡建设部网站用户体验设计是什么