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

一种应用集群业务参数的多版本配置方法及系统

文献发布时间:2023-06-19 12:18:04


一种应用集群业务参数的多版本配置方法及系统

技术领域

本发明涉及业务参数在应用集群上的使用和管理技术领域,具体涉及一种应用集群业务参数的多版本配置方法及系统。

背景技术

在信用卡交易系统处理业务时,业务参数将作为关键数据被依赖,几乎每一笔交易的处理都会不止一次的访问业务参数,然后根据业务参数定义来进行相关处理;通常情况下,业务参数存储在关系型数据库中,业务程序每次需要访问业务参数时通过SQL语句查询数据库来获取业务参数,并且所有的访问都集中到一个应用上,而需要使用业务参数的应用与负责访问业务参数的应用不是同一应用,它们会部署在不同的服务器上,即需要使用业务参数的业务应用首先需要通过网络调用负责访问业务参数的应用,然后负责访问业务参数的应用再通过网络访问关系型数据库,业务参数会至少通过两次网络传输才能被使用它的业务应用拿到。

在访问数量少时,上述方式的访问效率在可以接受的范围内,但是一旦业务量巨大,业务处理对效率有苛刻要求时,上述通过访问关系型数据库查询业务参数并通过了两次网络传输的方式就会成为业务处理效率提升的瓶颈;为了打破此种方式的瓶颈,一般做法会将最新的业务参数缓存到业务应用部署服务器的本地内存中,也就是JVM(JavaVirtual Machine)内存中,这样业务应用只是访问本地内存就能拿到所需的业务参数,大大的提交了效率。

缓存后的业务参数解决了访问效率的问题,但是当业务参数出现问题需要回退时,只缓存最新版本参数无法做到简单快速的回退;同时这种只缓存最新的业务参数也无法满足业务参数不同、业务应用不同而不同的业务参数变更生效策略。

发明内容

针对上述问题,本发明的一个目的是提供一种应用集群业务参数的多版本配置方法,即提出一种在业务应用中缓存多个版本业务参数和通过代理层访问业务参数的方法;该方法在业务应用上实现多版本的业务参数和多种业务参数生效策略的支持,在业务参数新版本发布过程中一旦出现问题时,业务应用使用的业务参数可以快速简单的一键式回退,使业务以最快的速度恢复正常;同时业务参数发布时,根据业务的需求可以精细化的实现业务参数版本的生效,以方便业务人员管理发布业务参数来调整业务处理过程。

本发明的第二个目的是提供一种应用集群业务参数的多版本配置系统。

本发明所采用的第一个技术方案是:一种应用集群业务参数的多版本配置方法,包括以下步骤:

S100:在代理层缓存多个版本的业务参数,所述多个版本包括当前生效版本P

S200:业务代码通过所述代理层访问所述当前生效版本P

S300:当收到回退指令时,所述代理层将所述业务代码访问的业务参数版本切换至所述上一生效版本P

其中,当切换至所述上一生效版本P

当切换至所述上上一生效版本P

优选地,所述步骤S300中还包括:

当业务参数发布新版本后,将当前生效版本P

其中,所述进行版本升级以生效新版本具体为:

删除修改前的上上一生效版本P

优选地,所述基于Zookeeper中的变更信息将复制的当前生效版本P

从Zookeeper中提取新版本的所有变更记录节点,循环遍历分析所有的变更记录节点,当所有变更记录节点分析完成后,实现了将复制的当前生效版本P

优选地,将代理层的访问指向新版本具体为:

(1)将复制的当前生效版本P

(2)将所述上上一生效版本P

(3)将所述上一生效版本P

优选地,当业务参数发布新版本后,新版本生效策略包括立即生效、集中生效和定期生效策略。

优选地,所述立即生效策略具体为:

当前生效版本P

进行版本升级以生效新版本时,当任何一个业务应用更新新版本失败,其他业务应用中的新版本仍能生效。

优选地,所述集中生效策略具体为:

当前生效版本P

进行版本升级以生效新版本时,当所有业务应用反馈新版本已更新完成,则所有业务应用同时生效新版本;若任何一个业务应用更新新版本失败,则所有业务应用生效新版本失败。

优选地,所述定期生效策略具体为:

当前生效版本P

进行版本升级以生效新版本时,当任何一个业务应用更新新版本失败,其他业务应用中的新版本仍能生效。

本发明所采用的第二个技术方案是:一种应用集群业务参数的多版本配置系统,包括业务参数缓存模块、访问模块和回退处理模块;

所述业务参数缓存模块用于在代理层缓存多个版本的业务参数,所述多个版本包括当前生效版本P

所述访问模块用于业务代码通过所述代理层访问所述当前生效版本的业务参数P

所述回退处理模块用于当收到回退指令时,所述代理层将所述业务代码访问的业务参数版本切换至所述上一生效版本P

其中,当切换至所述上一生效版本P

当切换至所述上上一生效版本P

优选地,还包括新版本更新模块;

所述新版本更新模块用于当业务参数发布新版本后,把当前生效版本P

其中,所述进行版本升级以生效新版本具体为:

删除修改前的上上一生效版本P

上述技术方案的有益效果:

(1)本发明公开的应用集群业务参数的多版本配置方法在业务应用上实现多版本的业务参数和多种业务参数生效策略的支持,在业务参数新版本发布过程中一旦出现问题时,业务应用使用的业务参数可以快速简单的一键式回退,使业务以最快的速度恢复正常。

(2)本发明中业务参数新版本发布时,根据业务的需求可以精细化的实现业务参数新版本的生效,以方便业务人员管理发布业务参数新版本来调整业务处理过程。

附图说明

图1为本发明一个实施例提供的一种应用集群业务参数的多版本配置方法的流程图;

图2为本发明一个实施例提供的三个本版本的业务参数的示意图;

图3为本发明一个实施例提供的业务代码通过Proxy层访问业务参数的示意图;

图4为本发明一个实施例提供的回退业务应用上的业务参数版式的示意图;

图5为本发明一个实施例提供的业务参数进行新版本更新的示意图;

图6为本发明一个实施例提供的新版本立即生效策略的示意图;

图7为本发明一个实施例提供的新版本集中生效策略的示意图;

图8为本发明一个实施例提供的一种应用集群业务参数的多版本配置系统的结构示意图。

具体实施方式

下面结合附图和实施例对本发明的实施方式作进一步详细描述。以下实施例的详细描述和附图用于示例性地说明本发明的原理,但不能用来限制本发明的范围,即本发明不限于所描述的优选实施例,本发明的范围由权利要求书限定。

在本发明的描述中,需要说明的是,除非另有说明,“多个”的含义是两个或两个以上;术语“第一”“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性;对于本领域的普通技术人员而言,可视具体情况理解上述术语在本发明中的具体含义。

实施例1

如图1所示,本实施例公开了一种应用集群业务参数的多版本配置方法,包括以下步骤:

S100:如图2所示,在业务应用本地内存的代理层缓存多个版本的业务参数,多个版本至少包括当前生效版本P

S200:业务代码通过代理层(Proxy层)访问当前生效版本P

如图3所示,业务应用中的业务代码通过Proxy层来访问当前生效版本P

代理层(Proxy层)是业务代码访问参数数据的入口,Proxy层内部逻辑来实现参数版本的切换,通过新版本生效策略实现对业务代码访问最新版本的控制;代理层通过开发语言内置数据结构的封装来实现,通常情况下代理层中保存了三个版本的业务参数,分别为当前生效版本P

