Apache ZooKeeper is an effort to develop and maintain an open-source server which enables highly reliable distributed coordination。这里是 Zookeeper 官网的第一段话,也解释了 Zookeeper 的作用。Zookeeper 是开源的高可用分布式服务协调者。

一、【分布式】

什么是分布式?

分布式是相对于集中式而言,集中式服务就是所有的服务都在同一台机器上,而分布式服务就是应用服务分布在不同的机器上面。为什么会出现分布式呢?因为随着业务量的增长,流量的暴增,访问服务的用户越来越多,一台机器毕竟硬件条件有限,于是出现性能瓶颈。访问反应速度慢,服务不稳定。如果机器宕机了,那么整个服务都无法访问。这个时候分布式应运而生,所有新模式的出现,技术的更新,其实都是业务推动,需求推动。因为如果你不变革,你就会被淘汰了。

分布式优缺点是什么呢?

 既然是分布式,服务分布在不同机器上面,很自然会有一致性,通信异常,节点故障等问题。大体分为:通信异常、网络分区、三态、节点故障。

通信异常是指网络本身出现问题,网络的不可用,不可靠。分布式各个节点之间需要通信,网络的不通就会造成数据不一致性。

网络分区是指不同的机器分布在不同的网络环境,你无法保证每个网络都是畅通的。网络异常会导致分布式中部分节点之间通信延时,最终只有一部分节点通信正常,而其他一部分节点则不能通信,我们称这个为网络分区,俗称脑裂。

三态是指成功、失败、超时。这个在我们开发过程中经常遇到。在网络异常情况,就会出现超时,超时也有两种情况:一是由于网络问题,消息并没有成功发送到接收者,导致没有返回,所以超时。二是消息成功发送了,接收着成功接收了,但是在返回响应的时候出现问题,所以超时。

节点故障是指机器故障,机器死机或者僵死现象。

二、【ACID、CAP】

我们谈到分布式不得不提事务和一致性,这个是现实工作中必须面对,必须要解决的问题。ACID 我想大家都很清楚,也是大学数据库课程中很重要的知识点。A 就是 Atomicity 含义是原子性、C 就是 Consistency 含义是一致性、I 就是 Isolation 含义是隔离型、D 就是 Durability 含义是持久性。

 什么是原子性?

事务原子性是指事务必须是一个原子的操作序列单元,要么全部成功,要么全部失败。

什么是事务一致性?

 事务一致性是指事务执行不能破坏数据库的数据完整性和一致性,事务执行前和执行后数据库处于一致性状态。

什么是隔离性?

事务的隔离性是指事务与事务之间是相互隔离的,不会互相影响。这其中就有四种隔离级别:未提交读取、提交读取、可重复读、串行化。这里就不去一一解释了。

什么是持久性?

 事务的持久性是指事务一旦提交,它对数据库中对应数据的状态变更是永久的。

我们再来说说 CAP 理论。

什么是 CAP 理论?

本地事务或者集中式事务,ACID 已经足够用了,它能够保证数据的严格一致性。但是分布式事务,ACID 是不能满足一致性的。

CAP 理论,C 就是 Consistency 一致性、A 就是 Availability 可用性、P 就是 Partition tolerance 容错性。一个分布式系统,不可能同时满足这三个条件,最多只能满足其二。这就是 CAP 理论。现实开发中,容错性是必须的,因为应用分布在不同的机器节点,如果容错性都没有,数据怎么可能是一致的,安全的。所以,分布式系统我们需要去衡量可用性和一致性之间的取舍。这里 CAP 就不去详细介绍了,大家可以自己查资料。

三、【下载 Zookeeper 安装包】

这个很简单,大家去官网 https://zookeeper.apache.org/ 就可以下载到各个版本的安装包。

四、【启动】

win 环境

 进入 zookeeper-3.4.10 目录,这是我下载的版本,在 bin 目录下找到 zkServer.cmd,双击就行了。如果出现闪退现象,可以去 conf 目录下看看,是否有 zoo.cfg 文件,如果没有则自己复制一份,或者直接将 zoo_sample.cfg 修改成 zoo.cfg。

启动完毕如下图:

启动正常,默认端口 2181。

我们通过 zkCli 来连接服务端,看看服务端默认数据结构是什么样子。

双击 zkCli.cmd,如下图

Zookeeper 默认数据节点 zookeeper,关于数据结构,我以后再详细讨论。谢谢大家观看!

