添加切图节点 |
在分布式切图服务中,创建切图任务的服务器为切图主节点(TileMaster),其它集群子节点为切图子节点(TileWorker),所有切图环境和存储的准备、任务的创建和监控等操作,都在主节点上进行,子节点无需进行任何操作。切图任务创建后,待切图的数据会自动部署到子节点,如果主节点数据发生变更,则会自动同步到子节点。关于分布式切图的原理和内部通讯机制,请参考:SuperMap iServer 的分布式缓存机制。
TileMaster 的主要作用是按照地图的比例尺和地理范围等因素将切图任务拆分成多个细粒度的单元任务,综合调度和管理单元切图任务,并将其分配给合适的 TileWorker。各个 TileWorker 执行 TileMaster 分配的单元切图任务,并实时报告自身的工作状态。
切图节点的添加是通过 SuperMap iServer 的集群机制实现的,集群父节点即为 TileMaster,作为 TileWorker 的服务器加入 TileMaster 时,修改 TileWorker 的 iserver-system.xml 配置文件如下:
<server> ... <clustering> <reporters> <reporter> <enabled>true</enabled> <address>http://tilemaster:8090/iserver/services/cluster</address> <isTileWorker>true</isTileWorker> </reporter> </reporters> ... </clustering> ... </server>
其中,<enabled/>表示启用报告器,<address/>为集群服务器的地址,<isTileWorker/>标识服务器为切图节点。
如果 TileWorker 的服务器以受控的方式加入 TileMaster 时,除上述配置要修改,还需要修改 TileWorker 的 iserver-system.xml 配置文件如下:
<server> ... <clustering> <controllable> <enabled>true</enabled> <address>http://tilemaster:8090/iserver/services/cluster</address> <isTileWorker>true</isTileWorker> </controllable> ... </clustering> ... </server>
其中,<enabled/>表示启用报告器,<address/>为集群服务器的地址,<isTileWorker/>标识服务器为切图节点。
保存后重启 iServer。此时,TileWorker 会自动接收 TileMaster 推送过来的切图数据和单元切图任务,并加入分布式切图。
注意:创建切图任务后,切图主节点默认会将切图数据工作空间(*.smwu、*.sxwu)所在文件夹下的全部数据推送给各个子节点。因此,请将切图数据与其他数据分别存放在不同目录下。