一种基于ZOOKEEPER的配置更新装置及其方法与流程

文档序号:12729193阅读:207来源:国知局
一种基于ZOOKEEPER的配置更新装置及其方法与流程

本发明涉及通信技术领域,更具体地说,涉及一种基于ZOOKEEPER的配置更新装置及其方法。



背景技术:

ZOOKEEPER是一个分布式的,开放源码的分布式应用程序协调服务,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。一个ZOOKEEPER服务器可以连接多台应用服务器。一个应用程序包含多个应用程序实例,并且每个应用程序示例在其中一台应用服务器中运行。

现有技术中,各个项目各个工程都是使用自己的配置文件,在应用程序实例初始化时,以硬编码的方式注入到程序中的。该方式的主要缺陷在于:使用同一个配置时,各个配置配置文件都要配置同一个配置项,修改时经常忘记修改,且每次修改都需要重启每个应用程序实例,然后通过ZOOKEEPER服务器将新的配置发送给每个应用程序实例进行重新硬编码,才可以实现配置项的修改,因而该方法无法实现在应用程序不重启的前提下对应用程序实例进行配置更新,从而影响线上体验。



技术实现要素:

本发明提供了一种基于ZOOKEEPER的配置更新装置及其方法,以解决现有技术中无法实现在应用程序不重启的前提下对应用程序实例进行配置更新的问题。

为解决上述技术问题,本发明提供一种基于ZOOKEEPER的配置更新装置,包括:接收模块及更新模块,其中:

所述接收模块用于在ZOOKEEPER集群中的配置项发生配置信息更新时,接收ZOOKEEPER集群广播的ZOOKEEPER广播消息,所述ZOOKEEPER广播消息中包括所述配置项的配置更新信息,所述ZOOKEEPER集群中的所述配置项为至少两个应用程序实例共用;

所述更新模块用于根据所述配置更新信息对本地缓存中的配置信息进行更新。

在一些实施例中,还包括查询模块,用于接收配置调用命令;根据所述配置调用命令查询所述本地缓存中的配置信息;若在所述本地缓存中查询到对应的配置信息,则从所述本地缓存中获取对应的配置信息;若在所述本地缓存中未查询到对应的配置信息,则从所述ZOOKEEPER集群中查询对应的配置信息;若在所述ZOOKEEPER集群总查询到对应的配置信息,则从所述ZOOKEEPER集群汇中获取对应的配置信息,并将获取到的配置信息更新到所述本地缓存。

在一些实施例中,所述装置还包括备份模块,用于将所述配置更新信息同步备份到数据库中,所述数据库中的备份信息用于需要时进行信息恢复。

在一些实施例中,所述装置还包括通知模块,用于在所述ZOOKEEPER集群中配置与各个配置项对应的节点;在配置项发生配置信息更新时,通过触发对应的节点发生变更的方式,触发所述ZOOKEEPER集群广播对应类型的所述ZOOKEEPER广播消息。

在一些实施例中,所述接收所述ZOOKEEPER集群广播的ZOOKEEPER广播消息为:在线接收所述ZOOKEEPER集群广播的ZOOKEEPER广播消息;

所述根据所述配置更新信息对本地缓存中的配置信息进行更新为:在线根据所述配置更新信息对本地缓存中的配置信息进行更新。

本发明同时还提供了一种基于ZOOKEEPER的配置更新方法,包括:

若ZOOKEEPER集群中的配置项发生配置信息更新,则接收ZOOKEEPER集群广播的ZOOKEEPER广播消息,所述ZOOKEEPER广播消息中包括所述配置项的配置更新信息,所述ZOOKEEPER集群中的所述配置项为至少两个应用程序实例共用;

根据所述配置更新信息对本地缓存中的配置信息进行更新。

在一些实施例中,所述方法还包括

接收配置调用命令;

根据所述配置调用命令查询所述本地缓存中的配置信息;

若在所述本地缓存中查找到对应的配置信息,则从所述本地缓存中获取对应的配置信息;

若在所述本地缓存中未查找到对应的配置信息,则从所述ZOOKEEPER集群中查询对应的配置信息;