聊聊、Zookeeper Windows启动的更多相关文章

  1. Zookeeper Windows版的服务安装和管理工具

    以前研究过负载均衡,最近正在项目上实施(从来没做过小项目以上级别的东西,哈).然后遇到了多个一模一样但是同时运行的服务.不同服务但依赖同相同的配置数据(前端网页服务:Nginx+IIS+nodejs. ...

  2. 如何在 Linux 和 windows 启动使用 Dubbo 和 ZK

    今天的知识点有 3 个: Linux 下安装.配置 JDK. Windows 下启启动 dubbo 和 zookeeper. Linux 下启动 dubbo 和 zookeeper. 1.Linux ...

  3. CentOS 7 恢复 Windows 启动项

    安装Linux时一般会自动识别windows系统并添加引导项,而 CentOS 默认不支持 NTFS 分区,CentOS7采用了Grub2,与CentOS6有区别.手动引导windows分区修改配置稍 ...

  4. 如何让openvpn在windows启动时自动加载

    在非常需要vpn的人群中,他们几乎一整天都连接着vpn,但是每次开机都要连接vpn的过程有时候比较繁琐对于新手而言.这篇文章主要是说明如何在windows启动时自动加载openvpn自动连接,该教程适 ...

  5. DSAPI 添加删除程序到Windows启动

    使用DSAPI.dll中文件类里现成的功能,将使你可以快速高效地实现将程序加入Windows启动项或从启动项中删除. 简单也是非常地简单,但由于是比较独立的功能,所以单独发表为整个篇幅.  DSAPI ...

  6. 如何确定windows启动类型是bios还是uefi

    原文地址:http://www.kqidong.com/bios/3728.html 如何确定windows启动类型是bios还是uefi?随着装机越来越简单,大家对安装系统充满信心,但是了解到启动类 ...

  7. Apache ZooKeeper 服务启动源码解释

    转载:https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper-code/ 本文首先讲解了 Apache ZooKeeper 服 ...

  8. Windows启动配置数据(BCD)存储文件包含一些无效信息

    Windows启动配置数据(BCD)存储文件包含一些无效信息-照牛排 http://www.zhaoniupai.com/archives/223.html 1)近来封装Windows 7,遇到挫折. ...

  9. UEFI下windows启动过程

    引导文件 在UEFI安装完操作系统后,Windows至少使用两个分区,一个叫做ESP分区(EFI SYSTEM PARTITION),用于存放启动文件,另一个则是BIOS下正常的系统分区,不同的是,B ...

随机推荐

  1. mysql初始化失败的问题

    首先:my.ini 配置文件中 路径需要改成自己电脑mysql解压的路径. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...

  2. 【01】《html5权威指南》(扫描版)(全)

    [01]<html5权威指南>(扫描版)(全) []魔芋:无高清电子书.   只看第五部分,高级功能. 作者:(美)弗里曼 著,谢延晟,牛化成,刘美英 译 [美]adam freeman ...

  3. IOS开发---菜鸟学习之路--(十一)-使新闻内容自适应高度

    上一章当中,我们留了一个小BUG. 其实就是浏览新闻的时候,如果文字内容过长的花,UITextView 会有个下拉框,而最底层的UIScrollView也有个下拉框,那么在使用的时候就会非常的不爽. ...

  4. CTF 两道web整数溢出题目(猫咪银行和ltshop)

    ①猫咪银行: (2018中科大hackgame) 一开始给十个CTB,而flag需要20个CTB,我们需要理财赚够20个. 理财是只能买入TDSU才可以获得收益.我们先上来直接把CTB全部换成TDSU ...

  5. c++树及树与二叉树的转换

    此算法中的树结构为“左儿子有兄弟链接结构” 在这样的一个二叉树中,一个节点的左分支是他的大儿子节点,右分支为他的大兄弟节点. 这里讲的树有递归前根,中根,后根遍历,插入节点,插入兄弟节点,查找结点,释 ...

  6. 非旋Treap总结 : 快过Splay 好用过传统Treap

    非旋$Treap$ 其高级名字叫$Fhq\ Treap$,既然叫$Treap$,它一定满足了$Treap$的性质(虽然可能来看这篇的人一定知道$Treap$,但我还是多说几句:$Fhp\ Treap$ ...

  7. 多IP指定出口IP地址 如何指定云服务器源IP?

    如果一个主机绑定有多个IP地址,那么在被动响应和主动发起连接两种方式中,源IP地址的选择机制肯定是有所差异的.主机在接收外部数据包,并发送响应数据包时,响应源地址显然就是客户端请求的地址,这是非常容易 ...

  8. 出租车(taxi)

    出租车(taxi) 题目描述 Bessie在农场上为其他奶牛提供出租车服务.这些奶牛已经在沿着长度为M(1<= M <= 1,000,000,000)的栅栏上不同的地点聚集等候.不幸的是, ...

  9. cf 341D lahub and xors

    题目大意 给定初始值为\(0\)的\(n*n\)矩阵 两种操作 矩形内异或一个值 求矩阵内异或和 \(n\le 1000\) 分析 二维线段树标记不下传貌似直接可做 有没有更简便的方法? 考虑异或的特 ...

  10. [HNOI2012]矿场搭建(tarjan求点双)

    题目 Description 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决定在某些挖煤点设立救援出口,使得无 ...