前言 我们都知道之前所做的项目大部分都是集中式,单个节点的系统,而现在随着微服务和分布式的兴起,大部分企业慢慢的把集中式的系统拆分成各个服务,保证各个服务的模块单一,轻量级。微服务和分布式所带来的好处在于各个服务比较轻,每次修改功能只需要发布负责特定的服务即可。分布式所带来的更严重的问题就是数据的一 ...
分类:
编程语言 时间:
2020-07-05 13:41:57
阅读次数:
44
一、Paxos算法产生的背景 Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一,其解决的问题就是在分布式系统中如何就某个值(决议)达成一致。 面试的时候:不要把这个Paxos算法达到的目的和分布式事务联系起来,而是针对Zookeeper这样 ...
分类:
编程语言 时间:
2020-07-03 21:25:58
阅读次数:
67
一、概述 1.ZAB(Zookeeper Atomic Broadcast) 是专门为Zookeeper设计的一套广播协议 2.这个协议底层基于2PC算法进行设计,利用PAXOS算法进行改进 3.作用:原子广播和崩溃恢复 二、原子广播 1.原子广播主要保证Zookeeper集群中的所有节点的数据一致 ...
分类:
其他好文 时间:
2020-06-20 14:07:33
阅读次数:
53
前言 之前的Zookeeper协议篇-Paxos算法与ZAB协议通过了解Paoxs算法开始,到Zab协议的两大特性:崩溃恢复和消息广播,学习了Zookeeper是如何通过Zab协议实现高可用,本篇主要解析Zookeeper的启动流程 单机模式启动流程 我们知道,Zookeeper使用中分为单机和集群 ...
分类:
其他好文 时间:
2020-06-04 10:24:44
阅读次数:
68
前言 可以自行去学习一下Zookeeper中的系统模型,节点特性,权限认证以及事件通知Watcher机制相关知识,本篇主要学习Zookeeper一致性算法和满足分布式协调的Zab协议 Paxos算法 Paxos算法是莱斯利*兰伯特在1990年提出的一种基于消息传递并且具有高度容错特性的一致性算法,是 ...
分类:
编程语言 时间:
2020-06-02 11:14:57
阅读次数:
72
Paxos 存在的问题 Paxos 算法的描述偏学术化,缺失了很多细节,没有办法直接应用于工程领域。实际工程应用中的分布式算法大多是 Paxos 的变种,验证这些算法的正确性也成为了一个难题。 举个例子:上一篇文章的 "最后" 介绍了一个应用 Paxos 算法的工程模型,这个模型存在明显的写性能瓶颈 ...
分类:
其他好文 时间:
2020-05-23 19:57:50
阅读次数:
52
一、Zookeeper的理论基础 1、Zookeeper简介 Zookeeper由雅虎研究院开发,后捐给Apache。是一个开源的分布式应用程序协调服务器,为分布式系统提供一致性服务。其一致性是通过基于Paxos算法的ZAB协议完成的。其主要功能包括:配置维护、域名服务、分布式同步、集群管理等。 2 ...
分类:
其他好文 时间:
2020-05-17 01:33:42
阅读次数:
94
CAP:Consistency(数据强一致性)、Availability(其中一台机器故障其他的可以提供服务)、Partitiontolerance(机器间因网络延迟等问题不能同步,确保都可以提供服务),因为分布式微服务集群基本上是要求的所以一般都是在CP 或者 AP 之间做选择。 CA本来就矛盾。 ...
分类:
其他好文 时间:
2020-05-02 22:51:17
阅读次数:
91
一、什么是Zab算法 Zab借鉴了Paxos算法,是特别为Zookeeper设计的支持崩溃恢复的原子广播协议。基于该协议,zk实现了一种主备模型(即Leader和Follower模型)的系统架构来保证集群中各个副本之间数据的一致性。这里的主备系统架构模型,就是指只有一台客户端(Leader)负责处理 ...
分类:
其他好文 时间:
2020-04-18 09:37:24
阅读次数:
71
前言 上一篇:《分布式数据一致性模型有哪些?》 提到了Base理论提到了一个重要的点就是「最终一致性」 有什么方式能实现这种一致性呢? 本文主要对以下两个问题进行介绍: 一致性算法Paxos透析? Paxos算法的应用场景? Paxos算法透析 Google Chubby的作者Mike Burrow ...
分类:
编程语言 时间:
2020-04-15 23:07:48
阅读次数:
157