若在所述ZOOKEEPER集群中查找到对应的配置信息,则从所述ZOOKEEPER集群中获取对应的配置信息,并将获取到的配置信息更新到所述本地缓存。

在一些实施例中,所述ZOOKEEPER集群中的配置项发生配置信息更新还包括:

将所述配置更新信息同步备份到数据库中,所述数据库中的备份信息用于需要时进行信息恢复。

在一些实施例中,在所述接收ZOOKEEPER集群广播的ZOOKEEPER广播消息之前,还包括:

在所述ZOOKEEPER集群中配置与各个配置项对应的节点;

若配置项发生配置信息更新,则通过触发对应的节点发生变更的方式,触发所述ZOOKEEPER集群广播对应类型的所述ZOOKEEPER广播消息。

在一些实施例中,所述接收所述ZOOKEEPER集群广播的ZOOKEEPER广播消息为:在线接收所述ZOOKEEPER集群广播的ZOOKEEPER广播消息;

所述根据所述配置更新信息对本地缓存中的配置信息进行更新为:在线根据所述配置更新信息对本地缓存中的配置信息进行更新。

本发明的有益效果是:

本发明提供了一种基于ZOOKEEPER的配置更新装置及其方法,该方法通过在ZOOKEEPER集群中的配置项发生配置信息更新时,接收ZOOKEEPER集群广播的ZOOKEEPER广播消息,所述ZOOKEEPER广播消息中包括所述 配置项的配置更新信息,所述ZOOKEEPER集群中的所述配置项为至少两个应用程序实例共用,根据所述配置更新信息对本地缓存中的配置信息进行更新;ZOOKEEPER集群将更新的配置信息自动推送给客户端更新到本地缓存,避免了人为手动的更新配置信息,解决了现有技术无法实现在应用程序不重启的前提下对应用程序实例进行配置更新的问题,提高了用户线上的体验。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图。

图2为如图1所示的移动终端的无线通信系统示意图。

图3为本发明第一实施例提供的基于ZOOKEEPER的配置更新装置的结构框图。

图4为本发明第二实施例提供的一种服务器的结构框图。

图5为本发明第三实施例提供的基于ZOOKEEPER的配置更新方法的流程图。

图6为本发明第四实施例提供的基于ZOOKEEPER的配置更新方法的流程图。

图7为本发明实施例提供的ZOOKEEPER的配置信息的更新界面显示图。

图8为本发明实施例提供的客户端根据推送的配置更新信息更新配置信息的流程图。

图9为本发明实施例提供的另一种服务器的结构框图。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合 地使用。

移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端,然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。

图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图。

移动终端100可以包括无线通信单元110、用户输入单元120、输出单元130、存储器140、控制器150和电源单元160等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件,可以替代地实施更多或更少的组件,将在下面详细描述移动终端的元件。

无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信系统或网络之间的无线电通信以下载应用等。例如,无线通信单元可以包括移动通信模块111、无线互联网模块112中的至少一个。

