聊聊、Zookeeper Windows启动
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启动的更多相关文章
- Zookeeper Windows版的服务安装和管理工具
以前研究过负载均衡,最近正在项目上实施(从来没做过小项目以上级别的东西,哈).然后遇到了多个一模一样但是同时运行的服务.不同服务但依赖同相同的配置数据(前端网页服务:Nginx+IIS+nodejs. ...
- 如何在 Linux 和 windows 启动使用 Dubbo 和 ZK
今天的知识点有 3 个: Linux 下安装.配置 JDK. Windows 下启启动 dubbo 和 zookeeper. Linux 下启动 dubbo 和 zookeeper. 1.Linux ...
- CentOS 7 恢复 Windows 启动项
安装Linux时一般会自动识别windows系统并添加引导项,而 CentOS 默认不支持 NTFS 分区,CentOS7采用了Grub2,与CentOS6有区别.手动引导windows分区修改配置稍 ...
- 如何让openvpn在windows启动时自动加载
在非常需要vpn的人群中,他们几乎一整天都连接着vpn,但是每次开机都要连接vpn的过程有时候比较繁琐对于新手而言.这篇文章主要是说明如何在windows启动时自动加载openvpn自动连接,该教程适 ...
- DSAPI 添加删除程序到Windows启动
使用DSAPI.dll中文件类里现成的功能,将使你可以快速高效地实现将程序加入Windows启动项或从启动项中删除. 简单也是非常地简单,但由于是比较独立的功能,所以单独发表为整个篇幅. DSAPI ...
- 如何确定windows启动类型是bios还是uefi
原文地址:http://www.kqidong.com/bios/3728.html 如何确定windows启动类型是bios还是uefi?随着装机越来越简单,大家对安装系统充满信心,但是了解到启动类 ...
- Apache ZooKeeper 服务启动源码解释
转载:https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper-code/ 本文首先讲解了 Apache ZooKeeper 服 ...
- Windows启动配置数据(BCD)存储文件包含一些无效信息
Windows启动配置数据(BCD)存储文件包含一些无效信息-照牛排 http://www.zhaoniupai.com/archives/223.html 1)近来封装Windows 7,遇到挫折. ...
- UEFI下windows启动过程
引导文件 在UEFI安装完操作系统后,Windows至少使用两个分区,一个叫做ESP分区(EFI SYSTEM PARTITION),用于存放启动文件,另一个则是BIOS下正常的系统分区,不同的是,B ...
随机推荐
- windows下,cmd 运行 python 脚本,选中文字就停止运行了【已解决】
参考资料: https://jingyan.baidu.com/article/ce09321bb95dda2bff858f26.html 问题原因: cmd 里面,快速编辑模式会暂停程序 解决步骤: ...
- cf976d Degree Set
ref #include <algorithm> #include <iostream> #include <cstdio> #include <vector ...
- IOS开发---菜鸟学习之路--(二十)-二维码扫描功能的实现
本章将讲解如何实现二维码扫描的功能 首先在github上下载ZBar SDK地址https://github.com/bmorton/ZBarSDK 然后将如下的相关类库添加进去 AVFoundati ...
- manjaro无声音
解决方法:https://forum.manjaro.org/t/no-sound-solved/3517 LOL i feel like such a noob. Fixed my problem ...
- selenium webdriver——多表单切换与多窗口切换
多表单切换 >>在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe 表单内嵌页面上的元素无 ...
- Codeforces Round #402 (Div. 2) D. String Game(二分答案水题)
D. String Game time limit per test 2 seconds memory limit per test 512 megabytes input standard inpu ...
- [LOJ#2323]「清华集训 2017」小Y和地铁
[LOJ#2323]「清华集训 2017」小Y和地铁 试题描述 小Y是一个爱好旅行的OIer.一天,她来到了一个新的城市.由于不熟悉那里的交通系统,她选择了坐地铁. 她发现每条地铁线路可以看成平面上的 ...
- [ZJOI2010][bzoj1834] 网络扩容 [费用流]
题面 传送门 思路 第一问:无脑网络流跑一波 第二问: 先考虑一个贪心的结论:扩容出来的扩容流量一定要跑满 证明显然 因此我们可以把扩容费用可以换个角度思考,变成增加一点流量,花费W的费用 这样,我们 ...
- border-radius元素overflow:hidden失效问题
父元素使用border-radius和overflow:hidden做成圆形,子元素如果使用了transform属性,则父元素的overflow:hidden会失效. 解决方法: 父元素使用 -wei ...
- 人类基因(human)
题目描述 上了大学之后,小W和小Z一起报了一门三宝课,在实践课上遇到了一些问题. 一条染色体上有nn对基因,每种基因都可以用一个数ai来表示,作为标号. 现在,在其中一条染色单体上某基因发生了突变. ...