如果您希望将地图瓦片进行分布式存储,那么在创建预缓存任务之前,需要先创建分布式切片库。目前支持的分布式切片库的类型有 FastDFS 、MongoDB、OTS。
登录服务管理器(http://<server>:<port>/iserver/manager),点击进入“分布式切片库”即可看到已有的分布式切片库列表。在切片存储列表中展示了当前切图主节点中,所有已创建分布式切片库,点击存储 ID,可查看详细的存储配置信息以及生成的切片集列表。
点击“添加分布式切片库”按钮,可以看到添加新的分布式切片库时,需要创建一个“存储 ID”作为其唯一标识,需要选择切片库类型,如 FastDFS、MongoDB、OTS。不同的切片库创建时需要的参数是不同的,在创建前请确认分布式存储服务器可用。
添加 FastDFS 存储
FastDFS 是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。FastDFS 服务端有两个角色:跟踪器(Tracker)和存储节点(Storage)。FastDHT 是一个基于键值对(Key Value Pair)的高效的分布式 Hash 系统,用于保存切图结果文件名与存储文件名之间的映射关系。有关 FastDFS 的安装与配置,请参考: FastDFS 的安装与配置。
如上所述,添加 FastDFS 存储时,需要设置存储服务器,即 FDFS Trackers 和 FDHT Groups 服务器的地址。
参数名称 | 说明 |
FDFS Trackers |
跟踪器(Tracker)起负载均衡的作用,负责调度服务器,跟踪器由一台或多台服务器组成,所有服务器都是对等的,可以根据服务器的压力情况增加或减少,其服务器可以随时增加或下线而不会影响在线服务。 添加跟踪器中服务器的格式为:<server>:<port>,例如:192.168.110.10:22122。 具体的 IP 和端口请参见:配置 FastDFS,即 tracker.conf 中 bind_addr 和 port 的配置。 |
FDHT Groups | FastDHT 由一个或多个组(Group)组成,每个组由一台或多台服务器组成,同组服务器上存储相同的数据,组内各个服务器对等,数据同步只在同组的服务器之间进行。 添加 Group 中服务器的格式为:<server>:<port>,例如:192.168.110.10:11411。 具体的端口请参见:配置 FastDHT,即 fdhtd.conf 中 bind_addr 和 port 的配置。 |
您也可以通过修改系统配置文件来添加 FastDFS 存储。具体操作时,在 iserver-system.xml 中添加如下配置信息:
<storages> <storage> <id>f12</id> <tileSourceInfo class="com.supermap.services.tilesource.FastDFSTileSourceInfo"> <type>FastDFS</type> <fdfsTrackers> <string>192.168.112.12:22122</string> </fdfsTrackers> <fdhtGroups> <string-array> <string>192.168.112.12:11411</string> </string-array> </fdhtGroups> </tileSourceInfo> </storage> </storages>
添加 MongoDB 存储
MongoDB 是一个基于分布式文件存储的数据库,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。有关 MongoDB 的详细介绍和安装使用方式,请参考:MongoDB 的安装与配置。
添加 MongoDB 服务时,您需要配置以下参数:
- 服务地址:即 MongoDB 服务的地址,格式如:{ip}:{port}
- 添加复制集:如果勾选,则为分布式切片库中的数据创建副本。通过复制集机制可以实现 MongoDB 存储系统的自动故障转移,提升数据的可用性。
- 数据库:用来存储地图瓦片的数据库。默认使用名为 smtiles 的数据库。
- 用户名:具有访问该数据库权限的用户。即在输入前,您为将使用的数据库设置的用户名和密码。
- 密码:已设置的密码。
您也可以通过修改系统配置文件来添加 MongoDB 存储。具体操作时,在 iserver-system.xml 中添加如下配置信息:
<storage> <id>m27</id> <tileSourceInfo class="com.supermap.services.tilesource.MongoDBTilesourceInfo"> <type>MongoDB</type> <serverAdresses> <string>localhost:27017</string> </serverAdresses> <database>smtiles</database> <username>iserver</username> <password>iserver</password> </tileSourceInfo> </storage>
其中,<database>、<username>以及<password> 是可选参数。
添加OTS存储
OTS是构建在阿里云飞天分布式系统上的NoSQL存储服务,提供海量结构化数据的存储和实时访问。
添加OTS服务时,您需要配置以下参数:
- 实例名称:输入在阿里云Table Store控制台管理页面创建的实例名称。实例是用户使用和管理OTS服务的实体,是 OTS 资源管理的基础单元,OTS 对应用程序的访问控制和资源计量都在实例级别完成。
- 节点名称:阿里云服务节点,为创建实例时选择的地址。
- 是否公网访问:公网访问时,访问的OTS服务地址为:http://<instanceName>.<nodeName>.ots.aliyuncs.com。非公网访问时,访问的OTS服务地址为:http://<instanceName>.<nodeName>.ots-internal.aliyuncs.com。
- accessKey:OTS 根据 AccessKey 对请求进行身份认证和鉴权,每个合法的 OTS 请求都必须携带正确的 AccessKey 信息。您可在阿里云官网的“管理控制台”获取AccessKey。AccessKey包括以下两部分:
- accessKeyID:AccessKeyID 用于标识AccessKey。
- accessKeySecret:AccessKeySecret 用于加密OTS 请求。AccessKeySecret 是认证请求身份的重要凭证。
您也可以通过修改系统配置文件来添加 OTS存储。具体操作时,在 iserver-system.xml 中添加如下配置信息:
<storage> <id>OTS1</id> <tileSourceInfo class="com.supermap.services.tilesource.OTSTileSourceInfo"> <type>OTS</type> <instanceName>tileStore</instanceName> <nodeName>cn-hangzhou</nodeName> <fromPublic>true</fromPublic> <accessKeyId>accessKeyId</accessKeyId> <accessKeySecret>accessKeySecret</accessKeySecret> </tileSourceInfo> </storage>
注:请在<accessKeyId>、<accessKeySecret>中填入您实际获取的AccessKey信息。