SOFAArk v1.0.0 release version, the main changes are as follows :
i. Support Biz extension point mechanism
ii. optimization Ark start of GC
iii. Support Biz boot loader configuration profile specified
iv. netty alternative uses native JDK NIO Server to start the Telnet
v. to repair a number of community feedback problems
Project Introduction:
SOFAArk is an isolated lightweight container based on Java classes implemented by ants gold dress company revenue contribution; the main provider class isolation and application (module) dynamic deployment capabilities; based Fat Jar technology, multiple applications (modules) can be packaged into a self-contained Fat Jar can run, applications can be either simple single module Java applications can also be a Spring Boot / SOFABoot apply; visit the website to enter the fast start and get more details.
principle
SOFAArk frame includes three concepts Ark Container
, Ark Plugin
and Ark Biz
; runtime logic structure is as follows:
Before introducing these three concepts, in order to unify the term, it is necessary to talk about the so-called Ark 包
; Ark packages to meet the specific requirements of the directory format Executed Fat Jar
, using the official offer Maven
plug-in sofa-ark-maven-plugin
can be engineering applications packaged into a standard format Ark 包
; use the command java -jar application.jar
to start the application on the Ark of the container; Ark 包
typically contain Ark Container
, , Ark Plugin
; Ark Biz
we focused on the following three concepts simply do the next Glossary:
-
Ark Container
: Ark of the container, while the management is responsible for the entire operation;Ark Plugin
andArk Biz
run on Ark container; container management with multi-plug, multi-function application; container after a successful start, will be automatically included in the classpath parsingArk Plugin
andArk Biz
dependency, complete isolation load and press priority level in order to start it; -
Ark Plugin
: Ark plug, to meet the specific requirements of the directory formatFat Jar
, using the officialMaven
plugsofa-ark-plugin-maven-plugin
one or more may be commonJava Jar
packet packaged into a standard formatArk Plugin
;Ark Plugin
contains a configuration file, import and export typically comprises plug-type configuration, plug boot priority level and the like; runtime, Ark uses separate containersPluginClassLoader
loaded plug, and constructing the index table according to the widget class loader configured such that the isolation between the plug and the plug, plug and applications; -
Ark Biz
: Ark service module, to meet the specific requirements of the directory formatFat Jar
, using the officialMaven
plugsofa-ark-maven-plugin
engineering applications can be packaged into a standard formatArk-Biz
packet; engineering application modules and their dependencies organizational unit, comprising all the dependencies needed to launch an application and configuration;
At runtime, Ark Container
prioritized startup, automatically resolve the classpath contained Ark Plugin
and Ark Biz
, and read their configuration, load index build class relations; then use a separate ClassLoader to load them and prioritize configured to start up; it should be noted that the Ark Plugin
priority Ark Biz
is loaded start; Ark Plugin
is between a two-way relationship category index that can be entrusted to load the required classes each other; Ark Plugin
and a Ark Biz
one-way relationship category index, which only allows Ark Biz
the index Ark Plugin
to load the class, not vice versa.