一种实现微服务架构下拓展功能组件的方法技术

技术编号:37850570 阅读:11 留言:0更新日期:2023-06-14 22:40
一种实现基于微服务架构项目快速热插拔拓展功能组件的方法,实现的重要环节就是类加载。Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略让Java语言进行提前编译会面临额外的困难,也会让类加载时稍微增加一些性能开销,但是却为Java应用提供了极高的扩展性和灵活性。和灵活性。

【技术实现步骤摘要】
一种实现微服务架构下拓展功能组件的方法


[0001]本专利技术属于IT与软件开发领域。

技术介绍

[0002]随着IT与软件开发技术的快速发展,再加上近年来网络与信息安全环境愈发严峻,产品需要不断地更新换代,以往的项目更新迭代,一个功能应用的新增、删除与优化,需要消耗开发、实施、测试、财力等多方资源,部分功能模块因代码关系耦合问题也无法彻底删除,不断累积在原有系统平台上,造成冗余,与此同时,也难免伴随着系统停机更新,给用户使用带来不变。

技术实现思路

[0003]本专利技术实施实例中,一种实现基于微服务架构项目快速热插拔拓展功能组件的方法,实现的重要环节就是类加载。Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略让Java语言进行提前编译会面临额外的困难,也会让类加载时稍微增加一些性能开销, 但是却为Java应用提供了极高的扩展性和灵活性。
[0004]1、加载阶段:是指查找字节流,并且据此创建类的过程。在加载阶段,Java虚拟机需要完成以下三件事情:通过一个类的全限定名来获取定义此类的二进制字节流;将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构;在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。
[0005]2、链接阶段:这是核心的步骤,简单说是把原始的类定义信息平滑地转入 JVM 运行的过程中。细分成三个步骤:验证,用于确保类或接口的二进制表示结构上是正确的,从而确保字节流包含的信息对虚拟机来说是安全的,包含4个验证动作:文件格式验证、元数据验证、字节码验证、符号引用验证。准备,准备阶段的任务是为类或者接口的静态字段分配空间,并且默认初始化这些字段。解析,解析阶段是把常量池内的符号引用替换成直接引用的过程。
[0006]3、初始化阶段:是类加载过程的最后一步,到了初始化阶段才开始真正执行java代码。编译器自动收集实例变量初始化以及实例代码块后自动合并生成类的构造方法,子类初始化时会先调用父类构造方法,用以保证子类能正常初始化。
[0007]4、使用与卸载阶段:完成Class对象的引用,直至被方法区中的类回收后,完成卸载。
附图说明
[0008]图1为系统架构图。
具体实施方式
[0009]结合本专利技术实施例中的附图,对本专利技术实施过程描述如下:Step1:首先在项目的基于spring cloud微服务架构中预留标准化接口,负责调用javac类加载器,实现类加载。
[0010]Step2: 在加载阶段,通过调用标准化接口,将需发布的组件源文件(*.java)经过javac编译转化为方法区的运行时(Runtime)数据结构,并在内存中生成各个源文件对应的java.lang.Class对象,作为方法区这个组件的各种数据的访问入口。
[0011]Step3:在链接阶段,把原始的类定义信息平滑地转入 JVM 运行的过程中,经过文件格式验证、元数据验证、字节码验证、符号引用验证四个动作,确保类或接口的二进制表示结构的正确性,确保字节流包含的信息对jvm的安全性。再经过分配空间(准备阶段)、常量引用替换(解析阶段),完成快速加载的核心步骤。
[0012]Step4:完成Class对象的引用,直至被方法区中的类回收后,完成卸载。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.解决项目与产品函数二次开发的代码耦合问题。2.支持基于spring cloud微服务架构项目快速拓展的组件插拔方式,包括标准化接口与快速热拔插的调用逻辑。3.支持项目之间应用模块的导入导出,形成一种...

【专利技术属性】
技术研发人员:宋洋
申请(专利权)人:新国脉数字文化股份有限公司
类型:发明
国别省市:

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

1