iserver集群实践——分布式切图

前面介绍了,不管是普通集群,还是受控集群,我们使用集群其中一个需求就是分布式切图,我们可以使用多个iserver集群并行进行切图,以达到提高切图效率的效果。


首先需要说明的是,不管哪种集群方式,我们只能从集群的主控节点的服务来发起分布式切图。也就是在135节点集群上来实现分布式切图。

说明:如果希望某个集群子节点参与切图,在子节点加入集群需要勾选是否切图节点选项。

分布式切图包括:创建普通切图任务和创建GDP切图任务,其中GDP切图任务只支持Web墨卡托投影的地图。

iserver集群实践——分布式切图_第1张图片


iServer支持的切图类型包括:地图瓦片、属性瓦片、矢量瓦片

支持切图的存储类型包括:SMTiles、MBTiles、UGCV5、GeoPackage和分布式切片库的类型FastDFS 、MongoDB。

我们分别测试SMTiles和MongoDB两种不同的存储类型。


通过上图可以看到,如果是文件存储类型如SMTiles,系统会在主控节点135集群的默认路径下/home/sm/SuperMapiServer7C/webapps/iserver/output/sqlite创建一个sqlite数据库,其他节点都会往该数据库中添加切图数据。

iserver集群实践——分布式切图_第2张图片

我们可以看到,在切图过程中,系统会往相关的集群节点135、136、137分别安排切图任务,可以说三台集群共同完成切图任务。


可以看到,在比例尺比较小的情况下,系统并没有安排其他节点参与切图,只是在大比例尺下,将其他节点参与了相关的并发切图,这也体现了iserver在任务调度的智能性。


以上为普通集群的切图效果。


接下来我们看一下受控集群的切图效果。


我们可以看出,与普通集群切图不太一样的地方是,普通集群在小比例尺下,其他集群子节点是无需参与切图的,但是受控集群不然,在相对比较小的比例尺范围内,每一个比例尺下都会安排不同的集群节点进行切图工作,如果是较大的比例尺,会有两个或者多个集群节点参与切图,这样的安排显得比普通节点更加智能。


iserver集群实践——分布式切图_第3张图片


添加MongoDB存储

我们已经在134的数据库服务器安装了MongoDB,启动相关的服务即可,保证MongoDB服务器防火墙或者27017端口号开启,其他集群节点可以连通即可。


首先需要配置相关的分布式切片库信息,其实只要保证你的服务地址:192.168.195.134:27017连通即可,然后在分布式切图选择相关的MongoDB存储和相关的存储ID即可。

剩下的步骤都是和前面一样的,我们仍然采用受控集群进行分布式切图

iserver集群实践——分布式切图_第4张图片


当然,我们也可以查看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






你可能感兴趣的:(iserver集群实践——分布式切图)