Sermant
Sermant copied to clipboard
sermant-agentcore-core class isolation refactoring
框架存在问题
- 核心服务互相依赖的加载优先级:核心服务中,部分服务以来其他服务,服务启动时,如果未能先启动被依赖的服务,服务将会启动失败,这在后续的服务扩展中,问题会越来越严重
- 核心服务的开关优化:当前框架,在用户使用过程中,有一些核心服务,客户并不需要使用,当前系统中是在配置文件中指定不需要加载服务的全限定类名,这种方式使用难度较大,当服务增多时,配置的值将会很复杂。
- 隔离框架第三方依赖
如何解决
- 新增核心服务的优先级属性,通过优先级限制,依赖服务在被依赖服务之后启动
- 各个核心服务新增配置开关,在配置文件中修改是否启动
- 通过定义FramworkClassLoader,用于加载核心能力的接口实现,将框架涉及到的第三方依赖类保留在FramworkClassLoader的内存空间