
分布式协同服务(zookeeper与ETCD)
hashcon
做自媒体技术分享很久了,大家的抬爱与支持让我很开心很感激,但是个人本来做这些也并不是为了收益,只是为了个人学习与传播知识帮助更多的人,所以我将全网所有账号全部收益,持续捐给各种公益项目,也算不辜负大家的抬爱,也是回报祖国对我的一番培养。
曾任职于顺丰,华为,网易等公司,从Java小白,成长为资深开发与项目组首席架构师。喜欢源码与开源,曾贡献 MyCat1.6 核心源码,贡献过druid,Spring Cloud,dubbox,Apache RocketMQ,Apache Bookeeper 等多开源项目。
展开
-
Zookeeper - 背景篇
Zookeeper以它的稳定性,高并发并且简单易用,目前在很多分布式系统中作为协调服务的中间件。Zookeeper官方文档很全面,目前,最新稳定版本为3.4.8:Zk 3.4.8 API文档Zk 3.4.8 开发文档Zk 3.4.8 编程实例网上关于Zookeeper的文档也非常多而且繁杂,但是,在各方面深入到骨髓的文章不多,博主手机了网上很多关于zk的资料,在这里整理总结并输出。最后,利用原创 2016-03-10 08:55:57 · 11098 阅读 · 0 评论 -
Zookeeper - 部署篇
Zookeeper 安装与配置本文采用 Zookeeper-3.4.8 为基础介绍它的安装步骤以及配置信息,下载地址:Zookeeper-3.4.8。Zookeeper功能强大,但是安装却十分简单,下面重点以伪分布式模式来介绍 Zookeeper 的安装。伪分布式模式安装Zookeeper 安装模式包括:单机模式,伪分布式模式和完全的集群模式。单机模式最简单,本文将跳过单机模式安装(单机模式安装步骤原创 2016-03-10 13:50:39 · 5190 阅读 · 0 评论 -
Zookeeper - 介绍篇(2)
ZK数据结构zk整体保存数据的结构类似于文件系统的树形结构。但是每个节点可以拥有一个名字,并作为一个文件夹包括多个其他节点,同时还可以保存数据。 需要注意:空字符(\u0000)不能作为名字\u0001 - \u0019 和\u007F - \u009F最好不要作为名字的一部分,因为他们表示的字符不好显示或者因为他们可以被转换成多种表现形式\ud800 -uF8FFF, \uFFF0-u原创 2016-03-10 15:23:04 · 5604 阅读 · 0 评论 -
Zookeeper - 介绍篇(3)
ZK会话ZK会话有四种状态:NOT_CONNECTED, CONNECTING, CONNECTED, CLOSED, 会话状态转换图为 Client初始化连接,状态转为CONNECTING(①)Client与Server成功建立连接,状态转为CONNECTED(②)Client丢失了与Server的连接或者没有接受到Server的响应,状态转为CONNECTING(③)Client连上原创 2016-03-11 10:06:03 · 8156 阅读 · 0 评论 -
Zookeeper - 开发篇(1)
本文用Java api开发一些基本的程序,从而搞清楚zk的一些基本用法。 zk客户端在连接 zk 服务器需要实例化一个org.apache.zookeeper.ZooKeeper对象,然后调用该类提供的接口与Zookeeper服务器进行交互。如果不指明,该类的所有方法均是线程安全的。一旦 zk客户端与服务器建立连接,客户端就会被分配一个会话ID(session ID),客户端会定期向服务器端发送心原创 2016-03-21 10:18:43 · 4839 阅读 · 0 评论 -
Zookeeper - 介绍篇(1)
Paxos算法Paxos算法是Zookeeper实现的核心思路,但是Paxos算法理解比较抽象。这里先简述下我的理解: 首先,Paxos算法解决的问题是:每一个处于正常工作的服务端都执行一个相同的命令序列。 意思就是:在如下的分布式系统中,有多个Client和多个Server。 每个client都可以和每个server进行交互。假设每个Client此时各发一个请求,分别是O1,O2,O3,原创 2016-03-14 20:11:05 · 15205 阅读 · 0 评论 -
一次关于ETCD客户端(ETCD4J)问题的定位
问题现象ETCD作为我们管理面(基于Java)的异步任务同步媒介,在管理面压力测试时,发现任务状态不更新了。问题定位流程而业务线程日志正常(INFO级别),数据库没有死锁,并且top -c命令和sar命令等查看CPU,内存,硬盘IO都正常。 于是,利用jstack定时十秒打印线程方法调用栈,打印六次。 发现定时线程方法栈很奇怪: 发现这个线程池里面的所有线程都处于WAITING状态,并且调原创 2017-07-18 23:00:19 · 8282 阅读 · 0 评论 -
关于Zookeeper框架Curator中的主从选举框架LeaderLatch的坑
关于Zookeeper框架Curator中的主从选举框架LeaderLatch的坑根据网上给的LeaderLatch的示例代码写的业务代码,这里面用到的serverId是从配置中读取的(每个新部署的实例自动生成,之后一直不变)@PostConstructpublic void setUp() throws Exception { RetryPolicy retryPolicy = new原创 2017-10-19 14:48:13 · 20200 阅读 · 2 评论