处理Zookeeper集群数据的客户端及方法

文档序号:9649021阅读:419来源:国知局
处理Zookeeper集群数据的客户端及方法
【技术领域】
[0001]本发明涉及通信领域,尤其涉及处理Zookeeper集群数据的客户端及方法。
【背景技术】
[0002]ZooKeeper是一个开源的、高性能、可扩展的分布式应用程序协调服务,以Paxos算法为基础,实现同步服务、配置维护和命名服务等分布式应用。
[0003]ZooKeeper的数据存储有DataTree (当前ZooKeeper集群中最新的数据,存储在内存中)和FileTxnSnapLog(disk持久化SnapShot和TxnLog)两种方式。由于内存数据重启后就消失了,磁盘文件数据不是明文的,可视化非常困难,因此要把这些数据拿出来展示以及读写,是很困难的。
[0004]ZooKeeper还提供了一个非常简单的客户端,它能够处理节点的前提是该节点只能有一个字段,并且需要通过控制台来操作。假如遇到上千台基站和几十台网关的云化场景,且每个节点都有数十个字段,则仅使用ZooKeeper提供的客户端来进行处理操作是不可实现的。
[0005]因此目前需要提出一种能够快速给用户展现ZooKe印er集群节点数据的客户端,在节点字段类型较多的复杂应用场景,该客户端也可以进行处理操作。

【发明内容】

