在上一篇文章中提到,ZK是一个分布式的、开源的、分布式应用程序协调服务。这其中提到三个概念分布式、开源和协调服务。开源很好理解,ZK代码的源代码你可以在网上找到,你也可以自己修改和发布,这都是基于开源协议而来的。在全球最大同性交友网站-->github上,你可以找到它的源码,可以阅读并修改它的源码。关于分布式和协调服务,后面慢慢的学习。
(1)分布式
ZK是一个分布式系统,关于分布式系统的介绍网上有很多文章,讲的都非常详细。借用《分布式系统概念与设计》一书中的定义:分布式系统是一个硬件或者软件组件分布在不同的网络机器上,彼此之间仅仅通过消息传递进行通信和协调的系统。这里的定义很明确的说明一些事情。首先,系统中的组成部分是分离的,而且彼此之间是不分主次的,系统中每个个体之间相对独立,他们之间仅仅是消息传递,每个组成部分通过协调组成分布式系统。
我们都知道,网络通信是不可靠的,网络总是会通过各种各样的原因出现消息丢失,这样就容易造成网络分区,也就是本来应该成为一体的分布式系统,由于网络错误而造成一部分机器跟另一部分机器失去联系,从而分成几个系统,这也就是“脑裂”。为了解决通信不可靠造成的分布式系统的不一致性,一些分布式系统理论就产生了。
(2)ACID
首先是事务的概念,事务是指一些列对系统数据访问和更新的操作组成的一个逻辑的执行单元,而接触最多的就是数据库的事务,事务可以保证在异常情况下的数据一致性。面对事务,只有成功和失败两种状态,这样操作完,系统中的数据是具有一致性的。说到事务,事务具有四个特性,分别是&#x