内容简介:i. 支持 Biz 扩展点机制ii. 优化 Ark 启动期 GCiii. 支持 Biz 启动加载指定 profile 配置
发布 SOFAArk v1.0.0 版本,主要变更如下:
i. 支持 Biz 扩展点机制
ii. 优化 Ark 启动期 GC
iii. 支持 Biz 启动加载指定 profile 配置
iv. 采用 netty 替代原生 JDK NIO 启动 Telnet Server
v. 修复若干社区反馈问题
项目介绍:
SOFAArk 是一款基于 Java 实现的轻量级类隔离容器,由蚂蚁金服公司开源贡献;主要提供类隔离和应用(模块)动态部署能力;基于 Fat Jar 技术,可以将多个应用(模块)打包成一个自包含可运行的 Fat Jar,应用既可以是简单的单模块 Java 应用也可以是 Spring Boot/SOFABoot 应用; 访问网址 进入快速开始并获取更多详细信息。
原理
SOFAArk 框架包含有三个概念, Ark Container
, Ark Plugin
和 Ark Biz
; 运行时逻辑结构图如下:
在介绍这三个概念之前,为了统一术语,有必要先说一下所谓的 Ark 包
;Ark 包是满足特定目录格式要求的 Executed Fat Jar
,使用官方提供的 Maven
插件 sofa-ark-maven-plugin
可以将工程应用打包成一个标准格式的 Ark 包
;使用命令 java -jar application.jar
即可在 Ark 容器之上启动应用; Ark 包
通常包含 Ark Container
、 Ark Plugin
、 Ark Biz
;以下我们针对这三个概念简单做下名词解释:
-
Ark Container
: Ark 容器,负责整个运行时的管理;Ark Plugin
和Ark Biz
运行在 Ark 容器之上;容器具备管理多插件、多应用的功能;容器启动成功后,会自动解析 classpath 包含的Ark Plugin
和Ark Biz
依赖,完成隔离加载并按优先级依次启动之; -
Ark Plugin
: Ark 插件,满足特定目录格式要求的Fat Jar
,使用官方提供的Maven
插件sofa-ark-plugin-maven-plugin
可以将一个或多个普通的Java Jar
包打包成一个标准格式的Ark Plugin
;Ark Plugin
会包含一份配置文件,通常包括插件类导入导出配置、插件启动优先级等;运行时,Ark 容器会使用独立的PluginClassLoader
加载插件,并根据插件配置构建类加载索引表,从而使插件与插件、插件与应用之间相互隔离; -
Ark Biz
: Ark 业务模块,满足特定目录格式要求的Fat Jar
,使用官方提供的Maven
插件sofa-ark-maven-plugin
可以将工程应用打包成一个标准格式的Ark-Biz
包;是工程应用模块及其依赖包的组织单元,包含应用启动所需的所有依赖和配置;
在运行时, Ark Container
优先启动,自动解析 classpath 包含的 Ark Plugin
和 Ark Biz
,并读取他们的配置,构建类加载索引关系;然后使用独立的 ClassLoader 加载他们并按优先级配置依次启动;需要指出的是, Ark Plugin
优先 Ark Biz
被加载启动; Ark Plugin
之间是双向类索引关系,即可以相互委托对方加载所需的类; Ark Plugin
和 Ark Biz
是单向类索引关系,即只允许 Ark Biz
索引 Ark Plugin
加载的类,反之则不允许。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 深度解析阿里百万级开源容器引擎 PouchContainer 的富容器技术
- Kontena 1.3.0 发布,开源应用容器
- 【开源访谈】厉华:写一个开源容器引擎会是什么样的体验?
- 红帽宣布发布企业容器仓库开源项目 Quay
- 开源Android容器化框架Atlas开发者指南
- 京东618:容器技法日趋娴熟,数个项目即将开源回馈社区
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。