一种资源动态加载不停机发布的方法和装置与流程

文档序号:36531657发布日期:2023-12-29 22:00阅读:18来源:国知局
一种资源动态加载不停机发布的方法和装置与流程

本发明涉及网关系统应用,尤其是涉及一种资源动态加载不停机发布的方法和装置。


背景技术:

1、目前,企业内与外部通过网关系统进行数据传输,过程中可能会存在接口传输的数据格式不同、加解密、认证方式不同等问题,网关系统针对不同接口编写执行逻辑后进行发布。数据格式差异是指:不同的系统或服务通常使用不同的数据格式。例如,一个接口可能使用json格式,而另一个接口可能使用xml格式。加解密方法差异是指:不同的接口可能使用不同的加密和解密方法来保护数据的安全性。例如,一个接口可能使用基于密钥的对称加密,而另一个接口可能使用公钥加密和私钥解密的非对称加密。认证方式差异是指:不同的接口可能使用不同的认证方式来验证传输的数据。例如,一个接口可能使用基于令牌的oauth认证,而另一个接口可能使用基于api密钥的认证。

2、由于网关系统针对不同接口编写执行逻辑后进行发布,因此代码会有很强的耦合。网关系统代码耦合是指网关系统中的不同部分或模块之间存在过度依赖和紧密关联的情况。具体而言,以下是可能导致代码耦合的一些方面:

3、1.接口适配代码:为了使网关系统能够与不同的接口进行交互,可能需要编写大量的接口适配代码,处理数据格式转换、加解密和认证等。这些适配代码与具体的接口实现绑定,导致耦合。

4、2.执行逻辑编写:为执行每个接口的逻辑,网关系统需要编写特定的执行代码。这些代码可能与特定接口的实现细节紧密关联,导致耦合。

5、3.错误处理:不同的接口可能会返回不同的错误代码或错误结构。为了处理这些接口返回的错误,网关系统可能需要编写专门的错误处理代码。这些代码与接口的具体实现相关联,增加了耦合性。

6、由于代码的耦合,导致不利于维护的原因有如下几点:

7、1.难以修改和扩展:当需要修改或扩展一个功能时,耦合的代码会牵一发而动全身。修改一个部分可能会影响到其他耦合的部分,导致维护变得复杂困难。

8、2.难以测试:由于代码之间存在紧密的依赖关系,单独对某个部分进行测试变得困难。必须考虑到相关的依赖模块,这增加了测试的复杂性和成本。

9、3.可读性降低:代码耦合会导致逻辑分散和交织,使代码难以理解和阅读。可读性降低会给维护人员带来困扰,增加调试和诊断问题的难度。

10、4.风险扩散和故障传播:由于代码之间的紧密关系,一个模块的故障可能会影响到其他耦合的模块,导致故障扩散和难以定位问题。

11、综上,由于网关系统针对不同接口编写执行逻辑后进行发布,因此需要重新发布重启应用,效率较低,且网关系统代码耦合,难以修改、扩展和测试,可读性降低。


技术实现思路

1、本发明的目的就是为了减少代码耦合,提高网关系统的稳定性和可维护性,实现应用的动态更新和扩展而提供的一种资源动态加载不停机发布的方法和装置。

2、本发明的目的可以通过以下技术方案来实现:

3、一种资源动态加载不停机发布的方法,方法包括以下步骤:

4、s1、获取不同格式、不同加解密方式和不同认证方式的数据,将数据的逻辑代码以插件形式打包成独立的jar包,jar包中包括记录插件名称与字节码文件路径的文件;

5、s2、管理平台配置接口地址与插件名称的映射关系,及jar包的存储路径;

6、s3、管理平台将jar包上传至配置的jar包的存储路径下;

7、s4、在网关系统中自定义一个类加载器,通过类加载器读取存储路径下jar包的插件名称,并将插件名称与管理平台配置的映射关系进行匹配;

8、s5、匹配后,网关系统匹配到与每个接口地址对应的字节码文件路径,通过java的反射机制进行实例化,保存每个接口地址对应的实例;

9、s6、网关系统获取到接口请求时,网关系统根据接口地址与插件名称的映射关系,匹配该接口地址对应的实例并执行;

10、上述过程中,当管理平台的接口地址与插件名称的映射关系发生变化时,网关系统匹配的实例发生变化。

11、进一步地,s5中每个接口地址对应的实例以链表形式保存。

12、进一步地,实例化的具体步骤为:通过匹配的字节码文件路径读取类文件,对类文件进行实例化。

