掌桥专利:专业的专利平台
掌桥专利
首页

一种分布式异构软件集群配置管理框架

文献发布时间:2023-06-19 11:32:36


一种分布式异构软件集群配置管理框架

技术领域

本发明涉及计算机软件的应用技术领域,更为具体的,涉及一种分布式异构软件集群配置管理框架。

背景技术

目前的集群配置管理技术主要有Spring Cloud Config的云架构配置管理技术。

在现有方案中,云架构配置管理技术能够满足在云架构下的集群软件配置管理需求,基于Http协议实现远程配置管理,通过统一的配置管理服务器集中存储管理集群的配置文件。客户端通过Http协议主动拉取服务软件的配置信息,完成配置的获取工作。SpringCloud Config技术是单点集中式的配置管理技术,依赖于云架构,只适合Java程序的配置管理,无法满足异构软件的配置管理需要。

对多个异构软件进行系统集成时,软件之间往往存在复杂的依赖关系,异构软件的构成使得无法通过现有的Spring Cloud Config解决配置问题,若通过对每个软件编写配置文件的方式,依赖配置项将随着软件数量的增多而呈现指数式的增长,且无法解决异构软件的负载均衡问题。当集群状态发生变更或者进行集群迁移时,依赖配置的修改将成为一项非常艰辛的工作。

发明内容

本发明的目的在于克服现有技术的不足,提供一种分布式异构软件集群配置管理框架,有效解决多个异构软件在集成时的配置依赖和负载均衡等问题。

本发明的目的是通过以下方案实现的:

一种分布式异构软件集群配置管理框架,包括配置依赖描述视图模块、配置依赖适配器模块;所述配置依赖适配器模块包括配置注册模块、心跳维护模块、依赖监听模块、配置检索模块;所述配置注册模块,用于读取软件的配置依赖描述视图文件信息,注册到框架中;所述心跳维护模块,用于在软件整个运行过程中,定时向框架发送心跳信息;所述依赖监听模块,用于当框架检测到该软件所依赖的软件配置发生变化时,向该软件的配置依赖适配器触发,更新其所需要的依赖配置信息;所述配置检索模块,用于当软件需要与其所依赖的软件进行交互时,配置依赖适配器通过名称查询所需要的配置信息返回给软件;当其依赖的软件存在异常时,将返回错误码给软件;当所依赖的软件具有多副本时,配置依赖适配器将动态地选择负载较低的副本软件,实现软件交互的负载均衡。

进一步地,包括配置依赖管理器模块;所述配置依赖管理器模块包括监听软件注册模块、心跳检测模块、配置管理模块,所述监听软件注册模块,用于监听各个软件的注册请求,维护集群内所有软件的配置依赖信息,并返回各个软件所需要的配置信息;所述心跳检测模块,用于检测各个软件的心跳信息,当软件心跳异常时,更新集群内该软件的活动状态信息,并将更新后的信息自动触发给所有依赖该软件的配置依赖适配器;所述配置管理模块,能够完成对集群内所有软件配置以及相关依赖的管理,能够可视化地跟踪和记录集群软件的状态,能够提供接口查询软件配置依赖和软件状态。

进一步地,所述配置依赖描述视图模块包括配置描述视图模块和依赖描述视图模块,所述配置描述视图模块用于提供给软件进行依赖调用;所述依赖描述视图模块用于提供软件所需要依赖的信息。

进一步地,所述配置注册模块在软件启动后,能够实时监控依赖配置描述视图文件状态,当配置依赖描述视图文件的信息发生更改,能够读取内容并在框架中更新;每一次注册或更新配置依赖信息时,框架将返回该软件所依赖的软件的相关配置信息。

进一步地,所述心跳维护模块在当心跳中断时,配置依赖适配器将定时重新尝试建立心跳连接。

进一步地,所述监听软件注册模块,当软件注册时,将该软件的注册信息触发给所有依赖该软件的配置依赖适配器。

本发明的有益效果是:

1)本发明允许用户在不修改软件处理逻辑的前提下,实现集群中异构软件复杂的配置依赖问题,使得软件在开展系统集成时,无需了解依赖软件的具体配置信息,大大节省了部署和迁移成本;

2)本发明实现了分布式自组织的配置管理框架,软件之间自行组织配置与依赖关系,框架只负责数据监听、维护和管理;

3)本发明的配置依赖适配器能够适应多种异构软件类型,配置依赖描述视图采用标准通用的格式化语言进行描述,有效解决了异构软件集成的问题;

4)本发明能够实现与多副本软件交互的负载均衡,能够有效提高集群软件的吞吐量;

5)本发明能够实现配置依赖描述视图文件的监听,修改配置依赖描述视图文件后不需要重启整个软件。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的结构示意图。

