不可不知的zookeeper小工具-zkui

不可不知的zookeeper小工具-zkui

本文主要是首先带着大家回顾一下zookeeper在大数据中的作用,然后给大家介绍一款zk的监控管理工具。

zookeeper在分布式集群的作用

1,数据发布与订阅(配置中心)

发布与订阅模型,即所谓的配置中心,顾名思义就是讲发布者将数据发布到zk节点上,共订阅者动态获取数据,实现配置的集中式管理和动态更新。例如,全局的配置信息,服务服务框架的地址列表就非常适合使用。

2,负载均衡

即软件负载均衡。最典型的是消息中间件的生产、消费者负载均衡。

3,命名服务(Naming Service)

常见的是发布者将自己的地址列表写到zookeeper的节点上,然后订阅者可以从固定名称的节点获取地址列表,链接到发布者进行相关通讯。

4,分布式通知/协调

这个利用的是zookeeper的watcher注册和异步通知机制,能够很好的实现分布式环境中不同系统间的通知与协调,实现对数据变更的实时处理。

5,集群管理与Master选举

集群管理,比如在线率,节点上线下线通知这些。Master选举可以使用临时顺序节点来实现。

6,分布式锁

分布式锁,这个主要得益于zookeeper数据的强一致性,利用的是临时节点。锁服务分为两类,一个是独占锁,另一个是控制时序。

独占,是指所有的客户端都来获取这把锁,最终只能有一个获取到。用的是临时节点。

控制时序,所有来获取锁的客户端,都会被安排得到锁,只不过要有个顺序。实际上是某个节点下的临时顺序子节点来实现的。

zkui详解

简介

zkui是zookeeper的一个web管理界面,可以对zookeeper进行CRUD操作。

github地址:

https://github.com/DeemOpen/zkui

环境要求

编译环境官方要求是jdk7,但是浪尖这里jdk8正常运行。

浪尖使用的maven版本是mvn-3.3.3

安装部署

1. 编译打包

mvn clean install

在执行结束之后,会在target目录下生成一个jar包

www.zeeklog.com  - 不可不知的zookeeper小工具-zkui

2. 配置

执行 vim config.cfg
添加如下配置

# zkui web页面访问端口
serverPort=9090

# zookeeper集群的IP地址和端口
zkServer=localhost:2181

# 设置登录zkui的用户名和密码,这里是默认值
userSet = {"users": [{ "username":"admin" , "password":"manager","role": "ADMIN" },{ "username":"appconfig" , "password":"appconfig","role": "USER" }]}

3. 启动

启动zkui也比较简单,可以直接执行

$ java -jar zkui-2.0-SNAPSHOT-jar-with-dependencies.jar

也可以使用nohup &是其变为后台进程

nohup java -jar target/zkui-2.0-SNAPSHOT-jar-with-dependencies.jar &

4. 登陆ui

访问http://localhost:9090即可看到以下界面:输入刚刚设置的用户名密码:admin/manager即可登录。

www.zeeklog.com  - 不可不知的zookeeper小工具-zkui

5. CRUD操作

www.zeeklog.com  - 不可不知的zookeeper小工具-zkui