ZooKeeper
文章平均质量分 72
iter_zc
关注互联网架构方向
展开
-
聊聊ZooKeeper(一)分析ZooKeeper的Quorums机制--防止Split-Brain问题
使用过ZooKeeper的同学应该看到过一种说法,就是ZooKeeper集群中必须超过半数节点(Majority)可用,整个集群才能对外可用。这个说法在大多数情况下是正确的。这篇文章说说背后的原因。实际上ZooKeeper提供了几种方式来认定整个集群是否可用,Majority只是其中的一种。 http://zookeeper.apache.org/doc/r3.3.5/zookee原创 2014-11-17 17:23:30 · 7866 阅读 · 0 评论 -
从ZooKeeper源代码看如何实现分布式系统(一)概述
最近看了几篇介绍如何设计高可用,高新能的分布式系统的文章,从设计的角度来看很多共性的模式,比如Master-Slave,CAP的3个维度,负载均衡,存储,数据同步,失效转移,集群的选主策略,心跳监控,高性能的网络编程,日志,可伸缩性等等。这些名词解决的是分布式系统的核心问题。光从设计上来说比较容易,但是实现起来很有难度。实际上我们有一个很好的实现例子可以参考学习,那就是ZooKeeper。ZooK原创 2016-01-02 10:59:54 · 4230 阅读 · 1 评论 -
从ZooKeeper源代码看如何实现分布式系统(二)数据的高可用存储
这篇先从数据的高可用存储说起。ZooKeeper提供了分布式的目录服务,它存储的数据相比一个分布式存储系统来说很少,它主要是用来做分布式协同操作的。但是麻雀虽小,五脏俱全,ZooKeeper也必须要提供数据的高可用存储,对数据进行备份和恢复,以防出现服务器宕机导致数据丢失的情况。 高可用的数据存储有一个比较通用的解决方案,就是数据文件 + 日志文件的方式。比如传统数据库中的数据文件 +原创 2016-01-08 11:22:23 · 4122 阅读 · 0 评论 -
从ZooKeeper源代码看如何实现分布式系统(四)session管理
这篇看看ZooKeeper如何管理Session。 Session相关的接口如下: Session: 表示session的实体类,维护sessionId和timeout两个主要状态SessionTracker: Session生命周期管理相关的操作SessionExpier: Session过期的操作public interface SessionTrack原创 2016-01-29 16:57:49 · 3947 阅读 · 0 评论