具体实施方式

本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。

如图1所示,一种分布式异构软件集群配置管理框架,包括配置依赖描述视图模块、配置依赖适配器模块;配置依赖适配器模块包括配置注册模块、心跳维护模块、依赖监听模块、配置检索模块;配置注册模块,用于读取软件的配置依赖描述视图文件信息,注册到框架中;心跳维护模块,用于在软件整个运行过程中,定时向框架发送心跳信息;依赖监听模块,用于当框架检测到该软件所依赖的软件配置发生变化时,向该软件的配置依赖适配器触发,更新其所需要的依赖配置信息;配置检索模块,用于当软件需要与其所依赖的软件进行交互时,配置依赖适配器通过名称查询所需要的配置信息返回给软件;当其依赖的软件存在异常时,将返回错误码给软件;当所依赖的软件具有多副本时,配置依赖适配器将动态地选择负载较低的副本软件,实现软件交互的负载均衡。

配置依赖适配器实现为动态链接库、Jar包和python脚本等多形式,面向异构软件提供配置管理框架的接入能力。配置依赖适配器主要完成以下四方面功能:一是配置注册,在软件启动时,读取软件的配置依赖描述视图文件信息,注册到框架中。在软件启动后,实时监控依赖配置描述视图文件状态,当配置依赖描述视图文件的信息发生更改,自动读取内容并在框架中更新。每一次注册或更新配置依赖信息时,框架将返回该软件所依赖的软件的相关配置信息。二是心跳维护,在软件整个运行过程中,定时向框架发送心跳信息。当心跳中断时,配置依赖适配器将定时重新尝试建立心跳连接。三是依赖监听,当框架检测到该软件所依赖的软件配置发生变化时,如上线、下线、超时、内容修改等,自动向该软件的配置依赖适配器触发,更新其所需要的依赖配置信息。四是配置检索,当软件需要与其所依赖的软件进行交互时,配置依赖适配器通过名称查询所需要的配置信息返回给软件,当其依赖的软件存在异常,如未上线、连接超时等将返回错误码给软件。当所依赖的软件具有多副本时,配置依赖适配器将动态地选择负载较低的副本软件,实现软件交互的负载均衡。

进一步地,包括配置依赖管理器模块;配置依赖管理器模块包括监听软件注册模块、心跳检测模块、配置管理模块,监听软件注册模块,用于监听各个软件的注册请求,维护集群内所有软件的配置依赖信息,并返回各个软件所需要的配置信息;心跳检测模块,用于检测各个软件的心跳信息,当软件心跳异常时,更新集群内该软件的活动状态信息,并将更新后的信息自动触发给所有依赖该软件的配置依赖适配器;配置管理模块,能够完成对集群内所有软件配置以及相关依赖的管理,能够可视化地跟踪和记录集群软件的状态,能够提供接口查询软件配置依赖和软件状态。配置依赖管理器实现为独立的运行程序,是本发明实施例中最主要的构件之一。配置依赖管理器支持自身的分布式部署,允许多个实例同时运行,基于分布式和集群调度算法,实现配置依赖管理器自身的高可用,有效避免单点故障问题。配置依赖管理器主要完成以下功能:一是监听软件注册,用于监听各个软件的注册请求,维护集群内所有软件的配置依赖信息,并返回各个软件所需要的配置信息。当软件注册时,将该软件的注册信息自动触发给所有依赖该软件的配置依赖适配器。二是心跳检测,用于检测各个软件的心跳信息,当软件心跳异常时,如下线,超时等,更新集群内该软件的活动状态信息,并将更新后的信息自动触发给所有依赖该软件的配置依赖适配器。三是配置管理,能够完成对集群内所有软件配置以及相关依赖的管理,能够可视化地跟踪和记录集群软件的状态,能够提供接口查询软件配置依赖和软件状态。

在实施方案中,主要包括配置依赖描述视图、配置依赖适配器和配置依赖管理器等组成。该实施方案中,提供一套完整的运行框架和协议规范,协助来自不同厂商、异构的软件,以最小的改动代价实现分布式自动化配置依赖管理,具备负载均衡能力,能通用适应云环境部署和集群机器部署。

配置依赖描述视图实现为可拓展标记语言的文件形式,采用标准化、结构化的语义规范,可以为来自不同厂商异构软件提供统一的配置依赖描述手段。接入分布式异构软件集群配置管理框架需要编写完整的配置依赖描述视图,作为软件配置依赖的物化表现,主要涵盖两个方面的内容:一是配置描述视图,即软件自身提供的配置信息,用于提供给其他软件进行依赖调用,涵盖了软件名称、访问地址、访问端口、访问方式和提供的接口列表等内容;二是依赖描述视图,即软件所需要依赖的信息,主要指依赖的软件名称和接口名称等信息。分布式异构软件集群配置管理框架允许多个相同软件同时接入,并自动实现软件交互访问的负载均衡。

