前言
由于在分布式系统内修改应用的配置文件并使其生效是一件比较繁琐的事情,机器数量少还行,如果机器数量几十台甚至几百台的话,稍不留神,就有可能遗漏某些机器,介于类似场景存在,自己花了一些时间对ZooKeeper工具进行了学习,并在很多前辈的基础上写了一个小工具,来帮助我们更加方便的管理分布式应用。Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
简介
由于ZooKeeper中文翻译为动物园管理员,并且官网中的LOGO中是一个拿着铁锹的动物管理员,故我把这个工具命名为shovel--a tool of zookeeper,意思就是管理员的一件工具。
shovel是一个分布式配置管理工具,用来替代在分布式系统中运维人员手动修改几十台甚至上百台服务器的应用配置文件并使之生效的繁琐费事的操作,极大的简化了配置文件管理的工作,提高了运维人员的效率。如果使用得当,可以有效的容灾,实现高可用,例如使用zookeeper主动管理redis的集群信息,可以有效的防止由于redis集群自身的问题,即只有master可写,若当redis的master节点crashed,则基于该redis集群的所有应用均无法正常工作,在大数据时代,数据丢失,后果将不堪设想,使用基于zookeeper的shovel工具,便可以主动的获取该信息,并把该信息同步给所有的应用,实现高可用(HA),此功能目前处于测试阶段。
shovel由两部分组成:
【shovel-ui】即zookeeper web ui工具,通过shovel-ui可以对zookeeper的数据结构进行增删改查,并且生成事件,并发布给客户端程序。
【shovel-client】订阅zookeeper目录事件,一旦所订阅的目录被改变,便针对不同应用完成相应的动作,目前版本只支持配置文件管理。如需其他功能的客户端程序,请联系作者。
拓扑图
特点
l 一处修改,所有机器实时同步
l 修改完成,立即重启服务并生效
l 友好的用户界面,使用方便
l Shove UI=zookeeper web UI,可独立使用
l 部署简单,只需要解压运行脚本即可,无需安装tomcat服务
l linux环境下均可使用,可移植性强
l 简单的权限管理,普通用户只读,管理员可以修改