移动通信模块111将无线电信号发送到基站(例如,接入点、节点B等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。

无线互联网模块112支持移动终端的无线互联网接入。该模块可以内部或外部地耦接到终端。该模块所涉及的无线互联网接入技术可以包括WLAN(无线LAN)(Wi-Fi)、Wibro(无线宽带)、Wimax(全球微波互联接入)、HSDPA(高速下行链路分组接入)等等。

用户输入单元120可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。用户输入单元120允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆、传感器(例如本发明涉及的电容式位移传感器)等等。特别地,当触摸板以层的形式叠加在显示模块131上时,可 以形成触摸屏。

输出单元130可以包括显示模块131等。显示模块131可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示模块131可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(UI)或图形用户界面(GUI)。当移动终端100处于视频通话模式或者图像捕获模式时,显示模块131可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的UI或GUI等等。

同时,当显示模块131和触摸板以层的形式彼此叠加以形成触摸屏时,显示模块131可以用作输入装置和输出装置。显示模块131可以包括液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、有机发光二极管(OLED)显示器、柔性显示器、三维(3D)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为TOLED(透明有机发光二极管)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示模块(或其它显示装置),例如,移动终端可以包括外部显示模块(未示出)和内部显示模块(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。

存储器140可以存储由控制器150执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,垃圾文件列表、系统文件/加密文件列表、白名单添加对象的列表等等)。而且,存储器140可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。

存储器140可以包括至少一种类型的存储介质,存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器140的存储功能的网络存储装置协作。

控制器150通常控制移动终端的总体操作。例如,控制器150执行与语音通话、数据通信、视频通话等等相关的控制和处理。另外,控制器150可以包括 用于再现(或回放)多媒体数据的多媒体模块151,多媒体模块151可以构造在控制器150内,或者可以构造为与控制器150分离。控制器150可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。

本发明提供的基于ZOOKEEPER的配置更新装置中,实现接收模块、更新模块、查询模块、备份模块和通知模块的功能的软件代码可存储在存储器140中,并由控制器150执行或编译后执行。

电源单元160在控制器150的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。

这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器150中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器140中并且由控制器150执行。

至此,己经按照其功能描述了移动终端。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型移动终端等等的各种类型的移动终端中的滑动型移动终端作为示例。因此,本发明能够应用于任何类型的移动终端,并且不限于滑动型移动终端。

如图1中所示的移动终端100可以被构造为利用经由帧或分组发送数据的诸如有线和无线通信系统以及基于卫星的通信系统来操作。

现在将参考图2描述其中根据本发明的移动终端能够操作的通信系统。

这样的通信系统可以使用不同的空中接口和/或物理层。例如,由通信系统使用的空中接口包括例如频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)和通用移动通信系统(UMTS)(特别地,长期演进(LTE))、全球移动通信系统(GSM)等等。作为非限制性示例,下面的描述涉及CDMA通信系统, 但是这样的教导同样适用于其它类型的系统。

参考图2,CDMA无线通信系统可以包括多个移动终端100、多个基站(BS)270、基站控制器(BSC)275和移动交换中心(MSC)280。MSC280被构造为与公共电话交换网络(PSTN)290形成接口。MSC280还被构造为与可以经由回程线路耦接到基站270的BSC275形成接口。回程线路可以根据若干己知的接口中的任一种来构造,接口包括例如E1/T1、ATM,IP、PPP、帧中继、HDSL、ADSL或xDSL。将理解的是,如图2中所示的系统可以包括多个BSC275。

每个BS270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天线覆盖的每个分区放射状地远离BS270。或者,每个分区可以由用于分集接收的两个或更多天线覆盖。每个BS270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱(例如,1.25MHz,5MHz等等)。

分区与频率分配的交叉可以被称为CDMA信道。BS270也可以被称为基站收发器子系统(BTS)或者其它等效术语。在这样的情况下,术语"基站"可以用于笼统地表示单个BSC275和至少一个BS270。基站也可以被称为"蜂窝站"。或者,特定BS270的各分区可以被称为多个蜂窝站。

如图2中所示,广播发射器(BT)295将广播信号发送给在系统内操作的移动终端100。如图1中所示的广播接收模块111被设置在移动终端100处以接收由BT295发送的广播信号。在图2中,示出了几个全球定位系统(GPS)卫星300。卫星300帮助定位多个移动终端100中的至少一个。

在图2中,描绘了多个卫星300,但是理解的是,可以利用任何数目的卫星获得有用的定位信息。如图1中所示的GPS模块115通常被构造为与卫星300配合以获得想要的定位信息。替代GPS跟踪技术或者在GPS跟踪技术之外,可以使用可以跟踪移动终端的位置的其它技术。另外,至少一个GPS卫星300可以选择性地或者额外地处理卫星DMB传输。

作为无线通信系统的一个典型操作,BS270接收来自各种移动终端100的反向链路信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定基站270接收的每个反向链路信号被在特定BS270内进行处理。获得的数据被转发给相关的BSC275。BSC提供通话资源分配和包括BS270之间的软切 换过程的协调的移动管理功能。BSC275还将接收到的数据路由到MSC280,其提供用于与PSTN290形成接口的额外的路由服务。类似地,PSTN290与MSC280形成接口,MSC与BSC275形成接口,并且BSC275相应地控制BS270以将正向链路信号发送到移动终端100。

基于上述移动终端硬件结构以及通信系统,提出本发明方法各个实施例。

