虽然在多区域环境中部署 Java ES 的总体目标是实现产品组件运行时隔离和有效率的资源利用,但多区域环境可用于实现许多更具体的目标。为什么对 Java ES 使用区域?中对上述内容做了论述。在多区域环境中安装和管理 Java ES 的策略在很大程度上取决于您试图要达到哪个目标。
表 A–2 对五种方案、每种方案所对应的安装和管理策略以及它们旨在实现的目标做了比较。尽管在某些情况下可以将这几种方案混在一起使用,但结果可能会出现问题,并可能会造成管理混乱。因此,Java ES 发行版本 5 通常不支持混合使用这几种方案的部署。
此外,由于方案 1 和方案 5 存在问题,因此 Java ES 发行版本 5 当前不支持这两种方案(虽然对于方案 5 而言,可能会针对特定产品组件制定出应对方法)。
表 A–2 Java ES 的区域安装和管理策略
方案(安装策略) |
管理策略 |
注释 |
|
---|---|---|---|
1:在启用传播的全局区域中安装产品组件和共享组件。在非全局区域中不安装任何组件。* |
组件生命周期管理:全局管理员 配置和运行时管理:区域管理员 |
集中式产品组件生命周期管理 产品组件配置和运行时管理的组织独立性 |
存在的问题:尚未针对 Java ES 产品组件(Message Queue 除外)提供支持。要求在全局区域中安装产品组件支持,在非全局区域中进行配置和运行时管理。 |
2:在全局区域中安装共享组件,在完全根区域中安装产品组件 |
共享组件生命周期管理:全局管理员 产品组件生命周期管理:区域管理员 配置和运行时管理:区域管理员 |
集中式共享组件生命周期管理 产品组件生命周期、配置和运行时管理的组织独立性 |
最适用的情况是:所有组件属于同一 Java ES 版本或升级所有完全根区域中的所有产品组件。 |
3:在全局区域中安装共享组件,在稀疏根区域中安装产品组件** |
与方案 #2 相同 |
集中式共享组件生命周期管理。 产品组件生命周期、配置和运行时管理的组织独立性 资源效率比方案 #2 高(参见完全根区域与稀疏根区域) |
在稀疏根区域中安装产品组件时,建议采用此方案。(有些共享组件不能安装在稀疏根区域中,因此必须安装在全局区域中。) |
4:在完全根区域中安装产品组件和共享组件 |
组件生命周期管理:区域管理员 配置和运行时管理:区域管理员 |
版本分离 |
不能在全局区域中安装任何共享组件或产品组件。建议对完全根区域采用此方案。 |
5:在稀疏根区域中安装产品组件和共享组件 |
与方案 #4 相同 |
产品组件生命周期、配置和运行时管理的组织独立性 资源效率比方案 #4 高(参见完全根区域与稀疏根区域) |
存在的问题:通常无法实现,因为有许多共享组件无法安装在稀疏根区域中。 |
* 方案 1 并不区分完全根区域和稀疏根区域环境;它假定在非全局区域中不安装任何产品组件。方案 2-5 中包含在非全局区域中安装产品组件。
** 方案 3 假定未将 /opt 设置为稀疏根区域中的只读目录。如果 /opt 是只读的,则大多数 Java ES 产品组件便无法安装在稀疏根区域中,而必须改为安装在全局区域中(与方案 1 相同)。
结合表 A–2,下面给出了几种建议的做法:
根据为什么对 Java ES 使用区域?中您试图要达到的目标,预先规划 Java ES 区域部署策略。目标不同,需要的安装和管理策略便不同,如表 A–2 的不同方案所示。
避免将几种方案混合在一起使用。尤其是:
尽可能简化 Java ES 的区域部署和管理策略。在同一台计算机上,Java ES 组件的完全根和稀疏根部署不能并存。(用以支持方案 3 中的稀疏根区域部署的过程和做法可能会干扰方案 4 中的完全根区域部署。)
不要将同一个 Java ES 产品组件同时安装在全局区域和非全局区域中,即使它们属于不同版本。(升级方案 1 中的全局区域安装所需的过程可能会中断方案 4 中的非全局区域安装。)
如果完全根区域中已经安装有发行版本 4(或更早版本)的 Java ES 组件,则不要在全局区域中安装 Java ES 发行版本 5 组件(既不能安装产品组件也不能安装共享组件),也不要在全局区域中将 Java ES 组件升级到发行版本 5。换言之,当完全根区域中已经预先安装 Java ES 时,不支持方案 2。(在全局区域中执行安装或升级可能会导致在完全根区域中并存有发行版本 4 和发行版本 5 文件。)
建议的安装做法:
如果要在不同的区域中运行不同的 Java ES 产品组件,则将产品组件安装在非全局区域中(方案 2、3、4、5)。
如果要在不同的区域中运行不同的 Java ES 产品组件,但要集中管理共享组件生命周期,则先在全局区域中同步共享组件,然后在非全局区域中安装产品组件(方案 2、3)。(建议每次在稀疏根区域中安装产品组件时都要采用此做法。)
如果要实现 Java ES 产品组件的版本分离,或是出于其他原因而分离 Java ES 产品组件的部署(方案 4),则在完全根区域中安装和配置所有 Java ES 组件。不要在全局区域中安装任何 Java ES 组件。
建议的升级做法:
如果要将所有已安装的发行版本 4 产品组件升级到发行版本 5,则先在全局区域中同步所有 Java ES 共享组件,然后在安装有所需产品组件的区域中执行这些组件的升级。(发行版本 5 共享组件向后兼容。)
如果已在非区域环境中安装有发行版本 4 或发行版本 5 产品组件,并要在此环境中添加非全局区域,然后在新增的非全局区域中安装产品组件,则请务必按照以上建议的做法操作。这可能意味着需要在全局区域中卸载组件,然后再将它们重新安装到非全局区域中。
表 A–2 中的方案描述和上文介绍的建议做法不包括针对多区域环境而建议采用的 Java ES 部署体系结构。此类体系结构将适合针对多计算机网络环境而创建的部署体系结构。也就是说,多区域环境的可用性并不会改变用于实现 Java ES 部署系统高性能、高可用性、可伸缩性、安全性和可维护性的基本部署设计方法。利用多区域环境,您能够将此类部署体系结构合并到更少的计算机中。
不过,有关如何使 Java ES 部署体系结构适应多区域环境的详细信息与前几节中所讨论的所需管理策略密切相关。部署体系结构还取决于用于实现高可用性的策略。
注意,表 A–2 和上文的建议做法不包括建议的所述方案实现过程。在某些情况下,Java ES 组件的安装顺序以及非本地区域的创建顺序可能会非常重要。