IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> zookeeper介绍及源码环境搭建 -> 正文阅读

[Java知识库]zookeeper介绍及源码环境搭建

2021SC@SDUSC

目录

?

一、zookeeper项目背景

二、zookeeper简介

三、zookeeper源码环境搭建

四、总结


一、zookeeper项目背景

Zookeeper最早起源于雅虎研究院的一个研究小组。在当时,研究人员发现,在雅虎内部很多大型系统基本都需要依赖一个类似的系统来进行分布式协调,但是这些系统往往都存在分布式单点问题。所以,雅虎的开发人员就试图开发一个通用的无单点问题的分布式协调框架,以便让开发人员将精力集中在处理业务逻辑上。

关于“ZooKeeper”这个项目的名字,其实也有一段趣闻。在立项初期,考虑到之前内部很多项目都是使用动物的名字来命名的(例如著名的Pig项目),雅虎的工程师希望给这个项目也取一个动物的名字。时任研究院的首席科学家RaghuRamakrishnan开玩笑地说:“在这样下去,我们这儿就变成动物园了!”此话一出,大家纷纷表示就叫动物园管理员吧一一一因为各个以动物命名的分布式组件放在一起,雅虎的整个分布式系统看上去就像一个大型的动物园了,而Zookeeper正好要用来进行分布式环境的协调一一于是,Zookeeper的名字也就由此诞生了。

二、zookeeper简介

zookeeper是个针对大型分布式系统的高可用、高性能且具有一致性的开源协调服务,被广泛使用。它使得开发人员可以更加专注于应用本身的逻辑,而不是协同工作上。

zookeeper不适合用作海量数据的数据存储,对于需要存储海量应用数据的场景,建议使用数据库和分布式文件系统,所以设计分布式应用建议做到应用数据与协同数据的分离,使用zookeeper存储协同数据。

zookeeper有许多典型应用场景,如数据发布/订阅,负载均衡,命名服务,集群管理,分布式锁,分布式队列等。

zookeeper有很多成功的应用案例,如HBase(一个数据存储仓库),Kafka(一个基于发布-订阅模型的消息系统),dubbo(一个开源的分布式服务框架,其建议使用Zookeeper作为服务的注册中心)等。

三、zookeeper源码环境搭建

官网:?Apache ZooKeeper

github:?GitHub - apache/zookeeper: Apache ZooKeeper

源码可以通过官网下载,也可在github下载。

笔者分析学习zookeeper源码的系列文章将选择zookeeper的3.6.3版本(这是最新的稳定版本,至少在笔者发表本文时)。

源码下载并解压完毕后,将项目导入idea(/eclipse),maven导入项目依赖后,执行mvn install即可编译项目并打包到本地仓库。这里建议不执行测试用例(否则会很耗时间),也即执行mvn install?-DskipTests。

下面我们可以简单运行一下zookeeper单机模式,并开启一个客户端连接测试。

下面以idea的操作为例介绍启动配置

?如上图,点击Edit Configurations...,出现如下界面

点击左上角的加号,选择Application

?

在这里,我们要做一系列配置。

如上图所示,右边部分的顶部是配置名字,

点击Modify options,如下图勾选

?

依次选择jdk8,zookeeper

PS:运行较新版本的zookeeper源码,应该用jdk8u211以上的版本

VM options:?-Dlog4j.configuration=file:<此处写你项目文件夹下conf目录下log4j.propeties的路径,没有尖括号>

Main class:org.apache.zookeeper.server.ZooKeeperServerMain

Program arguments:2181 <你的数据文件夹的路径(即你的zoo.cfg中dataLog配置的地址),没有尖括号>

?

?如上图,点击加号,选择如下

?

?至此,我们完成了zookeeper服务端单机版的启动配置。

对于zookeeper服务端的启动配置,大体与上面相同,服务端的MainClass是org.apache.zookeeper.ZooKeeperMain,程序参数可以填写你想测试的zookeeper指令

?

?zookeeper服务端集群版本的配置与上述类似,只需注意zoo.cfg的编写与配置,故不再赘述。

下面给出启动成功时的控制台输出(分别为zookeeper服务端单机模式,zookeeper客户端)

四、总结

本文仅是简单介绍了zookeeper,以及介绍了zookeeper源码环境搭建的流程,后续将对zookeeper的源码做具体的分析。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章           查看所有文章
加:2021-09-30 11:48:08  更:2021-09-30 11:50:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 18:33:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码