第一实施例:

如图3所示,基于上述移动终端硬件结构以及通信系统,提出本发明的基于ZOOKEEPER的配置更新装置的实施例,具体的,本发明提供的基于ZOOKEEPER的配置更新装置3包括:接收模块31及更新模块32,其中,

接收模块31用于在ZOOKEEPER集群中的配置项发生配置信息更新时,接收ZOOKEEPER集群广播的ZOOKEEPER广播消息,所述ZOOKEEPER广播消息中包括所述配置项的配置更新信息,所述ZOOKEEPER集群中的所述配置项为至少两个应用程序实例共用。

更新模块32用于根据所述配置更新信息对本地缓存中的配置信息进行更新。

在本实施例中,对于配置更新信息的获取和更新,均是通过在线接收和缓存,具体的,所述接收所述ZOOKEEPER集群广播的ZOOKEEPER广播消息为:在线接收所述ZOOKEEPER集群广播的ZOOKEEPER广播消息;所述根据所述配置更新信息对本地缓存中的配置信息进行更新为:在线根据所述配置更新信息对本地缓存中的配置信息进行更新,不需要通过重启线上机器,该线上机器可以是用于运行对应用程序的客户端或者服务器。

在本实施例中,每个应用程序有多个应用程序实例运行于同一个客户端中,所述配置更新信息具体是通过以下方式生成:

在ZOOKEEPER集群接收到用户发送的配置指令后,ZOOKEEPER根据配置指令对ZOOKEEPER中的配置信息进行编辑,生成配置更新信息。可选的,配置更新信息是由ZOOKEEPER根据接收到的根据接收到的用户发送的配置指令生成,可选的,用户可以通过客户端发送配置指令,该配置指令包括 应用程序的相关参数,例如,支付宝的密码、数据库地址信息等等。更进一步地,配置更新信息是由ZOOKEEPER根据接收到用户在ZOOKEEPER操作界面上通过人机界面交互产生的配置指令生成,即是ZOOKEEPER对应有一个人机交互界面,配置维护人员可通过待人机交互界面将某个应用程序对应的配置信息进行修改或者通过人机交互界面根据增加的应用程序相关参数增加对应的配置信息,最后ZOOKEEPER根据修改后的配置信息生成对应的配置更新信息,其中该配置更新信息包括应用程序对应的配置修改之后的配置值。

当ZOOKEEPER集群发现有配置信息更新时,将生成的配置更新信息推送给对应的客户端或者应用服务器,配置更新装置3通过接收模块31接收ZOOKEEPER集群推送的配置更新信息。可选的该更新信息包括但不局限以下信息:应用程序的相关参数、开关配置信息、调度配置信息。其中应用程序的相关参数是指应用程序的应用相关信息,例如包含支付宝密钥,数据库地址信息等。如是人机交互界面上用户修改后的生成的应用程序相关参数的配置更新信息具体还包括支付宝密钥的配置值,数据库地址信息的具体地址配置值。

在本实施例中,所述装置还包括:查询模块33,用于在根据配置更新信息进行配置信息更新之前,接收配置调用命令;根据所述配置调用命令查询所述本地缓存中的配置信息;若在所述本地缓存中查找到对应的配置信息,则从所述本地缓存中获取对应的配置信息;若在所述本地缓存中未查找到对应的配置信息,则从所述ZOOKEEPER集群中查询对应的配置信息;若在所述ZOOKEEPER集群中查找到对应的配置信息,则从所述ZOOKEEPER集群中获取对应的配置信息,并将获取到的配置信息更新到所述本地缓存。可选的,查询模块33接收到的配置调用命令是通过在线获取调用的方式实现,即是客户端在运行对应的应用程序的同时,当需要对该应用程序的配置信息进行更新时,客户端不需要对应用程序进行停止运行,而是一边运行一边对配置信息进行在线的更新,在查询模块33将对应的配置信息更新到本地缓存后,通过更新模块32直接调用配置信息对应用程序的参数进行更新即可,不需要重新启动应用程序或者客户端等线上机器。

在本实施例中,接收模块31接收ZOOKEEPER集群推送的配置更新信息。 当接收模块31接收到ZOOKEEPER集群广播的配置更新信息,表明该客户端或者应用服务器中有需要更新的应用程序实例。假设该应用服务器为业务应用服务器1,则接收到的是针对应用程序A的所有应用程序实例的配置更新信息。

在本实施例中,对需要更新配置信息可能已经更新到本地缓存中,也有可能没有,这时就需要通过查询模块33进行查询,具体的,当需要更新时,查询模块33先获取到配置调用命令,根据调用命令先到本地缓存中查询进行更新,若本地缓存中没有,则需要到ZOOKEEPER集群中查询,将从ZOOKEEPER集群中查询到的配置信息对客户端或者应用服务器中的配置信息进行更新,并且同时也更新到本地缓存中,便于下一次的直接查询调用。

对于在发生配置信息更新后,在接收模块31接收到配置更新信息之前,为了能更及时地通知到客户端或者应用服务器,本实施例提供的配置更新装置3还设置了通知模块34,该通知模块34用与通过广播的方式进行通知,具体实现方式如下:

在得到有配置信息需要更新后,通知模块34在ZOOKEEPER集群中配置与各个配置项对应的节点,通过对节点进行Watch(观察),通过Watch发生更新的所述配置项对应的节点的方式广播配置更新通知,所述配置更新通知中包括所述配置更新信息。

在本实施例中,所述装置还包括备份模块35,用于对更新的配置信息进行备份处理,具体的是将配置更新信息同步备份到数据库中,所述数据库中的备份信息用于需要时进行信息恢复,保证配置信息的安全性。

本实施例的ZOOKEEPER的配置更新装置所提供的接收模块、更新模块、查询模块、通知模块和备份模块所实现的功能可以通过图1中的结构来实现,具体的接收模块所实现的功能有图1中的无线通信单元110来实现,可选的,通过无线信号的方式来实现配置更新信息交互。更新模块、查询模块、通知模块通过图1中的控制器150来,备份模块通过存储器140来实现,可选的,将实现上述模块的功能的软件代码可存储在存储器140中,并由控制器150执行或编译后执行,在更新完配置信息后,将所述配置信息备份到存储器140中,用于需要时进行信息恢复。

本实施例提供的基于ZOOKEEPER的配置更新装置,预先通过在线监测ZOOKEEPER配置信息是否有更新,若有更新,接收模块接收ZOOKEEPER集群广播的配置更新信息,更新模块根据该配置更新信息对本地缓存中的配置信息进行更新;该方法实现了通过实时推送配置信息,线上机器中配置信息会实时更新并生效,不需要进行线上机器的重启操作,实现了应用程序在不重启的前提下也能对应用程序实例进行配置更新,提高了线上机器的体验效果。

第二实施例:

在本发明实施例中,图1中的控制器150可以包括图3所示实施例中的接收模块31、更新模块32、查询模块33、通知模块34和备份模块35的功能。此时,上述实施例可以为:

控制器150通过在线监测ZOOKEEPER配置信息是否有更新,若有更新,接收ZOOKEEPER集群广播的ZOOKEEPER广播消息,根据该配置更新信息对本地缓存中的配置信息进行更新,其中所述ZOOKEEPER广播消息中包括所述配置项的配置更新信息,所述ZOOKEEPER集群中的所述配置项为至少两个应用程序实例共用。

图4为本实施例提供了一种服务器的结构框图,如图4所示,本实施例提供的终端至少包括:输入输出(IO)总线41、处理器42、RAM43、内存44和传感器45。其中,

输入输出(IO)总线41分别与自身所属的终端的其它部件(处理器42、存储器43、内存44和显示装置45)连接,并且为其它部件提供传送线路。

处理器42通常控制自身所属的服务器的总体操作。例如,处理器42执行计算和确认等操作。其中,处理器42可以是中央处理器(CPU)。在本实施例中,处理器42至少需要具备这样的功能:

若ZOOKEEPER集群中的配置项发生配置信息更新,则接收ZOOKEEPER集群推送的配置更新信息;

接收配置调用命令,根据所述配置调用命令从所述本地缓存中或ZOOKEEPER集群中查询对应的配置信息;

根据所述配置信息对本地缓存中的配置信息进行更新。

RAM43存储处理器可读、处理器可执行的软件代码,其包含用于控制处理器42执行本文描述的功能的指令(即软件执行功能)。在本实施例中,RAM43至少需要存储有实现处理器42执行上述功能需要的程序。

其中,本发明提供的终端天线切换装置中,实现接收模块31、更新模块32、查询模块33、通知模块34和备份模块35功能的软件代码可存储在存储器43中,并由处理器42执行或编译后执行。

内存44,一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE),RAM是其中最重要的存储器。内存44是计算机中重要的部件之一,它是与CPU进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行的,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据,只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。

传感器45,用于根据用户的操作产生对应的电容,并传输到处理器42。

在图4所示的终端构件基础上,本实施例提供的终端可以这样工作:

确定ZOOKEEPER集群中的配置项发生配置信息更新;

在所述ZOOKEEPER集群中配置与各个配置项对应的节点;

若配置项发生配置信息更新,则通过Watch发生更新的所述配置项对应的节点的方式广播配置更新通知,所述配置更新通知中包括所述配置更新信息;或者通过触发对应的节点发生变更的方式,触发所述ZOOKEEPER集群广播对应类型的所述ZOOKEEPER广播消息。

接收ZOOKEEPER集群推送的配置更新信息;

将所述配置更新信息同步备份到数据库中;

根据所述配置更新信息对本地缓存中的配置信息进行更新。

在本实施例中,对需要更新配置信息可能已经更新到本地缓存中,也有可能没有,这时就需要通过控制器150根据调用命令从本地缓存中或ZOOKEEPER集群中调用,其具体步骤包括:

接收配置调用命令;

根据所述配置调用命令查询所述本地缓存中的配置信息;

若在所述本地缓存中查找到对应的配置信息,则从所述本地缓存中获取对应的配置信息;

若在所述本地缓存中未查找到对应的配置信息,则从所述ZOOKEEPER集群中查询对应的配置信息;

若在所述ZOOKEEPER集群中查找到对应的配置信息,则从所述ZOOKEEPER集群中获取对应的配置信息,并将获取到的配置信息更新到所述本地缓存。

如图9所示,为本实施例提供的另一种服务器结构示意图。所述服务器包括:配置管理模块91、统一配置中心92和业务服务器93,其中,

配置管理模块91用于查询、管理线上配置数据及备份配置数据,防止ZOOKEEPER配置信息出错。

在本实施例中,具体的,所述配置管理模块91先确定ZOOKEEPER集群中的配置项发生配置信息更新;

在所述ZOOKEEPER集群中配置与各个配置项对应的节点;

若配置项发生配置信息更新,则通过Watch发生更新的所述配置项对应的节点的方式广播配置更新通知,所述配置更新通知中包括所述配置更新信息;

接收ZOOKEEPER集群推送的配置更新信息;

将所述配置更新信息同步备份到数据库中;

根据所述配置更新信息对本地缓存中的配置信息进行更新。

统一配置中心92用于实现ZOOKEEPER集群,配置信息统一保存在该集群。

业务服务器93通过提供的配置中心API拉取需要的配置信息。

在本实施例中,在业务服务器93更新配置信息过程中主要涉及三层数据的加载:

1)ZOOKEEPER-Client:第一层为ZOOKEEPER远程客户端的封装,当业务方项目初始化某一个用到的配置项时,将会触发ZOOKEEPER-Client对该 配置对应节点的Watch,因此当该节点变动时将会监听到ZK的类似NodeDataChanged(节点数据的改变)的广播,可以实时获取最新配置信息;

2)Ehcache:第二层为客户端本地缓存,可以大大提高系统的并发能力,当配置初始化或者接受到ZOOKEEPER-Client的配置变更时,将会把配置信息缓存只Encache中,业务中针对配置的查询都是读缓存方式实现,降低对ZK集群的压力;

3)Client-API:第三层为暴露给业务方使用API,简单易用,一行代码获取配置信息,同时可保证API获取到的配置信息是实时最新的配置信息。