13、进一步地,管理平台对配置接口地址与插件名称的映射关系进行发布,网关系统对发布的映射关系进行订阅,当网关系统订阅的接口地址与插件名称的映射关系发生变化时,网关系统匹配的实例发生对应的变化。

14、进一步地,订阅发布的方式基于redis数据库实现,发布的映射关系持久化到redis数据库。

15、进一步地,当网关系统订阅的接口地址与插件名称的映射关系发生关系新增、关系改变和关系注销的变化时,网关系统匹配的实例进行相对应的加载、更新和注销操作。

16、进一步地,不同格式的数据包括json和xml格式的数据。

17、进一步地,不同加解密方式的数据包括基于密钥的对称加密的数据和公钥加密和私钥解密的非对称加密的数据。

18、进一步地,不同认证方式的数据包括基于令牌的oauth认证的数据和基于api密钥认证的数据。

19、本发明的另一方面,还提出一种资源动态加载不停机发布的装置,包括存储器、处理器,以及存储于所述存储器中的程序,所述处理器执行所述程序时实现上述的方法。

20、与现有技术相比,本发明具有以下有益效果:

21、本发明将功能模块打成独立的jar包,利用自定义的类加载器和classloader,通过读取外部jar包中映射文件的配置完成实例加载,通过管理平台页面配置以及redis的订阅发布模式,网关系统监听配置信息,实现插件的动态加载、更新、注销,比较现有的统针对不同接口编写执行逻辑后进行发布的方法,本发明不用更新应用程序,只要更新字节码文件路径的类内容即可实现功能更新,提高了更新的效率。同时本发明的方法减少了代码的耦合,实现功能模块间的隔离和解耦,提高网关系统的稳定性和可维护性。



技术特征:

1.一种资源动态加载不停机发布的方法,其特征在于,方法包括以下步骤:

2.根据权利要求1所述的一种资源动态加载不停机发布的方法,其特征在于,s5中每个接口地址对应的实例以链表形式保存。

3.根据权利要求1所述的一种资源动态加载不停机发布的方法,其特征在于,实例化的具体步骤为:通过匹配的字节码文件路径读取类文件,对类文件进行实例化。

4.根据权利要求1所述的一种资源动态加载不停机发布的方法,其特征在于,管理平台对配置接口地址与插件名称的映射关系进行发布,网关系统对发布的映射关系进行订阅,当网关系统订阅的接口地址与插件名称的映射关系发生变化时,网关系统匹配的实例发生对应的变化。

5.根据权利要求4所述的一种资源动态加载不停机发布的方法,其特征在于,订阅发布的方式基于redis数据库实现,发布的映射关系持久化到redis数据库。

6.根据权利要求4所述的一种资源动态加载不停机发布的方法,其特征在于,当网关系统订阅的接口地址与插件名称的映射关系发生关系新增、关系改变和关系注销的变化时,网关系统匹配的实例进行相对应的加载、更新和注销操作。

7.根据权利要求1所述的一种资源动态加载不停机发布的方法,其特征在于,不同格式的数据包括json和xml格式的数据。

8.根据权利要求1所述的一种资源动态加载不停机发布的方法,其特征在于,不同加解密方式的数据包括基于密钥的对称加密的数据和公钥加密和私钥解密的非对称加密的数据。

9.根据权利要求1所述的一种资源动态加载不停机发布的方法,其特征在于,不同认证方式的数据包括基于令牌的oauth认证的数据和基于api密钥认证的数据。

10.一种资源动态加载不停机发布的装置,包括存储器、处理器,以及存储于所述存储器中的程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-9中任一所述的方法。


技术总结
本发明涉及一种资源动态加载不停机发布的方法和装置,方法包括以下步骤:S1、将数据的逻辑代码打包成独立的jar包;S2、配置接口地址与插件名称的映射关系,及jar包的存储路径;S3、jar包上传;S4、网关系统读取存储路径下jar包的插件名称,并将插件名称与管理平台配置的映射关系进行匹配;S5、网关系统匹配到字节码文件路径,进行实例化,保存实例;S6、网关系统获取到接口请求时,匹配该接口地址对应的实例并执行;上述过程中,当映射关系发生变化时,网关系统匹配的实例发生变化。与现有技术相比,本发明具有实现应用的动态更新和扩展等优点。

技术研发人员:铁锦程,李虎,路进锋,磨柑竹,韩伟伟
受保护的技术使用者:上海浦东发展银行股份有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1