进一步地,配置依赖描述视图模块包括配置描述视图模块和依赖描述视图模块,配置描述视图模块用于提供给软件进行依赖调用;依赖描述视图模块用于提供软件所需要依赖的信息。

进一步地,配置注册模块在软件启动后,能够实时监控依赖配置描述视图文件状态,当配置依赖描述视图文件的信息发生更改,能够读取内容并在框架中更新;每一次注册或更新配置依赖信息时,框架将返回该软件所依赖的软件的相关配置信息。

进一步地,心跳维护模块在当心跳中断时,配置依赖适配器将定时重新尝试建立心跳连接。

进一步地,监听软件注册模块,当软件注册时,将该软件的注册信息触发给所有依赖该软件的配置依赖适配器。

在本发明的其他实施例中,设某系统集群由软件A、软件B和软件C构成,其中软件A的运行依赖于软件B,软件B的运行依赖软件A和软件C,软件C是一个无状态服务软件,以三副本部署提高软件吞吐量。将软件A、软件B和软件C通过本发明框架进行集成,使得集成后的能够正确运行,并且当某一软件下线或配置修改后能够及时感知。

(1)配置依赖描述视图模块

分别编写软件A、B和C的配置依赖描述视图文件,遵循可扩展标记语言XML的规范。配置依赖描述视图主要内容包括:

·配置描述视图信息:该软件名称、地址与端口;服务接口列表,包括接口名称、调用方式与调用路径;

·依赖描述视图信息:软件所依赖的服务列表,包括依赖的软件名称和依赖软件的服务接口名称;

(2)配置依赖适配器模块

配置依赖适配器根据异构软件类型提供动态链接库、Jar包和Python脚本等多形式,A、B和C软件根据其自身软件类型,集成了依赖配置适配器,实现异构软件的配置管理、状态监听和配置同步等功能。配置依赖适配器面向软件提供的接口包括:

1)配置注册接口

配置依赖适配器在软件启动时自动调用,也支持软件显式调用。通过调用该接口,配置依赖适配器读取配置依赖描述视图信息发送给框架,由框架托管该软件的配置信息和依赖信息,并返回其依赖的配置信息;

2)配置检索接口

当软件需要与依赖软件进行交互时,通过依赖的软件名称和接口名称作为输入,调用配置检索接口,返回依赖软件的地址、端口、调用方式和路径。软件获取上述信息,向依赖软件进行请求交互。

当依赖软件未注册或者下线时,配置检索接口结果返回对应的错误码。对于软件A与软件C交互的形式,由于软件C是三副本部署,配置检索接口会根据软件C三个副本的负载情况,选择负载最低的副本信息进行交互。

(3)配置依赖管理器模块

配置依赖管理器对于软件A、B和C是无感的,负责监听集群中的软件配置依赖信息,三个软件只能通过配置依赖适配器与配置依赖管理器进行数据交互。配置依赖管理器提供一套图形化的监控工具,用于动态显示集群中各个软件的配置数据、依赖关系和存活状态。

在本实例中,软件A、软件B和多个副本的软件C分别加载配置依赖描述视图信息到配置依赖管理器,配置依赖管理器缓存各个软件的配置信息和依赖关系,并将软件状态标识为在线。对于多个副本的软件C,配置依赖管理器感知到同个软件的多次注册,将软件C的状态标识额外标识为负载均衡控制。

配置依赖管理器能够监控A、B和多个C副本的心跳,当某个软件心跳中断或者超时,将对应软件的状态标识为下线。

配置依赖管理器在检测软件注册或者心跳异常后,通过缓存查询到依赖该软件的软件列表信息,并将配置和状态信息下发到所有软件的配置依赖适配器。

(4)实施效果

软件A、B和软件C通过本框架进行集成后的效果如图1所示。

除以上实例以外,本领域技术人员根据上述公开内容获得启示或利用相关领域的知识或技术进行改动获得其他实施例,各个实施例的特征可以互换或替换,本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

本发明功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,在一台计算机设备(可以是个人计算机,服务器,或者网络设备等)以及相应的软件中执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、或者光盘等各种可以存储程序代码的介质,进行测试或者实际的数据在程序实现中存在于只读存储器(Random Access Memory,RAM)、随机存取存储器(Random Access Memory,RAM)等。

相关技术
  • 一种分布式异构软件集群配置管理框架
  • 一种软件测试管理框架构建方法及装置
技术分类

06120112966221