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. synchronized同步方法和同步代码块的区别

    同步方法默认使用this或者当前类做为锁. 同步代码块可以选择以什么来加锁,比同步方法更精确,我们可以选择只有会在同步发生同步问题的代码加锁,而并不是整个方法. 同步方法使用synchronized修 ...

  2. privoxy+ss5实现 HTTP 代理协议转socks5代理

    一.系统准备资源         二.ss5安装部署 1.SOCK5代理服务器部署环境准备 IP:10.0.0.100 官网: http://ss5.sourceforge.net/ 下载 yum - ...

  3. python 删除重复文件 附源代码

    啥也不说了,直接上源码 #! /usr/bin/env python #coding=utf-8 import os import md5 import time def getmd5( filena ...

  4. redhat-2

    2016年5月16日-工作日志1 通过PXE安装RHEL7.2系统,部署satellite6.2(采用不是least-stable版本,是Satellite-6.2.0-RHEL-7-20160512 ...

  5. easyui loader 改变rows total page rows等参数名称!

    公司需要对接客户接口,但客户接口已经确定,分页请求的参数以及返回的数据是客户自定义的名称,与easyui 所封装的参数无法对应,这是需要改变参数名称,这时我们可以使用loader方法: loader: ...

  6. valuestack 根对象CompoundRoot 源码

    /* * Copyright 2002-2006,2009 The Apache Software Foundation. * * Licensed under the Apache License, ...

  7. poj3009 Curling 2.0 (DFS按直线算步骤)

    Curling 2.0 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14563   Accepted: 6080 Desc ...

  8. markdown的使用说明

    markdown 你很牛 说点废话 背景 md 经常喜欢写点东西的人,是不是觉得用各种笔记软件或者是html,排版总是让你感到蛋蛋的忧伤,本来满腹经纶,最后由于不好排版,阅读体验差,最后...but. ...

  9. Gym 100989E 字符串

    Description standard input/output Islam is usually in a hurry. He often types his passwords incorrec ...

  10. Codeforces 2014-2015 ACM-ICPC, NEERC, Southern Subregional Contest L. Useful Roads

    L. Useful Roads time limit per test:4 seconds memory limit per test:512 megabytes input:standard inp ...