基于Qconf的消息队列高可用系统及方法转让专利

申请号 : CN201710390305.1

文献号 : CN107315641B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 顾伟涛

申请人 : 杭州铭师堂教育科技发展有限公司

摘要 :

本发明公开了一种基于Qconf的消息队列高可用系统及方法,该系统包括应用程序端、Qconf客户端、Qconf服务端、Qconf管理端、Qconf监控节点和消息队列服务端:Qconf客户端和Qconf服务端交互,获取最新的消息队列zk服务节点信息;Qconf服务端指zookeeper集群,存储消息队列zk服务节点信息;Qconf管理端通过调用Qconf服务端接口,对消息队列zk服务节点进行添加、删除、更新和获取操作;Qconf监控节点监控所述消息队列zk服务节点存活;本发明可用性高,当消息队列集群某个成员故障时,不会影响应用程序访问消息队列集群,大大提升了消息队列服务可用性;易用性好、维护成本低、稳定性强大,通过Qconf、应用程序和消息队列解耦,调整消息队列服务,应用程序不需要修改配置,大大降低了服务耦合度。

权利要求 :

1.一种基于Qconf的消息队列高可用系统,其特征在于,该系统包括应用程序端、Qconf客户端、Qconf服务端、Qconf管理端、Qconf监控节点和消息队列服务端:应用程序端:运行应用程序的服务器,应用程序调用对应的Qconf扩展接口,解析传入的参数:zk服务节点,得到消息队列的IP和端口,然后应用程序和所述消息队列建立连接,进而和所述消息队列交互读写请求;

Qconf客户端:包括Qconf agent服务、应用程序对应的Qconf扩展;Qconf客户端和应用程序同机部署,用于和Qconf服务端交互,获取最新的消息队列zk服务节点信息;

Qconf服务端:部署zookeeper集群,存储消息队列zk服务节点信息;

Qconf管理端:通过调用Qconf服务端接口,对消息队列zk服务节点进行添加、删除、更新和获取操作,Qconf管理端部署Qconf管理扩展,用于管理人员管理zk服务节点;

Qconf监控节点:部署Qconf监控服务,监控消息队列zk服务节点存活,能够实现所述消息队列zk服务节点上下线;在一台服务器上部署Qconf监控节点,可以监控Qconf服务端所有的消息队列zk服务节点;

消息队列服务端:是部署消息队列的服务器,采用集群形式部署消息队列,不同的消息队列集群,采用端口号唯一标识;所有消息队列集群的IP和端口信息,保存在消息队列元信息中。

2.根据权利要求1所述的一种基于Qconf的消息队列高可用系统,其特征在于,所述消息队列服务端包括消息队列服务管理模块:采用一个磁盘节点和两个内存节点形式部署消息队列;一个消息队列集群中所有成员的端口保持一致,不同的消息队列集群,端口不同,采用端口唯一标识所述消息队列集群。

3.根据权利要求1所述的一种基于Qconf的消息队列高可用系统,其特征在于,所述Qconf管理端包括管理zk服务节点模块,需要传入的参数:zk服务节点、消息队列的IP以及端口和zookeeper连接字符串;zookeeper连接字符串表示zookeeper集群所有成员的IP和端口组成的字符串;

通过扫描消息队列元信息,获取消息队列IP和端口,所述端口是指zk服务节点对应的消息队列集群的端口,每个zk服务节点表示一个消息队列集群;所述zk服务节点的值是该端口对应的消息队列集群所有成员的IP和端口;对zk服务节点的操作包括:调用Qconf管理端接口,进行添加zk服务节点、为zk服务节点新增值、为zk服务节点删除值、zk服务节点上下线、获取zk服务节点的所有成员。