使用Java语言实现代理层,代理层会被封装成一个类,在代理层的这个类里面会有5个主要属性,分别是currentVersion(当前生效版本P

S300:当遇到问题需要及时回退业务应用上的业务参数版式时,系统运维人员或者系统管理发出回退指令,Proxy层收到回退指令后将所有业务代码访问的业务参数数据版本切换到上一生效版本P

Proxy层完成业务参数数据版本切换后(切换到上一生效版本P

当切换至上上一生效版本P

进一步的,在一个实施例中,如图5所示,当业务参数发布新版本后,Sync把当前生效版本(Current Version)复制一份至业务应用本地内存的代理层,根据Zookeeper中变更信息将复制的Current Version修改为新版本;Proxy层的访问指向修改后的复制的Current Version,即指向新版本;

进行版本升级以生效新版本,具体为:将修改前的上上一生效版本P

其中,ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务;Zookeeper中记录变更内容的节点结构如下:

modifyUser: 维护操作员

modifyTime: 维护的时间(日期+时分秒)

modifyItem: 维护参数名称

key:维护参数的唯一健值

Items:[ attrbutieName: 属性名

beforeValue: 修改前值

afterValue: 修改后值]

根据Zookeeper中变更信息将复制的Current Version修改为新版的具体变更过程如下:

(1)从Zookeeper中取出新版本的所有变更记录节点;

(2)循环遍历分析所有的变更记录节点,取出变更节点中的modifyItem的值,根据此值在属性tmpCurrentVersion指向的Hashmap中找到对应的参数所有的值(Hashmap保存),然后根据变更节点中key的值在保存所有参数值的Hashmap中查找对应的参数值,然后根据items中变更的属性信息修改参数值对象上的值,如果未查找到对应的参数值,那么使用参数对应的类实例化出来一个对象,再根据items中的记录将对象属性进行赋值(attrbutieName对参数类的属性名是一致的);

(3)当所有变更记录节点分析完成后,属性tmpCurrentVersion指向的Hashmap中就是最新版本的参数数据,即实现了将复制的当前生效版本P

Proxy层的访问变更,即将代理层的访问指向新版本通过以下方式实现:

在Java语言中Proxy层实现访问版本的切换实现上就是属性引用的内存地址的变化,比如有新版本的参数发布,首先将属性currentVersion(当前生效版本P

业务参数进行新版本发布时,新版本生效策略包括立即生效、集中生效和定期生效策略;

(1)立即生效策略

如图6所示,新版本立即生效策略具体为:在Sync完成原Current Version(当前生效版本P

进行版本升级以生效新版本时,任何一个业务应用更新新版本失败,也不会影响其他业务应用中的新版本生效。

(2)集中生效策略

如图7所示,新版本集中生效策略具体为:在Sync完成原Current Version(当前生效版本P

进行版本升级以生效新版本时,当所有业务应用反馈新版本已更新完成,则所有业务应用同时生效新版本;若任何一个业务应用更新新版本失败,则新版本不会在任何一个业务应用中生效;

例如在应用集群化部署的情况下,就是参数数据会存在于多个业务应用的多个部署实例上,也就是参数数据会存在M个业务应用的内存中;集中生效是希望参数新版本发布后,新版本变更最短的时间内在M个业务应用同时生效,此种方式需要得到M个业务应用反馈新版本已经更新完成后,才能整体的生效新版本,如果有一个业务应用未反馈,此新版本将不会在任何一个业务应用中生效;业务应用在收到可以进行新版本切换后,默认会在一定时间(例如3分钟)后使新版本生效。

(3)定期生效策略

新版本定期生效策略与新版本集中生效策略大致相同,不同之处在于生效的时间比较明确,例如几时几分,哪日的几时几分;即定期生效是发布新版本时指定一个明确的生效时间,这个时间相对比较长,可能是几个小时后或者明日零时,一旦指定的生效时间一到,所有业务应用将生效新版本;

进行版本升级以生效新版本时,任何一个业务应用更新新版本失败,也不会影响其他业务应用中的新版本生效。

新版本生效策略中Proxy切换本质是延时任务,立即生效、集中生效和定期生效策略统一使用延时任务实现;其中,立即生效策略中的延时为0,集中生效和定期生效策略的延时为N。

实施例2

如图2所示,本实施例公开了一种应用集群业务参数的多版本配置系统,包括业务参数缓存模块、访问模块和回退处理模块;

业务参数缓存模块用于在代理层缓存多个版本的业务参数,多个版本包括当前生效版本P

访问模块用于业务代码通过所述代理层访问当前生效版本P

回退处理模块用于当收到回退指令时,代理层将所述业务代码访问的业务参数版本切换至上一生效版本P

其中,当切换至上一生效版本P

当切换至上上一生效版本P

进一步的,在一个实施例中,还包括新版本生效模块;

新版本生效模块用于当业务参数发布新版本后,把当前生效版本P

其中,进行版本升级以生效新版本具体为:

删除修改前的上上一生效版本P

本发明公开的应用集群业务参数的多版本配置方法及系统在业务应用上实现多版本的业务参数和多种业务参数生效策略的支持,在业务参数新版本发布过程中一旦出现问题时,业务应用使用的业务参数可以快速简单的一键式回退,使业务以最快的速度恢复正常。

本发明中业务参数新版本发布时,根据业务的需求可以精细化的实现业务参数新版本的生效,以方便业务人员管理发布业务参数新版本来调整业务处理过程。

虽然已经参考优选实施例对本发明进行了描述,但在不脱离本发明范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本发明并不局限于文中公开的特定实施例,而是包括落入权利要求范围内的所有技术方案。本发明未详细阐述部分属于本领域技术人员的公知技术。

相关技术
  • 一种应用集群业务参数的多版本配置方法及系统
  • 一种应用集群业务参数的多版本配置方法及系统
技术分类

06120113240946