01 2017 档案
摘要:一、前言 前面学习了Scala的Numbers,接着学习Scala的Control Structures(控制结构)。 二、Control Structures Scala中的控制结构与Java中的颇为类似,但也有所不同,例如,if/then/else控制结构与Java的类似,但是其可以返回值,虽然
阅读全文
摘要:一、前言 前面已经分析了Watcher机制中的大多数类,本篇对于ZKWatchManager的外部类Zookeeper进行分析。 二、ZooKeeper源码分析 2.1 类的内部类 ZooKeeper的内部类框架图如下图所示 说明: · ZKWatchManager,Zookeeper的Watche
阅读全文
摘要:一、前言 前面已经学习了Scala中的String,接着学习Scala的Numbers。 二、Numbers 在Scala中,所有的数字类型,如Byte,Char,Double,Float,Int,Long,Short都是对象,这七种数字类型继承AnyVal特质,这七种数字类型与其在Java中有相同
阅读全文
摘要:一、前言 大数据领域的Spark、Kafka、Summingbird等都是由Scala语言编写而成,相比Java而言,Scala更精炼。由于笔者从事大数据相关的工作,所以有必要好好学习Scala语言,之前也学习过,但是没有记录,所以就会忘记,感觉Scala确实比Java方便精炼很多,下面以Scala
阅读全文
摘要:一、前言 前面已经分析了Watcher机制中的第一部分,即在org.apache.zookeeper下的相关类,接着来分析org.apache.zookeeper.server下的WatchManager类。 二、WatchManager源码分析 2.1 类的属性 说明:WatcherManager
阅读全文
摘要:一、前言 前面已经分析了Zookeeper持久话相关的类,下面接着分析Zookeeper中的Watcher机制所涉及到的类。 二、总体框图 对于Watcher机制而言,主要涉及的类主要如下。 说明: Watcher,接口类型,其定义了process方法,需子类实现。 Event,接口类型,Watch
阅读全文
摘要:一、前言 前面分析了FileSnap,接着继续分析FileTxnSnapLog源码,其封装了TxnLog和SnapShot,其在持久化过程中是一个帮助类。 二、FileTxnSnapLog源码分析 2.1 类的属性 说明:类的属性中包含了TxnLog和SnapShot接口,即对FileTxnSnap
阅读全文
摘要:一、前言 前篇博文已经分析了FileTxnLog的源码,现在接着分析持久化中的FileSnap,其主要提供了快照相应的接口。 二、SnapShot源码分析 SnapShot是FileTxnLog的父类,接口类型,其方法如下 说明:可以看到SnapShot只定义了四个方法,反序列化、序列化、查找最新的
阅读全文
摘要:一、前言 前一篇已经分析了序列化,这篇接着分析Zookeeper的持久化过程源码,持久化对于数据的存储至关重要,下面进行详细分析。 二、持久化总体框架 持久化的类主要在包org.apache.zookeeper.server.persistence下,此次也主要是对其下的类进行分析,其包下总体的类结
阅读全文
摘要:一、前言 在完成了前面的理论学习后,现在可以从源码角度来解析Zookeeper的细节,首先笔者想从序列化入手,因为在网络通信、数据存储中都用到了序列化,下面开始分析。 二、序列化 序列化主要在zookeeper.jute包中,其中涉及的主要接口如下 · InputArchive · OutputAr
阅读全文