集群系统通信机制

发送反馈


集群子节点加入集群后,会每隔2秒向父节点报告一次,集群父节点收到报告后,认为该子节点是可用的子节点,且该子节点会出现在集群服务器的“集群成员列表”中。当客户端或 GIS 应用服务器向集群服务器(父节点)发送请求时,集群服务器会基于负载均衡原则将任务分配给各个集群成员(子节点),如下图所示。集群成员响应请求并将响应的结果返回给集群服务器,集群服务器再将收到的响应结果返回给发送请求的客户端或 GIS 应用服务器。例如客户端浏览地图时,收到的地图切片可能来自不同的集群成员,而不是仅来自客户端请求的集群服务器。

图1 集群通信机制

集群有效性验证

在以下情况集群服务器会判定集群成员超时,不会给该成员分配任务或将已分配的请求任务转发给其他节点处理:

其中,连接超时和响应超时的时间设置都可以通过配置文件来设置,详见利用配置文件管理集群

集群正确性验证

SuperMap iServer 提供针对地图服务的集群正确性自动检测功能,即集群体系中会自动检测子节点的服务和响应结果是否正确。其中包括子节点第一次加入集群时的检查验证和定时的自动检查。执行正确性检查时,系统会将同一个请求发给各个子节点,如果某个子节点响应结果与其他节点不同,则判定错误后会将请求转发给其他节点处理,从而有效避免响应结果的错误。

例如,如果系统收到的是地图服务的出图请求,则会根据各个子节点的响应结果,进行图片对比。对于客户端浏览地图时的出图请求来说,集群正确性检测可以有效避免因某个子节点的数据问题而导致的出图错误。

正确性验证的基本原则是:假定多数子节点是正确的,即以多数子节点的响应结果为正确性判定依据。当待检测服务节点个数等于2,且两个节点的结果不一致时,有以下约定: