与上一代 SuperMap 服务器产品的集群服务系统相比,SuperMap iServer 的集群不但保留了 GIS 应用的冗余设计,还增加了集群服务的冗余设计,即 SuperMap iServer 支持配置备份集群服务,从而提供了更高的可靠性,部署也更加灵活。
图 2 集群的容错机制-集群服务器和 GIS 服务器冗余设计
GIS 应用的冗余设计
GIS 应用的冗余设计是指在一个集群系统中同时配置两个或以上 GIS 应用,这些 GIS 应用提供的 GIS 服务具有处理相同地图数据及其 GIS 功能的能力。通过集群服务的负载均衡能力,动态指定客户端请求由哪个 GIS 服务负责处理。
首先,这种冗余设计可以避免 GIS 应用的单点失效,保障 GIS 应用的稳定可靠、不间断运营能力。如图 2,在集群系统中,配置了4个 GIS 应用。集群服务负责监听 GIS 应用中 GIS 服务的状态,GIS 应用负责定期向集群服务报告自己的状态,当某一 GIS 应用,如 GIS 应用2出现故障或者其他情况无法处理 GIS 请求时,集群服务会监听到这一信息,将 GIS 应用2提供的 GIS 服务从负载均衡信息表中清除,当客户端向集群服务提交 GIS 请求时,集群服务根据集群负载均衡信息选择其他具有相应服务能力的 GIS 服务,并将该 GIS 服务对应的 GIS 应用节点的节点信息返回给客户端。当 GIS 应用2恢复能力,重新加入集群系统中,GIS 应用2会自动向集群服务报告,同时集群服务更新负载均衡列表,加入 GIS 应用2的 GIS 服务信息,继续为客户端的 GIS 请求服务。
其次,GIS 应用的冗余设计可以提高 GIS 计算能力,从而为 Service GIS 系统带来高并发访问和高效率处理的性能。当多客户端并发访问集群系统时,集群系统可以使用配置的多个具有相同服务能力的 GIS 应用共同处理这些请求,如图 2所示,如果100个客户端并发访问,且4个 GIS 应用的配置相同(包括硬件服务器配置、处理的 GIS 数据和 GIS 功能),经过集群服务的分派,100个请求会平均分配给 GIS 应用1至4均衡承担,每个 GIS 应用负责处理25个请求。如果不使用集群,那么一个 GIS 应用需要处理100个 GIS 请求。因此,对于高并发用户访问和复杂 GIS 空间处理的 Service GIS 系统采用集群机制可以提升系统的效能,保证系统的可靠性。
集群服务除了可以为意外停机、软硬件损坏等提供可靠性保障之外,也可以通过控制部分服务器的运行状态,为检修、升级、测试等计划任务提供方便,实现应用服务的不间断运行。
集群服务的冗余设计
集群服务的冗余设计原理与 GIS 应用的冗余设计相同,可以避免集群服务引起的单点失效。在仅有一台集群服务的情况下,当这台集群服务出现故障的时候,整个集群都将无法对外提供服务,造成集群的单点失效。为了避免这种情况,SuperMap iServer 支持配置备份集群服务,以提供集群服务的容错机制,如图 2所示,集群系统配备了两个集群服务同时对外提供 GIS 服务,当其中一个集群服务 a1故障失效时,客户端对集群服务进行错误识别,并将 GIS 访问请求直接转由集群服务 a2分派。