Luckylau's Blog

Keep Moving, Keep Learning


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 搜索
close
Luckylau's Blog

Zookeeper的原理(4)

发表于 2018-03-18 | 分类于 分布式架构

​ 本章开始讲解Zookeeper重要的技术实现。上一篇我们讲解了Zookeeper客户端的原理与实现,本篇深入解析Zookeeper服务端的相关原理。

服务端

会话

会话创建流程

阅读全文 »
Luckylau's Blog

Zookeeper的原理(3)

发表于 2018-03-18 | 分类于 分布式架构

​ 本章开始讲解Zookeeper重要的技术实现。之前一篇我们讲解了Zookeeper的系统模型,并详细讲解了Watch机制,其中提到了客户端与服务端通信的问题,就此我们深入挖掘Zookeeper的客户端与会话原理。

客户端

核心组件

客户端是开发人员使用ZooKeeper最主要的途径。包括以下核心组件:

ZooKeeper实例:客户端的入口;

ClientWatchManager:客户端Watcher管理器;

HostProvider:客户端地址列表管理器;

ClientCnxn:客户端核心线程,其内部又包含两个线程,即SendThread和EventThread。前者是一个I/O线程,主要负责ZooKeeper客户端和服务端之间的网络I/O通信;后者是一个事件线程,主要负责对服务端事件进行处理。

阅读全文 »
Luckylau's Blog

Zookeeper的原理(2)

发表于 2018-03-15 | 分类于 分布式架构

​ 本章开始讲解Zookeeper重要的技术实现。在分布式系统基础理论(3)中,我们讲到了Zookeeper是采用ZAB协议保持一致性的。

系统模型

树形结构

​ Zookeeper的数据节点称为ZNode,ZNode是Zookeeper中数据的最小单元,每个ZNode都可以保存数据,同时还可以挂载子节点,因此构成了一个层次化的命名空间,称为树。ZNode的节点路径标识方式和Unix文件系统路径非常相似,都是由一系列使用斜杠(/)进行分割的路径表示。

阅读全文 »
Luckylau's Blog

分布式系统基础理论(3)

发表于 2018-03-13 | 分类于 分布式架构

本篇主要讲解分布式一致性或者叫共识(Consensus)算法(不考虑可能出现消息篡改即拜占庭问题),包括Paxos算法,Raft算法, Viewstamped Replication,ZAB协议。

Paxos算法

Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一。协议本身并没有多难理解,它的难理解性主要体现在:为何如此设计协议以及如何证明其正确性。

阅读全文 »
Luckylau's Blog

分布式系统基础理论(2)

发表于 2018-03-12 | 分类于 分布式架构

本篇主要讲解2PC和3PC以及TCC理论,同时介绍一个解决分布式事务的开源项目saga。

最近看了《从Paxos到zookeeper 分布式一致性原理与实践》以及《分布式服务架构:原理,设计与实战》这本书,结合之前的看到的优秀博客,做一下梳理。

​ 在了解2PC和3PC之前先来了解XA规范。XA是由X/Open组织提出的分布式事务的规范。X/Open DTP模型(1994)包括应用程序(AP)、事务管理器(TM)、资源管理器(RM)、通信资源管理器(CRM)四部分。事务管理器(TM)是交易中间件,资源管理器(RM)是数据库,通信资源管理器(CRM)是消息中间件。

阅读全文 »
Luckylau's Blog

分布式系统基础理论(1)

发表于 2018-03-09 | 分类于 分布式架构

本篇主要讲解ACID, CAP和 BASE。

​ 最近看了《从Paxos到zookeeper 分布式一致性原理与实践》这本书,想提取总结一些分布式相关的内容,做一下梳理,本篇主要讲解ACID, CAP和 BASE。

在《分布式系统概念与设计》一书中对分布式定义如下:

​ 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。

阅读全文 »
1…151617…36
Luckylau

Luckylau

人生识字忧患始

215 日志
14 分类
33 标签
GitHub Weibo
© 2017 - 2022 Luckylau
由 Hexo 强力驱动
主题 - NexT.Pisces