前面介绍了,不管是普通集群,还是受控集群,我们使用集群其中一个需求就是分布式切图,我们可以使用多个iserver集群并行进行切图,以达到提高切图效率的效果。
首先需要说明的是,不管哪种集群方式,我们只能从集群的主控节点的服务来发起分布式切图。也就是在135节点集群上来实现分布式切图。
说明:如果希望某个集群子节点参与切图,在子节点加入集群需要勾选是否切图节点选项。
分布式切图包括:创建普通切图任务和创建GDP切图任务,其中GDP切图任务只支持Web墨卡托投影的地图。
iServer支持的切图类型包括:地图瓦片、属性瓦片、矢量瓦片
支持切图的存储类型包括:SMTiles、MBTiles、UGCV5、GeoPackage和分布式切片库的类型FastDFS 、MongoDB。
我们分别测试SMTiles和MongoDB两种不同的存储类型。
通过上图可以看到,如果是文件存储类型如SMTiles,系统会在主控节点135集群的默认路径下/home/sm/SuperMapiServer7C/webapps/iserver/output/sqlite创建一个sqlite数据库,其他节点都会往该数据库中添加切图数据。
我们可以看到,在切图过程中,系统会往相关的集群节点135、136、137分别安排切图任务,可以说三台集群共同完成切图任务。
可以看到,在比例尺比较小的情况下,系统并没有安排其他节点参与切图,只是在大比例尺下,将其他节点参与了相关的并发切图,这也体现了iserver在任务调度的智能性。
以上为普通集群的切图效果。
接下来我们看一下受控集群的切图效果。
我们可以看出,与普通集群切图不太一样的地方是,普通集群在小比例尺下,其他集群子节点是无需参与切图的,但是受控集群不然,在相对比较小的比例尺范围内,每一个比例尺下都会安排不同的集群节点进行切图工作,如果是较大的比例尺,会有两个或者多个集群节点参与切图,这样的安排显得比普通节点更加智能。
添加MongoDB存储
我们已经在134的数据库服务器安装了MongoDB,启动相关的服务即可,保证MongoDB服务器防火墙或者27017端口号开启,其他集群节点可以连通即可。
首先需要配置相关的分布式切片库信息,其实只要保证你的服务地址:192.168.195.134:27017连通即可,然后在分布式切图选择相关的MongoDB存储和相关的存储ID即可。
剩下的步骤都是和前面一样的,我们仍然采用受控集群进行分布式切图
当然,我们也可以查看mongodb里面的表的相关信息
> show dbs admin (empty) local 0.078GB smtiles 0.078GB > use smtiles switched to db smtiles > show tables images_-438281174 images_855198869 metadatas system.indexes tiles_-438281174 tiles_855198869 > db.tiles_855198869.find() { "_id" : ObjectId("5538f949f91268df82a4ef55"), "resolution" : 0.594198, "tile_column" : NumberLong(0), "tile_row" : NumberLong(0), "tile_id" : "0.59419813064_0_0", "create_time" : NumberLong("1429770060942") } { "_id" : ObjectId("5538f949f91268df82a4ef57"), "resolution" : 0.594198, "tile_column" : NumberLong(0), "tile_row" : NumberLong(1), "tile_id" : "0.59419813064_0_1", "create_time" : NumberLong("1429770061008") } { "_id" : ObjectId("5538f949f91268df82a4ef59"), "resolution" : 0.594198, "tile_column" : NumberLong(1), "tile_row" : NumberLong(0), "tile_id" : "0.59419813064_1_0", "create_time" : NumberLong("1429770061028") } { "_id" : ObjectId("5538f949f91268df82a4ef5b"), "resolution" : 0.594198, "tile_column" : NumberLong(1), "tile_row" : NumberLong(1), "tile_id" : "0.59419813064_1_1", "create_time" : NumberLong("1429770061068") } { "_id" : ObjectId("5538f949f91268df82a4ef5d"), "resolution" : 0.594198, "tile_column" : NumberLong(2), "tile_row" : NumberLong(0), "tile_id" : "0.59419813064_2_0", "create_time" : NumberLong("1429770061090") } { "_id" : ObjectId("5538f949f91268df82a4ef5f"), "resolution" : 0.594198, "tile_column" : NumberLong(2), "tile_row" : NumberLong(1), "tile_id" : "0.59419813064_2_1", "create_time" : NumberLong("1429770061105") } { "_id" : ObjectId("5538f94af91268df82a4ef61"), "resolution" : 0.297099, "tile_column" : NumberLong(0), "tile_row" : NumberLong(0), "tile_id" : "0.29709906532_0_0", "create_time" : NumberLong("1429770061582") } { "_id" : ObjectId("5538f94af91268df82a4ef63"), "resolution" : 0.297099, "tile_column" : NumberLong(0), "tile_row" : NumberLong(1), "tile_id" : "0.29709906532_0_1", "create_time" : NumberLong("1429770061649") } { "_id" : ObjectId("5538f94af91268df82a4ef65"), "resolution" : 0.297099, "tile_column" : NumberLong(0), "tile_row" : NumberLong(2), "tile_id" : "0.29709906532_0_2", "create_time" : NumberLong("1429770061709") } { "_id" : ObjectId("5538f94af91268df82a4ef67"), "resolution" : 0.297099, "tile_column" : NumberLong(1), "tile_row" : NumberLong(0), "tile_id" : "0.29709906532_1_0", "create_time" : NumberLong("1429770061772") } { "_id" : ObjectId("5538f94af91268df82a4ef69"), "resolution" : 0.297099, "tile_column" : NumberLong(1), "tile_row" : NumberLong(1), "tile_id" : "0.29709906532_1_1", "create_time" : NumberLong("1429770061784") } { "_id" : ObjectId("5538f94af91268df82a4ef6b"), "resolution" : 0.297099, "tile_column" : NumberLong(1), "tile_row" : NumberLong(2), "tile_id" : "0.29709906532_1_2", "create_time" : NumberLong("1429770061797") } { "_id" : ObjectId("5538f94af91268df82a4ef6d"), "resolution" : 0.297099, "tile_column" : NumberLong(2), "tile_row" : NumberLong(0), "tile_id" : "0.29709906532_2_0", "create_time" : NumberLong("1429770061820") } { "_id" : ObjectId("5538f94af91268df82a4ef6f"), "resolution" : 0.297099, "tile_column" : NumberLong(2), "tile_row" : NumberLong(1), "tile_id" : "0.29709906532_2_1", "create_time" : NumberLong("1429770061890") } { "_id" : ObjectId("5538f94af91268df82a4ef71"), "resolution" : 0.297099, "tile_column" : NumberLong(2), "tile_row" : NumberLong(2), "tile_id" : "0.29709906532_2_2", "create_time" : NumberLong("1429770061909") } { "_id" : ObjectId("5538f94af91268df82a4ef73"), "resolution" : 0.297099, "tile_column" : NumberLong(3), "tile_row" : NumberLong(0), "tile_id" : "0.29709906532_3_0", "create_time" : NumberLong("1429770061928") } { "_id" : ObjectId("5538f94af91268df82a4ef75"), "resolution" : 0.297099, "tile_column" : NumberLong(3), "tile_row" : NumberLong(1), "tile_id" : "0.29709906532_3_1", "create_time" : NumberLong("1429770061948") } { "_id" : ObjectId("5538f94af91268df82a4ef77"), "resolution" : 0.297099, "tile_column" : NumberLong(3), "tile_row" : NumberLong(2), "tile_id" : "0.29709906532_3_2", "create_time" : NumberLong("1429770061969") } { "_id" : ObjectId("5538f94af91268df82a4ef79"), "resolution" : 0.297099, "tile_column" : NumberLong(4), "tile_row" : NumberLong(0), "tile_id" : "0.29709906532_4_0", "create_time" : NumberLong("1429770061989") } { "_id" : ObjectId("5538f94af91268df82a4ef7b"), "resolution" : 0.297099, "tile_column" : NumberLong(4), "tile_row" : NumberLong(1), "tile_id" : "0.29709906532_4_1", "create_time" : NumberLong("1429770062009") } Type "it" for more