本实施例提供的基于ZOOKEEPER的配置更新装置,预先通过在线监测ZOOKEEPER配置信息是否有更新,若有更新,接收模块接收ZOOKEEPER集群推送的配置更新信息,更新模块根据该配置更新信息对本地缓存中的配置信息进行更新;该方法实现了通过实时推送配置信息,线上机器中配置信息会实时更新并生效,不需要进行线上机器的重启操作,实现了应用程序在不重启的前提下也能对应用程序实例进行配置更新,提高了线上机器的体验效果。

第三实施例:

如图5所示,提出本发明基于ZOOKEEPER的配置更新方法的实施例流程图,在本实施例中,基于ZOOKEEPER的配置更新方法包括以下步骤:

S501,在ZOOKEEPER集群中的配置项发生配置信息更新时,接收ZOOKEEPER集群广播的ZOOKEEPER广播消息,所述ZOOKEEPER广播消息中包括所述配置项的配置更新信息,所述ZOOKEEPER集群中的所述配置项为至少两个应用程序实例共用。

在该步骤中,对于配置更新信息的获取和更新,均是通过在线接收和缓存,具体的,所述接收ZOOKEEPER集群广播的ZOOKEEPER广播消息为:在线接收所述ZOOKEEPER集群广播的ZOOKEEPER广播消息;所述根据所述配置更新信息对本地缓存中的配置信息进行更新为:在线根据所述配置更新信息对本地缓存中的配置信息进行更新,不需要通过重启线上机器,该线上机器可以是用于运行对应用程序的客户端或者服务器。

对于配置更新信息的生成,具体在ZOOKEEPER集群接收到用户发送的 配置指令后,ZOOKEEPER根据配置指令对ZOOKEEPER中的配置信息进行编辑,生成配置更新信息。可选的,用户可以通过客户端发送配置指令,该配置指令包括应用程序的相关参数,例如,支付宝的密码、数据库地址信息等等。更进一步地,配置更新信息是由ZOOKEEPER根据接收到用户在ZOOKEEPER操作界面上通过人机界面交互产生的配置指令生成

在本实施例中,所述更新信息包括但不局限以下信息:应用程序的相关参数、开关配置信息、调度配置信息。其中应用程序的相关参数是指应用程序的应用相关信息,例如包含支付宝密钥,数据库地址信息等。如是人机交互界面上用户修改后的生成的应用程序相关参数的配置更新信息具体还包括支付宝密钥的配置值,数据库地址信息的具体地址配置值。

在该步骤中,还包括在ZOOKEEPER集群中配置与各个配置项对应的节点,通过对节点进行Watch(观察),通过Watch发生更新的所述配置项对应的节点的方式广播配置更新通知,所述配置更新通知中包括所述配置更新信息,或者通过触发对应的节点发生变更的方式,触发所述ZOOKEEPER集群广播对应类型的所述ZOOKEEPER广播消息。可选的,所述ZOOKEEPER集群中的配置项为至少两个应用程序实例共用。

S502,根据所述配置更新信息对本地缓存中的配置信息进行更新。

在该步骤中,在更新本地缓存中的配置信息具体从ZOOKEEPER集群中查找到对应的配置信息,则从所述ZOOKEEPER集群中获取对应的配置信息,并将获取到的配置信息更新到所述本地缓存。

在本实施例中,在发现ZOOKEEPER集群中存在配7F6E信息需要更新后,具体是通过以下方式来实现:

接收配置调用命令;

根据所述配置调用命令查询所述本地缓存中的配置信息;

若在所述本地缓存中查找到对应的配置信息,则从所述本地缓存中获取对应的配置信息;

若在所述本地缓存中未查找到对应的配置信息,则从所述ZOOKEEPER集群中查询对应的配置信息;

若在所述ZOOKEEPER集群中查找到对应的配置信息,则从所述ZOOKEEPER集群中获取对应的配置信息,并将获取到的配置信息更新到所述本地缓存。

在本实施例中,在根据配置更新信息对本地缓存的配置信息更新完成后,为了便于后续操作中出现配置信息混乱时的恢复处理,该方法还包括,将配置更新信息同步备份到数据库中,保证数据的安全性。

