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

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

The message queuing system and method for high availability based on Qconf

The invention discloses a high availability message queuing system and method based on Qconf, the system includes application program, Qconf client, Qconf server, Qconf management terminal, Qconf monitoring nodes and message queue: Qconf server and Qconf client server interaction, access to the message queue ZK service node of the latest information; Qconf refers to the zookeeper server cluster storage, message queue ZK service node information management terminal; Qconf by calling the Qconf interface on the server, the message queue ZK service node to add, delete, update and access operation; Qconf monitoring node monitors the message queue ZK service node survival; the invention has high usability, when a Message Queuing cluster member fault. Will not affect the application to access the Message Queuing cluster, greatly enhance the Message Queuing service availability; easy to use, maintenance With low cost and strong stability, the message queue service is adjusted by Qconf, application program and message queue decoupling. The application does not need to modify the configuration, which greatly reduces the service coupling degree.

【技术实现步骤摘要】
基于Qconf的消息队列高可用系统及方法
本专利技术属于计算机
,主要应用于消息队列服务高可用场景,用于提升消息队列服务可用性和灵活性。
技术介绍
对于互联网公司而言,随着业务需求越来越复杂,为了降低服务之间的耦合度,提升服务模块化,消息队列使用越来越广泛,消息队列服务的可用性也显得越来越重要。传统消息队列使用方法具有如下缺点:(1)可用性低:一旦某个消息队列服务故障,应用程序就无法访问消息队列服务。(2)维护成本高:采用了比较复杂的架构提高消息队列可用性,运维成本高。(3)引入新的隐患:由于采用的高可用架构本身存在隐患,导致整个高可用架构可用性不高。(4)易用性差:虽然实现了高可用,但是不方便使用,导致可操作性低下。
技术实现思路
本专利技术针对现有技术的不足,提供一种基于Qconf的消息队列高可用系统及方法,基于Qconf可以注册消息队列zk服务节点,不但可以实现消息队列服务高可用,同时可以实现负载均衡,该系统可以支持大规模消息队列高可用和负载均衡。本专利技术的目的是通过以下技术方案来实现的:一种基于Qconf的消息队列高可用系统,该系统包括应用程序端、Qconf客户端、Qconf服务端、Qconf管理端、Qconf监控节点和消息队列服务端:应用程序端:运行应用程序的服务器,应用程序调用对应的Qconf扩展接口,解析传入的参数:zk服务节点,得到消息队列的IP和端口,然后应用程序和所述消息队列建立连接,进而和所述消息队列交互读写请求;Qconf客户端:包括Qconfagent服务、应用程序对应的Qconf扩展;Qconf客户端和应用程序同机部署,用于和Qconf服务端交互,获取最新的消息队列zk服务节点信息;Qconf服务端:部署zookeeper集群,存储消息队列zk服务节点信息;Qconf管理端:通过调用Qconf服务端接口,对消息队列zk服务节点进行添加、删除、更新和获取操作,Qconf管理端部署Qconf管理扩展,用于管理人员管理zk服务节点;Qconf监控节点:部署Qconf监控服务,监控消息队列zk服务节点存活,能够实现所述消息队列zk服务节点上下线;在一台服务器上部署Qconf监控节点,可以监控Qconf服务端所有的消息队列zk服务节点;消息队列服务端:是部署消息队列的服务器,采用集群形式部署消息队列,不同的消息队列集群,采用端口号唯一标识;所有消息队列集群的IP和端口信息,保存在消息队列元信息中。进一步地,所述消息队列服务端包括消息队列服务管理模块:采用一个磁盘节点和两个内存节点形式部署消息队列;一个消息队列集群中所有成员的端口保持一致,不同的消息队列集群,端口不同,采用端口唯一标识所述消息队列集群。进一步地,所述Qconf管理端包括管理zk服务节点模块,需要传入的参数:zk服务节点、消息队列的IP以及端口和zookeeper连接字符串;zookeeper连接字符串表示zookeeper集群所有成员的IP和端口组成的字符串;通过扫描消息队列元信息,获取消息队列IP和端口,所述端口是指zk服务节点对应的消息队列集群的端口,每个zk服务节点表示一个消息队列集群;所述zk服务节点的值是该端口对应的消息队列集群所有成员的IP和端口;对zk服务节点的操作包括:添加zk服务节点:调用Qconf管理端接口,进行添加zk服务节点、为zk服务节点新增值、为zk服务节点删除值、zk服务节点上下线、获取zk服务节点的所有成员。进一步地,所述Qconf客户端包括Qconf客户端管理模块,需要传入的参数:zookeeper连接字符串;按照Qconf部署要求,部署Qconf客户端服务,Qconf客户端配置文件需要设置zookeeper连接字符串,然后启动Qconf客户端服务;查看Qconf客户端进程是否启动;如果修改了Qconf客户端配置文件,需要重启Qconf客户端服务;部署Qconf客户端服务后,按照Qconf扩展部署要求在应用程序端部署应用程序相应的Qconf扩展。进一步地,所述应用程序端包括解析服务节点模块和应用程序访问模块;所述解析服务节点模块需要传入的参数:zk服务节点;在应用程序端部署Qconf客户端服务后,应用程序调用相应的Qconf扩展接口解析zk服务节点,得到消息队列集群成员;所述应用程序访问模块需要传入的参数:消息队列的IP和端口;解析服务节点模块执行结束后,得到某个消息队列的IP和端口,应用程序根据所述消息队列IP和端口,和所述消息队列建立连接,应用程序可以发送读写请求,消息队列处理这些读写请求。进一步地,所述Qconf监控节点包括监控服务节点模块:需要传入参数:zookeeper集群所有成员IP和端口;在Qconf监控节点部署Qconf监控服务,修改Qconf监控配置文件中zookeeper参数值为所述zookeeper集群所有成员IP和端口,然后启动Qconf监控服务;查看启动进程;Qconf监控服务启动后,如果所述消息队列某个成员故障,所述消息队列集群对应的zk服务节点下线所述消息队列集群的故障成员,这样,应用程序每次获取到的消息队列服务都是状态存活的。进一步地,所述Qconf监控节点还包括服务节点web管理模块:在Qconf监控节点部署web管理页面,对所述zk服务节点进行添加、删除、更新和查看操作。一种基于Qconf的消息队列高可用方法,该方法包括以下步骤:(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和端口,然后返回给应用程序访问模块。本专利技术的有益效果是:(1)可用性高:当消息队列集群某个成员故障时,不会影响应用程序访问消息队列集群,大大提升了消息队列服务可用性。(2)易用性好:应用程序只需要一行代码,就可以获得所述消息队列IP和端口,对于应用程序开发者而言,使用方便简洁。(3)维护成本低:整个系统简单稳定,便于管理人员维护。(4)稳定性强大:目前Qconf技术成熟,zookeeper集群本身具有高可用,整体稳定性比较好,不会引入新的隐患。(5)降低服务耦合度:通过Qconf,应用程序和消息队列解耦,调整消息队列服务,应用程序不需要修改配置,大大降低了服务耦合度。附图说明图1是本专利技术基于Qconf的消息队列高可用方法总体架构图;图2是本专利技术基于本文档来自技高网...
基于Qconf的消息队列高可用系统及方法

【技术保护点】
一种基于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和端口信息,保存在消息队列元信息中。...

【技术特征摘要】
1.一种基于Qconf的消息队列高可用系统,其特征在于,该系统包括应用程序端、Qconf客户端、Qconf服务端、Qconf管理端、Qconf监控节点和消息队列服务端:应用程序端:运行应用程序的服务器,应用程序调用对应的Qconf扩展接口,解析传入的参数:zk服务节点,得到消息队列的IP和端口,然后应用程序和所述消息队列建立连接,进而和所述消息队列交互读写请求;Qconf客户端:包括Qconfagent服务、应用程序对应的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服务节点的操作包括:添加zk服务节点:调用Qconf管理端接口,进行添加zk服务节点、为zk服务节点新增值、为zk服务节点删除值、zk服务节点上下线、获取zk服务节点的所有成员。4.根据权利要求1所述的一种基于Qconf的消息队列高可用系统,其特征在于,所述Qconf客户端包括Qconf客户端管理模块,需要传入的参数:zookeeper连接字符串;按照Qconf部署要求,部署Qconf客户端服务,Qconf客户端配置文件需要设置zookeeper连接字符串,然后启动Qconf客户端服务;查看Qconf客户端进程是否启动...

【专利技术属性】
技术研发人员:顾伟涛
申请(专利权)人:杭州铭师堂教育科技发展有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1