聊聊、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 ...
随机推荐
- loj2052 「HNOI2016」矿区
学习一发平面图的姿势--ref #include <algorithm> #include <iostream> #include <cstdio> #includ ...
- CSU-2220 Godsend
题目链接 http://acm.csu.edu.cn:20080/csuoj/problemset/problem?pid=2220 题目 Description Leha somehow found ...
- Leetcode 599.两个列表的最小索引总和
两个列表的最小索引总和 假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示. 你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅. 如果答 ...
- Leetcode 526.优美的排列
优美的排列 假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一 ...
- 【转】UGUI VS NGUI
原文:http://gad.qq.com/college/articledetail/7191053 注[1]:该比较是基于15年-16年期间使用NGUI(3.8.0版本)与UGUI(4.6.9版本) ...
- jQuery动态显示和隐藏datagrid中的某一列的方法
在EasyUI中: 1)展示某列的方法: $('#jgrid').datagrid('showColumn', 'XXX'); -----其中 XXX 是隐藏列的 field 属性值 2) ...
- eclipse删除svn下载的文件后如何恢复
Team右键-->与资源库同步-->覆盖/更新
- splay模板整理
1.插入一个数 void insert(int x) { if (!root) { ++tot; e[tot].left = e[tot].right = e[tot].fa = ; e[tot].v ...
- 将扁平化的JSON属性转换为嵌套的JSON
需要将如下JSON {"a":"a","b":"b","c.e":"e",&qu ...
- hdu 5930 GCD 线段树上二分/ 强行合并维护信息
from NOIP2016模拟题28 题目大意 n个点的序列,权值\(<=10^6\) q个操作 1.单点修改 2.求所有区间gcd中,不同数个数 分析 1.以一个点为端点,向左或向右的gcd种 ...