多个集合体拓扑

[Version 2.0.0.3 and later] 您在为包含多个集合体的部署选择拓扑时有几个不同选项。

连接 集合体 的链路

复制数据网格基础结构是相互具有双向链路的集合体的连接图。两个集合体可通过链路传达数据更改。例如,最简单的拓扑是相互之间存在一条链路的一对集合体集合体是按字母顺序命名的:A、B、C,从左往右以此类推。链路可横过广域网 (WAN),跨越很长的距离。即使链路中断,您也仍然可以在其中任一集合体中更改数据。链路重新连接集合体时,拓扑会协调更改。如果网络连接中断,链路会自动尝试重新连接。

链路

在您设置链路后,产品会首先尝试使每一个集合体变得相同。然后,任何集合体中发生更改时,eXtreme Scale 都将尝试保持相同状态。每个集合体的目标是成为与链路所连接的每个其他集合体完全相同的镜像。集合体之间的复制链路有助于确保一个集合体中所作的任何更改复制到其他集合体

线性拓扑

虽然线性拓扑是很简单的部署,但也能够表现出链路的一些好处。 首先,集合体不必直接连接到其他每个集合体就可接收更改。集合体 B 可从 集合体 A 获取更改。 集合体 C 通过连接集合体 A 和 C 的集合体 B 从集合体 A 接收更改。同样,集合体 D 通过集合体 C 从其他集合体接收更改,此功能可将更改源的更改分发负载传播开去。

线性拓扑

请注意,如果集合体 C 发生故障,那么将发生以下操作:
  1. 集合体 D 将变得孤立,直至 集合体 C 重新启动
  2. 集合体 C 会将自己与集合体 B 同步,而后者又是集合体 A 的副本
  3. 集合体 D 会使用集合体 C 将自己与集合体 A 和 B 上的更改同步。这些更改最初发生时,集合体 D 是孤立的(当时集合体 C 已发生故障)。
最终,集合体 A、B、C 和 D 都会再次变得相同。

环形拓扑

环形拓扑是更有弹性的拓扑的示例。当某个集合体或单条链路发生故障时,仍能工作的集合体仍然可以获取更改。集合体将避开故障,周游该环。无论环形拓扑有多大,每个集合体与其他集合体之间最多只有两条链路。传播更改的等待时间可能很长。来自特定集合体的更改可能需要在若干链路上传递,然后所有集合体才能拥有这些更改。线性拓扑也有这个特点。

环形拓扑

您也可以部署更加复杂的环形拓扑,在环的中间部署一个根集合体。根集合体可用作协调中心点。对于根集合体中发生的更改,其他集合体将充当远程协调点。根集合体可以对集合体之间的更改进行仲裁。 如果环形拓扑在根集合体的周围包含多个环,那么该集合体只能对最里面的环中的更改进行仲裁。但是,仲裁结果会散布到其他环中的集合体

集中星型 (hub-and-spoke) 拓扑

集中星型拓扑中,更改通过集散点集合体来传递。因为集散点是指定的唯一中间集合体,集中星型拓扑的等待时间较短。集散点集合体通过一条链路连接到每个轴辐集合体。集散点在各个集合体中分发更改。集散点充当冲突的协调点。在更新率很大的环境中,为了保持同步,集散点可能需要在比轴辐更多的硬件上进行传递。WebSphere® DataPower® XC10 Appliance 是为进行线性扩展而设计的,这意味着您可以不费力地根据需要扩展集散点。但是,如果集散点出现故障,那么在其重新启动之前,不会分发更改。轴辐集合体上的任何更改都会在集散点重新连接后进行分发。

集中星型 (hub-and-spoke) 拓扑

您还可以使用具有完全复制式客户机的策略,这是一种拓扑变体,它使用一对运行的服务器来充作集散点。每个客户机都会用客户机 JVM 中的目录创建自包含的单个容器数据网格。客户机使用其数据网格来连接到集散点目录。通过此连接,客户机可在获得与集散点的连接时立刻与集散点进行同步。

客户机所作的任何更改都在客户机本地进行,这些更改将异步复制到集散点。集散点充当仲裁集合体,将更改分发到连接的所有客户机。完全复制式客户机拓扑可为对象关系映射器提供可靠二级高速缓存,如 OpenJPA。更改将通过集散点快速在客户机 JVM 中进行分发。如果高速缓存大小可包含在可用堆空间中,那么该拓扑对于这种的二级高速缓存是很可靠的体系结构。

如有必要,请在多个 JVM 上使用多个分区来扩展集散点集合体。因为所有数据仍必须放在单个客户机 JVM 中,所以使用多个分区可增大集散点的容量,以便对更改进行分发和仲裁。但是,使用多个分区并不会更改单个集合体的容量。

树形拓扑

您还可以使用无环有向树。任何无环树都没有循环或回路,有向设置则只允许父级和子级之间存在链路。 对于具有许多集合体的拓扑,此配置很有用。在这些拓扑中,使用一个中央集散点来链接到每一个可能的轴辐是不实际的。如果您必须添加子级集合体,而无需更新根集合体,这种拓扑也很有用。

树形拓扑

树形拓扑仍然可在根集合体中具有中心协调点。第二级仍然可充当它们之下的集合体中发生的更改的远程协调点。根集合体只能在第二级集合体之间进行更改仲裁。您还可以使用 N 元树,每个树中每个级别都可以有 N 个子代。每个集合体通过 n 条链路向外连接。

完全复制式客户机

此拓扑变体中包含充当集散点的一对运行的服务器。每个客户机都会用客户机 JVM 中的目录创建自包含的单个容器数据网格。客户机可使用其数据网格来连接到集散点目录,这样客户机就可在获得与集散点的连接时立刻与集散点进行同步。

客户机所作的任何更改都在客户机本地进行,这些更改将异步复制到集散点。集散点充当仲裁集合体,将更改分发到连接的所有客户机。完全复制式客户机拓扑可为对象关系映射器提供很好的二级高速缓存,如 OpenJPA。更改将通过集散点快速在客户机 JVM 中进行分发。只要高速缓存大小可包含在客户机的可用堆空间中,该拓扑对于这种的二级高速缓存而言就是很好的体系结构。

如有必要,请在多个 JVM 上使用多个分区来扩展集散点集合体。因为所有数据都仍然必须放在单个客户机 JVM 中,所以使用多个分区可增大集散点的容量,以便对更改进行分发和仲裁,但这并不会更改单个集合体的容量。