[0006]为了克服现有技术的缺陷,本发明提出了一种通过浏览器访问并操作ZooKe印er集群(简称ZK)节点数据的客户端,该客户端的总体结构图如图1所示,具体为:
[0007]所述客户端的前台包含一个通过浏览器访问的主页面,该主页面包括导航树和操作页面,所述导航树采用树形结构展示后台推送的Zookeeper集群数据,所述操作页面用于用户对导航树展示的Zookeeper集群数据进行处理操作;
[0008]所述客户端的后台包含一个后台服务模块和一个内存模块,后台服务模块包含一个浏览器页面服务单元、一个Zookeeper客户端服务单元、一个Zookeeper watch服务单元和一个Cometd服务单元;
[0009]所述浏览器页面服务单元用于接收所述操作页面的处理操作数据并进行合法性验证,验证通过后将数据封装成Zookeeper集群节点使用的格式;所述Zookeeper客户端服务单元用于将所述客户端注册为Zookeeper集群客户端;所述Zookeeper watch服务单元用于通过watch实时获取最新的Zookeeper集群数据并存储在所述内存模块;所述Cometd服务单元用于向前台推送所述内存模块的Zookeeper集群数据。
[0010]优选的,对于不同字段类型的Zookeeper集群节点数据,所述内存模块构建不同的对象进行存储;对于不同字段类型的处理操作数据,所述浏览器页面服务单元进行差异性封装,以保证Zookeeper集群节点能够使用封装后的数据。
[0011]优选的,所述树形结构使用Jquery Ztree JS库,前台与后台之间通过Struts2串联;前台与后台之间的数据异步交互通过Jquery Ajax框架实现。
[0012]优选的,所述内存模块中的Zookeeper集群数据的脚本是可导入/导出的。
[0013]优选的,所述树形结构以字体和图标的颜色来区分Zookeeper集群节点的状态。
[0014]优选的,所述Zookeeper集群可以是云化Zookeeper集群。
[0015]本发明还提出了一种处理Zooke印er集群数据的方法,该方法采用本发明提出的客户端,首次加载Zookeeper集群数据时需要给Zookeeper集群节点挂上Watch,其处理Zookeeper集群数据的流程如图2所示,具体包括以下步骤:
[0016]a,用户通过浏览器访问所述Zookeeper客户端的主页面,对Zookeeper集群节点的数据进行处理操作;
[0017]b,用户的处理操作数据从前台传递到后台,后台验证合法性后封装成Zookeeper集群使用的格式;
[0018]c,通过Zooke印er集群的回调接口判断本次处理操作是否成功,如果成功则继续下一步;
[0019]d,后台利用watch获取最新的Zookeeper集群数据;
[0020]e,后台通过cometd把最新的Zookeeper集群数据推送到浏览器,并为进行处理操作的Zookeeper集群节点重新挂上watch ;
[0021]f,导航树采用树形结构展示最新的Zookeeper集群数据。
[0022]本发明的优点在于:(1)利用Watch感知的特性实时获取最新的集群数据,以保证本地内存数据与实际Zookeeper集群数据实时同步,然后采用Cometd把最新的集群数据推送到浏览器,使用Ajax异步刷新页面,友好高效的保证了页面展示和实际Zookeeper集群数据的一致性。(2)用树形结构形象展示Zooke印er集群数据,使得增删改查节点等处理操作异常简单。(3)不同字段类型的数据进行差异化存储或封装,则不管应用场景多么复杂,通过本发明都可以进行处理操作,集群数据都可以在页面完整无误的展现。(4)以图标和颜色来区分集群节点状态,便于用户发现故障节点等。(5)脚本的导入和导出使得集群移植变得非常简单。
【附图说明】
[0023]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]图1是本发明提出的客户端的总体结构框图;
[0025]图2是本发明提出的处理Zookeeper集群数据的方法的流程图;
[0026]图3是本发明实施例一的SAG3000云化数据的ZK节点关系图;
[0027]图4是本发明实施例一的在操作页面处理ZK节点的操作示意图;
[0028]图5是本发明实施例二的添加并启动SAG节点的步骤流程图。
【具体实施方式】
[0029]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例;需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0030]实施例一:处理云化Zookeeper集群数据的客户端
[0031]本实施例以McWiLL网络的SAG3000云化数据为例来说明本发明客户端的具体实现,SAG3000云化数据在ZK(ZooKeeper集群)的节点关系如图3所示,SAG_GR0UP_***节点下面包含BTS_INF0、RULES、SAG_INF0节点,BTS_INF0为BTSGRP的父节点,下面包括多个BTSGRP_#*节点,SAG_INF0为SAG的父节点,下面包括多个SAG_#*节点。
[0032]本实施例的处理AG3000云化ZK数据的客户端(简称NKCLI)采用如图1所示的总体结构,其前台与后台之间通过Struts2串联,前台与后台之间的数据异步交互通过Jquery Ajax框架实现。
[0033]NKCLI的前台主页面的树形结构使用Jquery Ztree JS库,主页面主要包含导航树和操作控制区域,如图3所示。在主页面的左边为导航树,用于展示后台推送的SAG3000云化 ZK 数据,展示有 SAG_R00T、SAG_GR0UP、BTS_INF0、BTSGRP、RULES、SAG_INF0、SAG 等节点名称,单击节点前的加号或减号图标可以展开或收拢节点。其中,SAG_R00T为ZK根节点,SAG_INF0为SAG的父节点,可以对SAG进行批量启停操作,BTS_INF0为BTSGRP的父节点,可以对SAG进行批量启停操作。导航树还以字体和图标的颜色来区分Zookeeper集群节点的状态。例如,SAG_GR0UP_***的字体颜色为绿色,表示该SAG_GR0UP为启动状态,红色为停止状态,黑色为初始化状态;SAG的绿色图标为启动状态,红色图标为启动但没有排队状态,灰色图标为停止状态,黄色图标为初始化状态;BTSGRP_***的绿色图标表示已经被SAG接管,红色图标表示没有被SAG接管,字体颜色为蓝色表示手工接管,黑色为自动被SAG接管。
[0034]NKCLI主页面的右边为操作页面,用于用户对导航树展示的Zookeeper集群数据进行处理操作。图4为一个处理〃/SAG_R00T/SAG_GR0UP_0002/SAG_INF0〃节点的操作示意图。在导航树选择该节点后,点击相应处理的按钮或者右键菜单选择相应处理即可进行启动、停止或修改等处理操作。
[0035]NKCLI后台包含一个后
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1