2015年7月13日星期一

Fuse_018:基础入门之七:fabric 及相关概念

环境:JBoss Fuse 6.2.0 + Maven 3.2.2


1. Fabric
一个 fabric 是 container 的集合,这些 container 共享一个 fabric registry。 fabric registry 由多个彼此之间复制关系的数据库组成,其中保存了所有与 container 相关的信息。fabric 用来管理分布式网络环境下的 container,这些 container 可能部署在多台机器上。

2. Fabric Ensemble
一个 Fabric Ensemble 是一组 Fabric Server 的集合,用来维持 fabric registry 的状态。Fabric Ensemble 由多个彼此之间复制关系的数据库实现,并且使用投票选举机制保证 fabric registry 中的数据在所有 container 上保持一致。为防止“网裂”,Fabric Ensemble中的Fabric Server 数量必须是单数。在生产环境中,一般至少有3~5个 Fabric Server,并且这些 Fabric Server 要在不同的机器上,用于容错。

3. Fabric Server
Fabric Server 是组成 fabric 的基石,用来保持 fabric registry 的副本。每个 Fabric Server 中都安装了一个 registry service。registry service 基于 Apache ZooKeeper,维护一个 registry 数据库副本,并且提供了一个 ZooKeeper server,fabric agent 将和 ZooKeeper 连接,用来获取 registry data。

4. Fabric Container
一个 Fabric Container 知道所有 Fabric Server 的位置,它可以从 Fabric Ensemble 中的任意一个 Fabric Server 获取 registry 数据。每个 Fabric Container 都安装了一个 Fabric Agent。Fabric Agent 实时监控 fabric registry,当 registry 中有变化时,Fabric Agent 将立即更新 container,与 registry 设置保持一致。

5. Profile
一个 Fabric profile 是一个抽象的部署单元,包括发布应用到一个 Fabric Container 需要的所有数据。Profile 只适用于 fabric 上下文。Features 或 bundles 适合直接发布到 Fabric Container 中,但其生命周期较短。

说明:container 中的 Fabric Agent 完全改变了部署模型,只能使用 profile 作为部署单元。虽然,仍可以部署 bundle 或 feature,但这些部署不是永久性的。只要重新启动 container,Fabric Agent 将会用原来的 profile 配置替代已有的部署内容。

参考文献:
1. Red_Hat_JBoss_Fuse-6.2-Getting_Started-en-US.pdf

没有评论: