Linux上安装Zookeeper以及一些注意事项

最近打算出一个系列,介绍Dubbo的使用。


分布式应用现在已经越来越广泛,Spring Could也是一个不错的一站式解决方案,不过据我了解国内目前貌似使用阿里Dubbo的公司比较多,一方面这个框架也确实很OK,另一方面可能也是因为Dubbo的中文文档比较全的缘故,据Dubbo官网上的消息,阿里已经重新开始了对Dubbo的维护,这也算是使用Dubbo的互联网公司的福音了吧。OK,废话不多说,今天我们就先来看看如何在Linux上安装zookeeper。


了解过Dubbo的小伙伴都知道,Dubbo官方建议我们使用的注册中心就是zookeeper,zookeeper本来是Hadoop的一个子项目,现在发展成了Apache的顶级项目,看名字就知道Zookeeper就是动物园管理员,管理Hadoop(大象)、Hive(蜂房/蜜蜂)等动物。Apache上的Zookeeper分Linux版和Windows版,但是考虑到实际生产环境都是Linux,所以我们这里主要介绍Linux上Zookeeper的安装,Windows上Zookeeper的安装则比较简单,下载解压即可,和Tomcat差不多。

OK,废话不多说,接下来我们就来看看zookeeper的安装步骤。(发现微信公众号对图片拉伸之后图片不是特别清晰,小伙伴们也可以直接点击文末的原文链接去CSDN查看)


环境:

1.VMware® Workstation 12 Pro 2.CentOS7 3.zookeeper-3.4.10(本文写作时的最新稳定版)


安装步骤

1.下载zookeeper

zookeeper下载地址如下,小伙伴们可以在第一个地址中选择适合自己的zookeeper版本,也可以直接点击第二个地址下载我们本文使用的zookeeper。

1.http://mirrors.hust.edu.cn/apache/zookeeper/ 2.http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

2.将下载好的zookeeper上传到Linux服务器上

上传方式多种多样,我这里采用了xftp,小伙伴们也可以直接使用putty上传,上传结果如下:

3.将文件解压到/opt目录下

4.进入到刚刚解压好的目录中,创建两个文件夹,分别是data和logs,如下:

5.将解压后zookeeper-3.4.10文件夹下的zoo_sample.cfg文件拷贝一份命名为zoo.cfg,如下:

6.修改zoo.cfg文件,添加data和log目录,如下:

1.2888 端口号是zookeeper服务之间通信的端口 2.3888 是zookeeper 与其他应用程序通信的端口 3.initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 52000=10 秒。 4.syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 22000=4 秒 5.server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的IP地址或/etc/hosts文件中映射了IP的主机名;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

7.在 dataDir=/opt/zookeeper-3.4.10/data下创建 myid文件 编辑myid文件,并在对应的IP的机器上输入对应的编号。如在zookeeper上,myid文件内容就是1。如果只在单点上进行安装配置,那么只有一个server.1。如下:

8.在.bash_profile文件中增加zookeeper配置:

9.使配置生效

10.关闭防火墙

11.启动并测试

启动之后如果能看到Mode:standalone就表示启动成功了。

12.关闭zookeeper

13.配置开机启动zookeeper

注意注意 在centos7中,/etc/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限 chmod +x /etc/rc.d/rc.local

OK,以上就是我们在CentOS7中安装zookeeper的全过程,做好这一切之后我们就可以在Dubbo中使用这个注册中心了,这个我们放在下一篇博客中介绍。

原文发布于微信公众号 - 玩转JavaEE(gh_d1ca11234a30)

原文发表时间:2017-08-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

ONOS编程系列(一)之简单应用开发

一个ONOS application是使用maven做管理的OSGi bundle。 因此,ONOS application 可以归结为Java类和POM文件的...

39550
来自专栏决胜机器学习

Redis专题(十二) ——Redis特殊情况处理机制

Redis专题(十二) ——Redis特殊情况处理机制 (原创内容,转载请注明来源,谢谢) 一、内存淘汰 当redis的内存不足时,需要采取内存淘汰的方法,...

36780

在Ubuntu 16.04上安装MongoDB(Xenial)

在本数据库教程中,我们将一步步指导您在Ubuntu 16.04上安装MongoDB,然后再介绍MongoDB一些基本特性和功能。

48730
来自专栏linux驱动个人学习

解析Linux中的VFS文件系统之文件系统的来源与简介(一)

最近挂载了N多的文件系统,大致了不同文件系统的相应特性及挂载方式,却还是对Linux的文件系统没有从源码方面去了解。不求甚解确实不好不好。 于是借鉴一些大牛的博...

43490
来自专栏java思维导图

互联网协议入门(二)

技术文章第一时间送达! 本文来自“阮一峰的网络日志” 上一篇文章分析了互联网的总体构思,从下至上,每一层协议的设计思想。 这是从设计者的角度看问题,今天我想切换...

27580
来自专栏码洞

徒手教你使用zookeeper编写服务发现

zookeeper的内部是一个key/value存储引擎,key是以树状的形式构成了一个多级的层次结构,每一个节点既可以存储数据,又可以作为一个目录存放下一级子...

13610
来自专栏智能计算时代

Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理

术语 在我们深入到主要的体系结构文档之前,有一些定义。有些定义在行业中有些争议,但是它们是Envoy在整个文档和代码库中如何使用它们的,因此很快就会出现。 主机...

37530
来自专栏程序员互动联盟

【专业技术】如何在Linux中添加新的系统调用

系统调用是应用程序和操作系统内核之间的功能接口。其主要目的是使得用户可以使用操作系统提供的有关设备管理、输入/输入系统、文件系统和进程控制、通信以及存储管理等方...

26440
来自专栏微信公众号:Java团长

互联网协议入门(二)

这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的。

8220
来自专栏源哥的专栏

客户端数据集/服务端数据集的原理和设计

最近在开发一个比较大型的项目,主要采用Activex控件做底层操作,采用Javascript做逻辑控制和处理,采用Ajax实现服务端与客户端之间的交互,而在实际...

9040

扫码关注云+社区

领取腾讯云代金券