上述方法,是在每个应用程序实例中都包含有一个内存缓存的前提下,再对每一个应用程序实例增加一个文件缓存,其中文件缓存也用于存储配置信息,并且当应用服务器接收到配置更新之后,对应用程序实例中的内存缓存进行配置更新的同时,也对应用程序实例中的文件缓存做同样的更新。这样可以保证当内存缓存出现数据丢失或者损坏时,可以从应用程序实例的文件缓存中去获取配置信息,从而可以保证配置信息更加安全地存储于本地,无需再去从ZOOKEEPER中获取配置更新信息,提高了安全性以及提高了系统效率。

此外,当每个应用程序实例中都存储有一个内存缓存和文件缓存时,当应用程序实例需要调用配置信息时,可以直接从内存缓存或者文件缓存中去获取需要的配置信息,而无需再从ZOOKEEPER中去获取。

本实施例提供的基于ZOOKEEPER的配置更新方法,该方法通过在ZOOKEEPER集群中的配置项发生配置信息更新时,接收ZOOKEEPER集群推送的配置更新信息,根据所述配置更新信息对本地缓存中的配置信息进行更新;ZOOKEEPER集群将更新的配置信息自动推送给客户端更新到本地缓存,避免了人为手动的更新配置信息,解决了现有技术无法实现在应用程序不重启的前提下对应用程序实例进行配置更新的问题,提高了用户线上的体验。

第四实施例:

如图6所示,提出本发明基于ZOOKEEPER的配置更新方法的完整流程图,具体的本实施例以通过人机交互界面进行配置信息的编辑修改,配置更新方法包括以下步骤:

S601,维护人员通过在ZOOKEEPER对应的人机交互界面上进行配置信息的修改或增加。

具体的,用户通过在人机交互界面上进行滑动、点击等操作输入配置指,。可选的,如图7a所示,用户进入“配置管理界面”,并点击界面中的“新增配置”按钮,进一步的弹出如图7b所示的界面,这时用户根据界面上各输入框的解析标注内容填入对应的配置信息,最后确定保存即,则返回图7c所示的界面。

S602,将编辑好的配置信息进行更新。

在该步骤中,在更新配置信息时,具体是通过以下方式来实现:

接收配置调用命令;

根据所述配置调用命令查询所述本地缓存中的配置信息;

若在所述本地缓存中查找到对应的配置信息,则从所述本地缓存中获取对应的配置信息;

若在所述本地缓存中未查找到对应的配置信息,则从所述ZOOKEEPER集群中查询对应的配置信息;

若在所述ZOOKEEPER集群中查找到对应的配置信息,则从所述ZOOKEEPER集群中获取对应的配置信息,并将获取到的配置信息更新到所述本地缓存。

可选的,通过点击图7c中的“编辑”按钮,然后弹出如图7d的显示界面,然后直接点击界面中的“更新”按钮即可实现配置信息的更新。

S603,客户端接收ZOOKEEPER集群推送的配置更新信息,并对本地缓存的配置信息进行更新。

如图8所示,客户端根据推送的配置更新信息进行本地缓存的配置信息进行更新的处理步骤包括:

S801,客户端加载配置更新信息。

S802,客户端通过API发起配置信息调用命令。

S803,根据配置信息调用命令到本地缓存中调用需要更新的配置信息,若调用失败,则执行步骤S804,反之,则执行步骤S807。

S804,从ZOOKEEPER集群中查询对应的配置信息,若查询失败,则执行步骤S805,反之,则执行步骤S806。

S805,从本地缓存中调用默认的配置信息进行更新。

S806,将从ZOOKEEPER集群中查询到的配置信息更新到本地缓存中。

S807,返回加载配置更新信息。

综上所述,本发明实施例提供的基于ZOOKEEPER的配置更新装置及其方法,该方法通过在ZOOKEEPER集群中的配置项发生配置信息更新时,接收ZOOKEEPER集群推送的配置更新信息,根据所述配置更新信息对本地缓存中的配置信息进行更新;ZOOKEEPER集群将更新的配置信息自动推送给客户端更新到本地缓存,避免了人为手动的更新配置信息,解决了现有技术无法实现在应用程序不重启的前提下对应用程序实例进行配置更新的问题,提高了用户线上的体验。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述 的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1