SuperMap iServer MongoDB版分布式切图配置和使用

来源:互联网 发布:现在什么软件翻墙好 编辑:程序博客网 时间:2024/06/10 14:14

作者:非法小恋

一、使用背景

针对传统单机切缓存技术的耗时长、无故障恢复机制等缺点,SuperMap iServer 提供了支持多台机器并行切图的分布式切图服务,可添加位于不同机器的多个切图节点,从而实现并行切图,提升切图工作的效率。

二、软件要求

操作系统
MongoDB服务端可运行在Linux、Windows或Mac OS X平台,支持32位和64位系统,默认端口为27017。MongoDB把数据存储在文件中(Linux默认路径为/data/db,Windows默认路径 C:\data\db),为提高效率使用内存映射文件进行管理。
软件版本
MongoDB的版本要求2.1及以上。

三、安装MongoDB

Windows 系统上安装MongoDB
MongoDB 是一个简单易用的产品,解压后即可使用。MongDB数据存储位置默认为C:\data\db。如果不采用默认位置,启动服务前必须先创建数据存储位置,例如创建D:\mongodb\data\db为存储位置。
本文档使用mongodb-win32-x86_64-2008plus-2.4.9.zip 作为示范
启动服务
在命令控制窗口切换到 MongoDB安装目录的bin文件夹下,执行mongod命令启动服务:
mongod.exe –dbpath D:\mongodb\data\db –port 27010
这里写图片描述
其中,“–dbpath”和“–port”为可选参数,分别用于指定存储路径和端口号。
如果不指定,默认数据存储位置为C:\data\db,端口号27017。
提示信息为waiting for connections ,则表示服务启动成功。如下图:
这里写图片描述
停止服务
1. 对MongoDB启动服务的命令提示窗口执行Ctrl+C或者关闭提示窗口,又或者使用数据库命名关闭服务。
2. 若MongDB服务已注册为Windows系统服务,则可在服务管理器中停止服务或命令提示窗口中执行stop命令来停止服务。如停止名为MongoDB的系统服务:

net stop MongoDB 

将MongoDB注册为windows系统服务
1. 在MongoDB安装目录bin文件夹,执行如下命令将MongDB注册为Windows系统服务:

mongod.exe –dbpath D:\mongodb\data\db –install -logpath D:\mongodb\log –serviceName MongoDB
其中:

-logpath” 设置日志的存放路径。 “-serviceName” 设置注册的服务名。 
  1. 注册后启动/服务,执行如下命令:
net start MongoDB 启动服务 net stop MongoDB 关闭服务 
  1. 删除已注册的Windows系统服务,可执行如下命令:

mongod.exe –dbpath “D:\mongodb\data\db” -remove –serviceName “MongoDB”
Linux 系统上安装MongoDB
在Linux 系统上,MongoDB同样是解压后启动服务即可使用。
1. 解压产品包,执行如下命令:

tar -zxf mongodb-xxxxxxx.tgz

2.MongDB数据存储位置默认为/data/db。如果不采用默认位置,启动服务前必须先创建数据存储位置,例如在mongodb的解压路径下创建/data/db为存储位置:

mkdir /data mkdir /data/db 

启动服务
请以root用户身份启动MongoDB服务,如按照默认的存储位置和端口号,可执行如下命令:
./mongodb-xxxxxxx/bin/mongod
提示信息为waiting for connections ,则表示服务启动成功。
停止服务
可以采用以下两种方式停止MongoDB服务:
• Bin目录下,执行如下命令:

mongod –shutdown –dbpath /database/mongodb/data/
• 使用kill命令:

查询MongDB服务的PID,执行如下命令:
ps -ef | grep mongo
通过Kill 查询到的mongdb服务的PID停止服务,执行如下命令:kill -9{PID}第 5 页/

四、切图流程

1.启动iServer,登陆iSevrer Manager

2.选择集群菜单栏分布式切图库填写参数,选择MongoDB切片库类型提交

其中:
这里写图片描述
存储ID:为自定义标识
切片库类型:选择MongoDB
服务地址:IP地址+MongoDB端口号如:192.168.18.118:27010
到这里,根据机器配置,可以启动多个iServer, 配置集群服务(配置集群过程略)。
集群配置可以到资源中心下载iServer集群视频教程或者查看iSevrer帮助文档中专题介绍里的分布式层级集群。
只有设置了集群,才能体现分布式切图的优势,这里只用单机作为示范。

3.在分布切图选项卡中选择创建切图任务填写参数

这里写图片描述
切图完成后显示:
这里写图片描述

4.代码验证

(注意:代码中比例尺,图片格式,切片大小,是否透明属性必须和当初切图时设置的完全一样)先清空iServer安装目录\webapps\iserver\output下所有内容(方便验证是否用上缓存)
这里使用flex方法进行验证,编写flex代码:

<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"xmlns:ic=http://www.supermap.com/iclient/2010xmlns:is="http://www.supermap.com/iserverjava/2010"width="100%" height="100%"><!--加载地图--><ic:Map id="map" x="0" y="0" height="100%" width="100%"scales="{[1/250000000, 1/125000000, 1/64000000, 1/32000000, 1/16000000]}"><is:TiledDynamicRESTLayertileSize="256"transparent="false"imageFormat="png"url="http://localhost:8090/iserver/services/map-world/rest/maps/World Map"/></ic:Map></s:Application>

运行出图后,可查看webapps\iserver\output是否有新生成内容,如果没有则表明使用上了分布式所切图所切的缓存。

五、常见问题解答:

  • 启动了iServer但是分布式且片库列表为红色标识
    这里写图片描述
    答:1.检查MongoDB是否启动。
    2.检查MongoDB的端口,是否与配置的分布式切片库端口一致
    3.查看后台发送的请求是否连接正确(如IP地址发生变化等)

  • 切片库使用不上
    答:1.检查MongoDB是否启动,启动的端口及IP是否和分布式切片库端口一致
    2.分布式切片库列表里面操作选项卡配置到地图服务
    这里写图片描述
    3.客户端代码是否正确(包括比例尺,图片大小,是否透明,图片格式等)

  • 启动MongoDB失败,报错
    这里写图片描述
    答:是由于找不到启动数据库的路径,为其创建相应文件夹即可。
    (上图错误时找不到data\db路径,解决办法是在mongodb2文件夹下创建data文件夹,然后进入data文件夹,在data文件夹中再创建db文件夹)
0 0
原创粉丝点击