JBoss AS7(Application Server 7)支持两种引导模式:standalone和domain(域)。
Standalone模式
对于很多应用,并不需要domain管理能力,JBoss AS7实例可以作为一个"单独的服务"运行。一个单独的服务实例就是一个独立的进程,类似于JBoss Application Server 3, 4, 5, or 6中的实例。Standalone实例可以通过standalone.sh 或者 standalone.bat脚本来启动。
如果用户需要一个多实例的运行服务,那么用户需要自己管理这些服务器,例如用户需要把服务部署到每台服务器上面。
最常规的做法是把多个Standalone实例部署为一个HA集群,如同之前的JBoss Application Server 3, 4, 5, 和6。
Domain模式
JBoss AS7的一个主要的新特性就是通过一个Host Controller管理多个JBoss AS7域服务实例。多个服务实例构成一个"domain"。它们统一由Domain Controller来集中管理。同一域下面的所有JBoss AS7使用相同的管理策略。Domain服务实例可以跨多个物理(虚拟)机,每个实例可以指定被某个Host Controller管理,其中的一个Host Controller担任Domain Controller,所有的Host Controller被Domain Controller管理,形成三级管理模式。
当在一台Host上面使用domain.sh或者domain.bat启动JBoss AS7域服务实例时,该Host需要启动一个Host Controller和至少一个JBoss AS7实例。再从多个Host Controller中选取一个Host Controller配置为Domain Controller。
以下图为例:
Host
每个"Host"框代表一个服务机或者虚拟机,一台物理机上面可以运行0个、1个或者多个实例。
Host Controller
当在Host上面运行domain.sh或者domain.bat,会启动一个Host Controller进程,Host Controller不对外提供负载,只负责启动或者关闭自己管理的JBoss AS7实例,并通过与Domain Controller交互来管理自己的JBoss AS7实例。Host Controller配置文件domain/configuration/host.xml位于解压后的安装目录。
host.xml的配置信息主要有:
1. 当前Host上面需要启动的JBoss AS7实例的名称列表。
2. Host Controller和Domain Controller的连接配置(IP,port等),分两种情况,一种是如何连接到Domain Controller,一种是自己担任Domain Controller。
Domain Controller
Domain Controller就是被配置为担任管理角色的Host Controller。其主要职责是统一部署和管理JBoss AS7实例,把配置信息下发给Host Controller,并通过Host Controller把配置信息下发到JBoss AS7实例。
Server Group
服务器组是指使用相同配置管理的一组服务器,每一个JBoss AS7实例都是某个服务器组的成员,即使该组只有一个成员。Domain Controller和Host Controller需要保证同一组内的JBoss AS7实例使用相同的配置文件和部署文件。
该选择Standalone还是Domain?
如果自己已经搭建了HA集群,那么使用Standalone就足够了,否则可考虑使用Domain模式,借助Domain Controller和Host Controller来管理JBoss AS7实例。