摘要: [TOC] 前言 在过去的两节里已经分析了选举过程中的一些实体类和网络IO相关的机制与源码,这一节将会对zookeeper选举的核心类FastLeaderElection进行分析。 FastLeaderEleaction基本结构 可以看到FastLeaderElection的基本结构还是比较清晰的, 阅读全文
posted @ 2019-06-23 18:10 SmallMushroom 阅读(1134) 评论(0) 推荐(0) 编辑
摘要: [TOC] 前言 前一篇已经大概讲了基本Zookeeper选举时的选票和关于集群校验的一些概念,这一篇讲一下为了达到Zookeeper选举所设计的队列机制和实现队列机制所做的网络IO类。这部分对于zookeeper选举算法来说是基础,也是非常重要的组成部分。 队列机制概述 在 "Zk思考" 中提到过 阅读全文
posted @ 2019-06-21 17:10 SmallMushroom 阅读(650) 评论(0) 推荐(0) 编辑
摘要: [TOC] 前言 前面一篇博客分析了ZAB的设计思想和包括快速选举在内的基本的过程,但在实际的Zookeeper工程中,为了达到ZAB的目标,还是有许多的内部的逻辑和机制,这一篇我们会先分析下为了实现选举Zookeeper所做的准备工作。 值得一提的是,Zookeeper的选举可以分为几步去讲,在写 阅读全文
posted @ 2019-05-05 23:05 SmallMushroom 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 除了这一篇外,讲AQS和ReentrantLock的比较好的可以看。 1. https://www.cnblogs.com/chengxiao/p/7255941.html 2. https://www.cnblogs.com/skywang12345/p/3496101.html 3. http: 阅读全文
posted @ 2019-04-27 23:46 SmallMushroom 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 前言 之前转载的文章 "volatile关键字解析" 中详细分析了volatile相关的知识(写的非常非常好!),这里就两点详细说下。 Synchonized保证可见性(以println方法为例) 之前有一次和朋友聊天说起System.out的各种print方法,当时他说这些方法内部除了IO外还有些 阅读全文
posted @ 2019-04-25 21:58 SmallMushroom 阅读(169) 评论(0) 推荐(0) 编辑
摘要: <! flowchart 箭头图标 勿删 摘要: 在 Java 并发编程中,要想使并发程序能够正确地执行,必须要保证三条原则,即:原子性、可见性和有序性。只要有一条原则没有被保证,就有可能会导致程序运行不正确。volatile关键字 被用来保证可见性,即保证共享变量的内存可见性以解决缓存一致性问题。 阅读全文
posted @ 2019-04-25 20:32 SmallMushroom 阅读(395) 评论(0) 推荐(0) 编辑
摘要: [TOC] 前言 ZAB是专门为Zookeeper设计的分布式协调协议,其全称是Zookeeper Atomic Broadcast(Zookeeper原子广播协议) 。 在本篇文章中,我不会特别详细地去讲ZAB的详细内容和步骤,而是会列出一些我觉得很重要的点或者是理解ZAB的脉络,然后从这些点展开 阅读全文
posted @ 2019-04-18 23:16 SmallMushroom 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 前言 最近又开启了一个新项目,时间比较紧,博客写的速度也比较慢,但是还是不能放松要求~希望最近周末能抽点时间把上周漏掉的博客补上~ 在前一篇大致描述了单机server的启动过程后,从这一篇开始我们将开始集群server的一些机制的一些了解,主要还有servr的启动,处理链,选举等等大的模块需要完善。 阅读全文
posted @ 2019-01-29 14:38 SmallMushroom 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 最近在做的一个java项目需要作为windows的service在windows上运行。最初的解决方案就是利用windows自带的sc命令来创建windows service,也确实注册成功了。 具体的命令是sc create ... (最后service执行的命令就类似...java.exe ja 阅读全文
posted @ 2019-01-24 19:00 SmallMushroom 阅读(1816) 评论(0) 推荐(0) 编辑
摘要: 前言 前面两篇主要说了下client server的session相关的内容,到这里client的内容以及client server的连接的内容也就基本告一段落了,剩下的部分就是server部分内部的结构,zk的选举以及server部分的工作机制等了。 这一篇主要说下单机server的启动过程,里面 阅读全文
posted @ 2019-01-09 21:58 SmallMushroom 阅读(606) 评论(0) 推荐(0) 编辑