4.根据权利要求1所述的一种基于Qconf的消息队列高可用系统,其特征在于,所述Qconf客户端包括Qconf客户端管理模块,需要传入的参数:zookeeper连接字符串;按照Qconf部署要求,部署Qconf客户端服务,Qconf客户端配置文件需要设置zookeeper连接字符串,然后启动Qconf客户端服务;查看Qconf客户端进程是否启动;如果修改了Qconf客户端配置文件,需要重启Qconf客户端服务;部署Qconf客户端服务后,按照Qconf扩展部署要求在应用程序端部署应用程序相应的Qconf扩展。

5.根据权利要求1所述的一种基于Qconf的消息队列高可用系统,其特征在于,所述应用程序端包括解析服务节点模块和应用程序访问模块;

所述解析服务节点模块需要传入的参数:zk服务节点;在应用程序端部署Qconf客户端服务后,应用程序调用相应的Qconf扩展接口解析zk服务节点,得到消息队列集群成员;

所述应用程序访问模块需要传入的参数:消息队列的IP和端口;解析服务节点模块执行结束后,得到某个消息队列的IP和端口,应用程序根据所述消息队列IP和端口,和所述消息队列建立连接,应用程序可以发送读写请求,消息队列处理这些读写请求。

6.根据权利要求1所述的一种基于Qconf的消息队列高可用系统,其特征在于,所述Qconf监控节点包括监控服务节点模块:需要传入参数:zookeeper集群所有成员IP和端口;

在Qconf监控节点部署Qconf监控服务,修改Qconf监控配置文件中zookeeper参数值为所述zookeeper集群所有成员IP和端口,然后启动Qconf监控服务;查看启动进程;Qconf监控服务启动后,如果所述消息队列某个成员故障,所述消息队列集群对应的zk服务节点下线所述消息队列集群的故障成员,这样,应用程序每次获取到的消息队列服务都是状态存活的。

7.根据权利要求6所述的一种基于Qconf的消息队列高可用系统,其特征在于,所述Qconf监控节点还包括服务节点web管理模块:在Qconf监控节点部署web管理页面,对所述zk服务节点进行添加、删除、更新和查看操作。

8.一种应用权利要求1-7任一项系统的消息队列高可用方法,其特征在于,该方法包括以下步骤:

(1)在多台服务器上部署消息队列集群,在消息队列元信息中记录消息队列集群所有成员的IP和端口;

(2)在Qconf服务端部署zookeeper集群,zookeeper集群所有成员的IP和端口记为zookeeper连接字符串;zookeeper集群存储zk服务节点信息,包括zk服务节点名称和zk服务节点值;在Qconf管理端部署Qconf管理扩展,调用Qconf管理扩展接口,对zk服务节点进行添加、删除、新增和获取操作;

(3)Qconf监控节点调用Qconf服务端接口,获取到Qconf服务端所有的zk服务节点以及zk服务节点值,检测端口存活进行对相应的zk服务节点上下线操作;

(4)在Qconf客户端部署Qconf客户端服务,Qconf客户端自动和Qconf服务端建立连接,从Qconf客户端可以获取到Qconf服务端最新的zk服务节点;

(5)应用程序端的应用程序访问模块传入zk服务节点给解析服务节点模块,解析服务节点模块调用Qconf客户端服务获取到zk服务节点对应的消息队列的IP和端口,然后返回给应用程序访问模块。

说明书 :

基于Qconf的消息队列高可用系统及方法

技术领域

[0001] 本发明属于计算机技术领域,主要应用于消息队列服务高可用场景,用于提升消息队列服务可用性和灵活性。

背景技术

[0002] 对于互联网公司而言,随着业务需求越来越复杂,为了降低服务之间的耦合度,提升服务模块化,消息队列使用越来越广泛,消息队列服务的可用性也显得越来越重要。传统消息队列使用方法具有如下缺点:
[0003] (1)可用性低:一旦某个消息队列服务故障,应用程序就无法访问消息队列服务。
[0004] (2)维护成本高:采用了比较复杂的架构提高消息队列可用性,运维成本高。
[0005] (3)引入新的隐患:由于采用的高可用架构本身存在隐患,导致整个高可用架构可用性不高。
[0006] (4)易用性差:虽然实现了高可用,但是不方便使用,导致可操作性低下。

