基于JMX,易于管理、便于扩展、热部署、模块化。
4,microkernel
5,microcontainer,提供了对pojo的支持
wiki
什么是微内核 http://www.jboss.org/community/docs/DOC-10671
什么是微容器 http://www.jboss.org/community/docs/DOC-10668
--- --- ---
JBoss微内核是运行在JBossMX上的一组MBean。
完全的模块化设计。
提供了扩展类,把MBean的概念扩展到了服务和部署中。
特 性
- 占用内存少
- 类加载管理 - 除了内核以外都能够热部署
- 插件化部署 - 你能够从你的自定义配置里部署任何东西
- 完全的可配置性 - 即使是加载过程也能够配置和替换
- NetBoot - 能够从一个很小的内部加载器上启动
- 生命周期和部署管理 - 完整的两阶段生命周期
- 组件配置 - 通过JMX和PropertyEditors
- 管理 - 基于JMX
- 分离服务 - 得益于JMX invocation的概念,各服务松散耦合,存在于总线上(MBeanServer)
架 构
概览
微内核由3个主要组件组成:
- Server - 启动/控制 服务
- JBoss/JMX - jmx实现
- System - 附加服务和支持类
The Server
server负责启动。它实例化jmx MBean服务器,并在上面注册自己和几个用于基本的管理功能的MBean。最后,把部署器也注册进去。
JBoss/JMX
JMX实现提供了一个用于注册所有服务的总线。它还提供了一个类加载器的实现,用于提供热部署能力。
The System
JBoss微内核由3个独立的组件组成:
Service Management 服务管理器
- ServiceCreator - 实例化服务?
- ServiceConfigurator - 配置服务
- ServiceController - 管理服务的生命周期和依赖
Support Classes 支持类
从组成服务器的组件里抽象出的MBean?
- Services - 抽象服务,对它有提供生命周期管理
- Deployer - 对一个服务的扩展,使得它能够部署其他服务
- Scanners - 监控和重部署配置的变更
- DeploymentInfo - 用于部署的通用的元数据对象
Deployers 部署器
负责根据配置文件,创建其他服务。
其中3个核心的部署器:
- MainDeployer - 所有部署器的注册,它知道所有注册了的部署器
- JARDeployer - 用于注册jar、zip存档
- SARDeployer - 用于注册 service archives
源码树
以下是一个JBoss源码树的简明概览。
签出JBoss代码之后,你能够在system子目录中找到它。
构建脚本
build.bat - 用于windows的
build.sh - 用于unix的
build.xml - ant的
源代码
src
用于启动微内核的操作系统脚本
bin
manifests
etc
真实的配置和log4j 配置文件
resources
dtd
org/jboss
main
org.jboss - 主引导类和一个用于读取version.properties文件的辅助类
org.jboss.deployment - 用于部署的基础设施,包括main, jar和service的部署器
org.jboss.deployment.cache - 用于缓存远程部署的服务
org.jboss.deployment.scanner - 用于监控部署和自动重部署的服务
org.jboss.system - 服务基础设施,包括服务配置器和服务控制器
org.jboss.system.server - 微内核的接口和默认实现
启动
启动过程是比较简单的。这时因为微内核被设计成轻量的,大多数工作是由启动过程创建的服务完成的。
step 1 - 创建bootstrap
step 2 - 初始化服务器
step 3 - 启动服务器
step 4 - 启动其他服务
配 置
启动脚本参数
微内核配置属性
boot.log
概 念
Service
Deployer
设 计
...