单层集群结构中集群服务节点具有三种事务的处理能力,包括监听 GIS 应用节点、更新负载均衡信息和与 GIS 应用端反馈。SuperMap iServer 的集群服务相比上一代 SuperMap 服务器产品的集群增加了另外两项事务处理能力,即监听集群服务节点信息和向上报告本集群服务节点信息,从而使 SuperMap iServer 能够支持多层集群的结构。

多层集群结构打破了传统技术中仅 GIS 应用节点能够加入集群服务的约束,支持任意集群服务节点、GIS 应用节点动态加入到集群服务中,从而构建出有利于提高 GIS 服务能力和 GIS 计算效率的多层集群结构。如图 4所示:

图 4 分布式层次集群结构图

分布式层次集群由多个根集群服务节点、多个子集群服务节点和多个 GIS 应用节点构成。在每一个层次上,都支持 GIS 应用节点和集群服务节点的冗余设计,以保证集群系统的整体容错能力。

在多层集群结构中,根集群服务节点可以包括一个或者多个子集群服务节点,和(或)一个或者多个 GIS 应用节点。如图 4所示,根集群服务节点包括四个子集群服务节点 A1、A2、B1、B2和两个 GIS 应用节点 n1、n2。子集群服务节点可以包括一个或者多个第二层子集群服务节点,和(或)一个或者多个 GIS 应用节点。子集群服务节点 A2包括两个第二层子集群服务节点 a1、a2和 2 个 GIS 应用节点 m1、m2。依次类推,多层集群结构通过层次式的组合形成一个大型的 GIS 服务系统。

在 SuperMap iServer 的集群系统中,所有子集群服务节点和 GIS 应用节点都是动态注册到集群系统中的,也可以动态卸载出集群系统。多层集群结构中,根集群服务节点负责监控下一级 GIS 应用节点的节点信息,和(或)下一级子集群服务的负载均衡信息;负责根据监控的 GIS 应用节点信息和(或)子集群服务节点信息更新根集群服务节点的负载均衡信息;负责接收 GIS 应用端的服务请求,并根据根集群服务节点的负载均衡信息选择满足所述服务请求的 GIS 应用节点,并将该 GIS 应用节点的节点信息返回给所述 GIS 应用端,使客户端自动连接到对其请求来说最佳的 GIS 应用节点。子集群服务节点包括上一节介绍的单层集群服务结构中的集群服务节点具有的能力,除此之外还包括:监控下一级子集群服务节点信息,将本集群服务节点的负载均衡信息上报给上一级子(根)集群服务节点。

GIS 应用节点处理内容与单层集群服务结构的 GIS 应用节点相同,如果不与客户端相连,则主要负责响应客户端的 GIS 请求并返回 GIS 服务并向上级集群服务节点报告状态信息;对于与客户端连接的 GIS 应用节点,除了可以直接处理接收到的客户端请求外,还可以将接收到的客户端服务请求发送给所连接的集群系统,集群系统会依据本集群服务的负载均衡信息选择满足服务请求的 GIS 应用节点,并返回该服务节点的节点信息,以便客户端自动连接到对其请求来说最佳的 GIS 服务节点。