发明内容

[0007] 本发明针对现有技术的不足,提供一种基于Qconf的消息队列高可用系统及方法,基于Qconf可以注册消息队列zk服务节点,不但可以实现消息队列服务高可用,同时可以实现负载均衡,该系统可以支持大规模消息队列高可用和负载均衡。
[0008] 本发明的目的是通过以下技术方案来实现的:一种基于Qconf的消息队列高可用系统,该系统包括应用程序端、Qconf客户端、Qconf服务端、Qconf管理端、Qconf监控节点和消息队列服务端:
[0009] 应用程序端:运行应用程序的服务器,应用程序调用对应的Qconf扩展接口,解析传入的参数:zk服务节点,得到消息队列的IP和端口,然后应用程序和所述消息队列建立连接,进而和所述消息队列交互读写请求;
[0010] Qconf客户端:包括Qconf agent服务、应用程序对应的Qconf扩展;Qconf客户端和应用程序同机部署,用于和Qconf服务端交互,获取最新的消息队列zk服务节点信息;
[0011] Qconf服务端:部署zookeeper集群,存储消息队列zk服务节点信息;
[0012] Qconf管理端:通过调用Qconf服务端接口,对消息队列zk服务节点进行添加、删除、更新和获取操作,Qconf管理端部署Qconf管理扩展,用于管理人员管理zk服务节点;
[0013] Qconf监控节点:部署Qconf监控服务,监控消息队列zk服务节点存活,能够实现所述消息队列zk服务节点上下线;在一台服务器上部署Qconf监控节点,可以监控Qconf服务端所有的消息队列zk服务节点;
[0014] 消息队列服务端:是部署消息队列的服务器,采用集群形式部署消息队列,不同的消息队列集群,采用端口号唯一标识;所有消息队列集群的IP和端口信息,保存在消息队列元信息中。
[0015] 进一步地,所述消息队列服务端包括消息队列服务管理模块:采用一个磁盘节点和两个内存节点形式部署消息队列;一个消息队列集群中所有成员的端口保持一致,不同的消息队列集群,端口不同,采用端口唯一标识所述消息队列集群。
[0016] 进一步地,所述Qconf管理端包括管理zk服务节点模块,需要传入的参数:zk服务节点、消息队列的IP以及端口和zookeeper连接字符串;zookeeper连接字符串表示zookeeper集群所有成员的IP和端口组成的字符串;
[0017] 通过扫描消息队列元信息,获取消息队列IP和端口,所述端口是指zk服务节点对应的消息队列集群的端口,每个zk服务节点表示一个消息队列集群;所述zk服务节点的值是该端口对应的消息队列集群所有成员的IP和端口;对zk服务节点的操作包括:添加zk服务节点:调用Qconf管理端接口,进行添加zk服务节点、为zk服务节点新增值、为zk服务节点删除值、zk服务节点上下线、获取zk服务节点的所有成员。
[0018] 进一步地,所述Qconf客户端包括Qconf客户端管理模块,需要传入的参数:zookeeper连接字符串;按照Qconf部署要求,部署Qconf客户端服务,Qconf客户端配置文件需要设置zookeeper连接字符串,然后启动Qconf客户端服务;查看Qconf客户端进程是否启动;如果修改了Qconf客户端配置文件,需要重启Qconf客户端服务;部署Qconf客户端服务后,按照Qconf扩展部署要求在应用程序端部署应用程序相应的Qconf扩展。
[0019] 进一步地,所述应用程序端包括解析服务节点模块和应用程序访问模块;
[0020] 所述解析服务节点模块需要传入的参数:zk服务节点;在应用程序端部署Qconf客户端服务后,应用程序调用相应的Qconf扩展接口解析zk服务节点,得到消息队列集群成员;
[0021] 所述应用程序访问模块需要传入的参数:消息队列的IP和端口;解析服务节点模块执行结束后,得到某个消息队列的IP和端口,应用程序根据所述消息队列IP和端口,和所述消息队列建立连接,应用程序可以发送读写请求,消息队列处理这些读写请求。
[0022] 进一步地,所述Qconf监控节点包括监控服务节点模块:
[0023] 需要传入参数:zookeeper集群所有成员IP和端口;
[0024] 在Qconf监控节点部署Qconf监控服务,修改Qconf监控配置文件中zookeeper参数值为所述zookeeper集群所有成员IP和端口,然后启动Qconf监控服务;查看启动进程;Qconf监控服务启动后,如果所述消息队列某个成员故障,所述消息队列集群对应的zk服务节点下线所述消息队列集群的故障成员,这样,应用程序每次获取到的消息队列服务都是状态存活的。
[0025] 进一步地,所述Qconf监控节点还包括服务节点web管理模块:在Qconf监控节点部署web管理页面,对所述zk服务节点进行添加、删除、更新和查看操作。
[0026] 一种基于Qconf的消息队列高可用方法,该方法包括以下步骤:
[0027] (1)在多台服务器上部署消息队列集群,在消息队列元信息中记录消息队列集群所有成员的IP和端口;
[0028] (2)在Qconf服务端部署zookeeper集群,zookeeper集群所有成员的IP和端口记为zookeeper连接字符串;zookeeper集群存储zk服务节点信息,包括zk服务节点名称和zk服务节点值;在Qconf管理端部署Qconf管理扩展,调用Qconf管理扩展接口,对zk服务节点进行添加、删除、新增和获取操作;
[0029] (3)Qconf监控节点调用Qconf服务端接口,获取到Qconf服务端所有的zk服务节点以及zk服务节点值,检测端口存活进行对相应的zk服务节点上下线操作;
[0030] (4)在Qconf客户端部署Qconf客户端服务,Qconf客户端自动和Qconf服务端建立连接,从Qconf客户端可以获取到Qconf服务端最新的zk服务节点;
[0031] (5)应用程序端的应用程序访问模块传入zk服务节点给解析服务节点模块,解析服务节点模块调用Qconf客户端服务获取到zk服务节点对应的消息队列的IP和端口,然后返回给应用程序访问模块。
[0032] 本发明的有益效果是:
[0033] (1)可用性高:当消息队列集群某个成员故障时,不会影响应用程序访问消息队列集群,大大提升了消息队列服务可用性。
[0034] (2)易用性好:应用程序只需要一行代码,就可以获得所述消息队列IP和端口,对于应用程序开发者而言,使用方便简洁。
[0035] (3)维护成本低:整个系统简单稳定,便于管理人员维护。
[0036] (4)稳定性强大:目前Qconf技术成熟,zookeeper集群本身具有高可用,整体稳定性比较好,不会引入新的隐患。
[0037] (5)降低服务耦合度:通过Qconf,应用程序和消息队列解耦,调整消息队列服务,应用程序不需要修改配置,大大降低了服务耦合度。

附图说明

[0038] 图1是本发明基于Qconf的消息队列高可用方法总体架构图;
[0039] 图2是本发明基于Qconf的消息队列高可用系统各个模块流程图。

具体实施方式

[0040] 下面结合附图和具体实施例对本发明作进一步详细说明。
[0041] 如图1所示,本发明提供的一种基于Qconf的消息队列高可用系统,该系统包括应用程序端、Qconf客户端、Qconf服务端、Qconf管理端、Qconf监控节点和消息队列服务端六个单元:
[0042] (1)应用程序端
[0043] 应用程序端是运行应用程序的Linux服务器,应用程序调用对应的Qconf扩展接口,解析传入的参数:zk(zookeeper)服务节点,得到消息队列的IP和端口,然后应用程序和所述消息队列建立连接,进而和所述消息队列交互读写请求。
[0044] (2)Qconf客户端
[0045] 包括Qconf agent服务、应用程序对应的Qconf扩展,统称为Qconf客户端。要求和应用程序同机部署,主要功能是和Qconf服务端交互,获取最新的消息队列zk服务节点信息。
[0046] (3)Qconf服务端
[0047] Qconf服务端主要是指zookeeper集群,功能是存储消息队列zk服务节点信息。zookeeper集群本身具有高可用和分布式特性,保证了Qconf服务端的可用性和可扩展性。
同时,zookeeper集群具有通知机制,一旦消息队列zk服务节点发生修改,zookeeper可以实时通知所述Qconf客户端,从而保证所述应用程序可以获取最新的消息队列zk服务节点。
[0048] (4)Qconf管理端
[0049] 通过调用Qconf服务端接口,对消息队列zk服务节点进行添加、删除、更新和获取操作,需要在Qconf管理端部署Qconf管理扩展,以便管理人员管理zk服务节点。可以采用php语言编写管理代码来管理zk服务节点,也可以在web页面上实现zk服务节点添加、删除、更新和获取功能,方便管理人员操作。
[0050] (5)Qconf监控节点
[0051] 通过Qconf管理端在Qconf服务端注册消息队列zk服务节点后,在Qconf监控节点上部署Qconf监控服务,监控所述消息队列zk服务节点存活,可以实现所述消息队列zk服务节点上下线,从而实现消息队列高可用。Qconf监控节点不仅可以监控所述消息队列zk服务节点存活,还可以获取Qconf服务端所有zk服务节点信息,从而可以在web页面展示Qconf服务端所有zk服务节点信息。
[0052] 在一台服务器上部署Qconf监控节点,可以监控Qconf服务端所有的消息队列zk服务节点。
[0053] (6)消息队列服务端
[0054] 主要是部署消息队列的服务器,一般情况下,采用集群形式部署消息队列,以便实现消息队列自身的高可用。不同的消息队列集群,采用端口号唯一标识。所有消息队列集群的IP和端口信息,保存在消息队列元信息中。所述消息队列可以是Rabbitmq消息队列,也可以是其他类型的消息队列。
[0055] 如图2所示,每个单元具体包括的模块如下:
[0056] (1)消息队列服务管理模块
[0057] 在消息队列服务端,为了提高消息队列的可用性,采用集群形式在多台服务器上部署消息队列,本发明采用一个磁盘节点和两个内存节点形式部署消息队列。
[0058] 一个消息队列集群中所有成员的端口保持一致,不同的消息队列集群,端口不同,采用端口唯一标识所述消息队列集群,便于维护和管理。
[0059] 所有的消息队列集群的IP和端口,保存在消息队列元信息中,便于管理zk服务节点模块调用。
[0060] (2)管理zk服务节点模块
[0061] 需要传入的参数:zk服务节点、消息队列的IP以及端口和zookeeper连接字符串;
[0062] zookeeper连接字符串表示zookeeper集群所有成员的IP和端口组成的字符串,如下所示:
[0063] zk_ip1:zk_port1,zk_ip2:zk_port1,zk_ip3:zk_port1
[0064] zk_port1是zookeeper集群的端口号,zk_ip1、zk_ip2、zk_ip3分别表示zookeeper集群成员的IP。
[0065] 在Qconf管理端,通过扫描所述消息队列元信息,获取到所述消息队列IP和端口,zk服务节点采用如下形式:
[0066] /db/mq/mq_端口
[0067] 说明:这里的端口是指所述zk服务节点对应的消息队列集群的端口。每个zk服务节点表示一个消息队列集群;
[0068] 所述zk服务节点的值是该端口对应的消息队列集群所有成员的IP和端口,如下所示:
[0069] IP1:port1,IP2:port1:IP3:port1
[0070] 说明:IP1、IP2和IP3分别代表所述消息队列集群所有成员的IP,port1是所述消息队列集群的端口。
[0071] 本模块主要包括:
[0072] a)添加zk服务节点:
[0073] 调用Qconf管理端接口,进行添加zk服务节点,如下所示:
[0074] $qzk=new QConfZK("zookeeper连接字符串");
[0075] $service_path="/db/mq/mq_port1";
[0076] $services_input=array("IP1:port1"=>QCONF_STATUS_UP,"IP2:port1"=>QCONF_STATUS_UP,"IP3:port1"=>QCONF_STATU S_UP);
[0077] $qzk->servicesSet($service_path,$services_input);
[0078] 说明:port1表示所述消息队列集群的端口号,所述消息队列集群中所有成员的端口号均为port1,所述成员的IP分别为IP1、IP2和IP3。
[0079] b)为zk服务节点新增值
[0080] 当某个消息队列集群需要扩容或者调整服务器时,需要为对应的zk服务节点新增值,操作如下:
[0081] $qzk=new QConfZK("zookeeper连接字符串");
[0082] $service_path="/db/mq/mq_port1";
[0083] $qzk->serviceAdd($service_path,"IP4:port1",QCONF_STATUS_UP);
[0084] 说明:IP4是新增成员的服务器IP
[0085] c)为zk服务节点删除值
[0086] 当某个消息队列集群调整或者服务器调整,需要下线某个成员时,操作如下:
[0087] $qzk=new QConfZK("zookeeper连接字符串");
[0088] $service_path="/db/mq/mq_port1";
[0089] $qzk->serviceDelete($service_path,"IP3:port1");
[0090] 说明:假设IP3服务器上的消息队列需要从对应的消息队列集群中去掉,本示例将IP3:port1对应的消息队列成员从所述zk服务节点中去掉,这样,应用程序将无法访问到IP3:port1所对应的消息队列,保证了消息队列服务高可用。
[0091] d)zk服务节点上下线
[0092] 如果zk服务节点中成员IP1:port1需要下线,可以如下操作:
[0093] $qzk=new QConfZK("zookeeper连接字符串");
[0094] $service_path="/db/mq/mq_port1";
[0095] $qzk->serviceOffline($service_path,"IP1:port1");
[0096] 上线IP1:port1操作如下:
[0097] $service_path="/db/mq/mq_port1";
[0098] $qzk->serviceUp($service_path,"IP1:port1");
[0099] e)获取zk服务节点的所有成员
[0100] 可以通过如下方式获取到某个zk服务节点对应的所有所述消息队列集群成员:
[0101] $qzk=new QConfZK("zookeeper连接字符串");
[0102] $service_path="/db/mq/mq_port1";
[0103] $services_list=$qzk->servicesGet($service_path);
[0104] (3)Qconf客户端管理模块
[0105] 需要传入的参数:zookeeper连接字符串
[0106] 在Qconf客户端,按照Qconf部署要求,需要部署Qconf客户端服务,所述Qconf客户端配置文件需要设置所述zookeeper连接字符串,然后启动Qconf客户端服务:
[0107] #cd/usr/local/qconf/bin&&sh agent-cmd.sh.sh start
[0108] 查看Qconf客户端进程是否启动,如下:
[0109] #ps–ef|egrep qconf_agent|grep–v grep
[0110] 如果修改了Qconf客户端配置文件,需要重启Qconf客户端服务:
[0111] #cd/usr/local/qconf/bin&&sh agent-cmd.sh restart
[0112] 部署Qconf客户端服务后,需要按照Qconf扩展部署要求在应用程序端部署应用程序相应的Qconf扩展。
[0113] (4)解析服务节点模块
[0114] 需要传入的参数:zk服务节点
[0115] 在应用程序端,部署Qconf客户端服务后,应用程序调用相应的Qconf扩展接口解析所述zk服务节点,得到所述消息队列集群成员,如下所示:
[0116] $mq_host=QConf::getHost("db/mq/mq_port1");
[0117] 说明:port1是某个消息队列集群的标识,db/mq/mq_port1标识port1对应的消息队列集群的Qconfzk服务节点,通过如上操作,可以得到port1对应的消息队列集群的一个成员。每次调用如上Qconf扩展接口,得到不同的所述成员,从而实现所述消息队列负载均衡。
[0118] (5)应用程序访问模块
[0119] 需要传入的参数:消息队列的IP和端口;
[0120] 解析服务节点模块执行结束后,得到某个消息队列的IP和端口,然后,所述应用程序根据所述消息队列IP和端口,和所述消息队列建立连接,接下来,应用程序可以发送读写请求,消息队列处理这些读写请求。
[0121] (6)监控服务节点模块
[0122] 需要传入参数:zookeeper集群所有成员IP和端口
[0123] 在Qconf监控节点部署Qconf监控服务,修改Qconf监控配置文件中zookeeper参数值为所述zookeeper集群所有成员IP和端口,然后启动Qconf监控服务:
[0124] #cd/usr/local/qconf/monitor&&sh bin/monitor-cmd.sh start[0125] 通过如下操作查看启动进程:
[0126] #ps-ef|grep qconf_monitor|grep-v grep
[0127] 所述Qconf监控服务启动后,如果所述消息队列某个成员故障,所述消息队列集群对应的zk服务节点下线所述消息队列集群的故障成员,这样,应用程序每次获取到的消息队列服务,都是状态存活的,从而提高了消息队列服务可用性。
[0128] (7)服务节点web管理模块
[0129] 本模块可选。在Qconf监控节点,部署web管理页面,方便对所述zk服务节点进行添加、删除、更新和查看操作。采用web管理页面形式,简化了zk服务节点管理,从而降低了维护成本。
[0130] 一种基于Qconf的消息队列高可用方法,该方法包括:
[0131] (1)调用消息队列服务管理模块,在多台服务器上部署消息队列集群,在消息队列元信息中记录消息队列集群所有成员的IP和端口;
[0132] (2)调用管理zk服务节点模块,在Qconf服务端部署zookeeper集群,zookeeper集群所有成员的IP和端口,记为zookeeper连接字符串。zookeeper集群存储zk服务节点信息,包括zk服务节点名称和zk服务节点值,zk服务节点值格式为“IP1:port1”,如果存在多个IP和端口,以逗号分隔。在Qconf管理端部署Qconf管理扩展,调用Qconf管理扩展接口,对zk服务节点进行添加、删除、新增和获取操作。
[0133] (3)启动监控服务节点模块,监控服务节点模块调用Qconf服务端接口,获取到Qconf服务端所有的zk服务节点以及zk服务节点值,zk服务节点值是以IP:端口形式存在,监控服务节点模块检测所述端口存活进行对相应的zk服务节点上线下操作。
[0134] 服务节点web管理模块调用管理zk服务节点模块,在web页面,对zk服务节点进行添加、删除、新增操作,服务节点web管理模块调用监控服务节点模块,在web页面上对zk服务节点进行上下线和查看操作,简化zk服务节点管理工作。
[0135] (4)调用Qconf客户端管理模块,在Qconf客户端部署Qconf客户端服务,Qconf客户端自动和Qconf服务端建立连接,从Qconf客户端可以获取到Qconf服务端最新的zk服务节点。
[0136] (5)应用程序访问模块传入zk服务节点给解析服务节点模块,解析服务节点模块调用Qconf客户端服务获取到zk服务节点对应的消息队列的IP和端口,然后返回给应用程序访问模块。
[0137] 上述实施例只是本发明的举例,尽管为说明目的公开了本发明的最佳实例和附图,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容。