SuperMap iServer 全局设置使用
作者:bsy
文章目录
前言
在 SuperMap iServer 中可在全局设置页面配置系统全局性质的变量信息,如服务设置、服务配置信息存储、临时资源存储等。 全局设置界面:
一、服务设置
服务设置,即地图瓦片的缓存设置,服务设置参数说明如下图。
以上服务设置也可以通过系统配置文件来设置 。
二、服务配置信息存储
在 SuperMap iServer 中,支持通过设置服务配置信息存储来选择将服务配置信息存储在数据库中或是配置文件中。修改配置后,需重启生效。
服务配置信息存储在配置文件中
- 服务配置存储类型:若需要将服务配置信息存储在配置文件中,选择服务配置存储类型为 XML。
服务配置信息存储在数据库中
- 服务配置存储类型:【必选】如预期将服务配置信息存储在本地,则选择 XML;如需要将配置信息存储在数据库中,选择服务配置存储类型为对应的数据库,当前支持将配置信息存储在 Oracle、PostgreSQL 数据库中。
- 服务地址:【当选择将配置信息存储在数据库中时必填】数据库的服务地址,PostgreSQL 数据库服务地址如 ‘192.168.17.217:5432/SuperMap’,Oracle 数据库服务地址如 '192.168.17.217:1521:SuperMap。
- 用户名:【当选择将配置信息存储在数据库中时必填】该数据库所有者的用户名。
- 密码:【当选择将配置信息存储在数据库中时必填】该数据库所有者的密码。
- 模式名:【当选择将配置信息存储在PostgreSQL数据库中时选填】 存储服务配置信息表所在的模式,默认存储于public模式下。
- 服务存储表名:存储服务配置信息的表的表名,默认为 iserver_V1_SERVICES。
- 导入服务配置:当您已选择一种存储方式后,可以将此之前已存储于其他 XML 文件、数据库中的配置信息导入至您当前选择的存储方式。导入配置信息时需要填入的参数如下:
-
- 存储类型:【必选】您预期导入的存储类型,支持导入的存储类型包括 XML、Oracle、PostgreSQL。
- 服务地址:【当选择导入存储在数据库中的配置信息时必填】预期导入的数据库的服务地址,PostgreSQL 数据库服务地址如 ‘192.168.17.217:5432/SuperMap’,Oracle 数据库服务地址如 '192.168.17.217:1521:SuperMap。
- 用户名:【当选择导入存储在数据库中的配置信息时必填】预期导入的数据库所有者的用户名。
- 密码:【当选择导入存储在数据库中的配置信息时必填】预期导入的数据库所有者的密码。
- 模式名:【当选择将配置信息存储在PostgreSQL数据库中时选填】 存储服务配置信息表所在的模式,默认存储于public模式下。
- 服务存储表表名:存储服务配置信息的表的表名,默认为 iserver_V1_SERVICES。
- 配置类型:【当选择导入存储在数据库中的配置信息时必填】预期导入的配置信息的类型,包括接口配置、提供者配置、提供者集合配置、组件配置、组件集合配置。
注意:
- 由于部分版本的 PostgreSQL 的数据库服务只监听 Localhost 地址,当 iServer 与 PostgreSQL 不在同一机器时,可能会出现 iServer 连接 PostgreSQL 服务失败的情况。您需要配置 PostgreSQL 的配置文件 postgresql.conf,设置:
listen_address='*'
表示允许其他机器通过 IP 或域名访问 PostgreSQL 数据库服务。 - PostgreSQL 的安全策略默认仅允许本机的用户访问,当 iServer 与 PostgreSQL 不在同一机器时,可能会出现 iServer 使用 PostgreSQL 的系统用户访问不了 PostgreSQL 服务的情况。您需要在 pg_hba.conf 文件中添加访问策略,允许指定网段的主机可以访问,设置内容如下 :
host all all 192.168.112.0/24 md5
- host:表示安装 PostgreSQL 的主机
- 第一个 all:主机上的所有数据库实例
- 第二个 all:所有用户
- 192.168.112.0/24 :表示可使用合法的用户信息来访问的网段,您可以将 ‘192.168.112.0’ 替换为您期望的网段。
- md5:验证方式
- 若配置使用 Oracle 类型的数据库,需要您手动将相关的 ojdbc 驱动包(建议版本为 ojdbc14-10.2.0.4.0.jar)放到 %SuperMap iServer_HOME%\webapps\iserver\WEB-INF\lib目录下。
- 当设置配置信息存储在数据库中后,建议也将其安全信息的存储也切换到数据库中,以避免其他 iServer 在共享该服务配置时出现安全权限冲突的问题。同时如某一 iServer 需要共享来自于其他 iServer(后称 iServer1) 存储在数据库中的配置信息,除需要将配置信息切换到 iServer1 的配置信息存储数据库,也需要将安全信息存储切换到 iServer1 安全信息存储的数据库。
以PostgreSQL为例
- 元数据表
元数据表以键值对的形式管理服务存储表的基本信息。
表名:iserver_v1_metainfos。
- 字段结构:
字段名 | 数据类型 | 是否必须 |
---|---|---|
name | text | 是 |
value | text | 是 |
- 字段(key)说明:
- service.table.name:服务存储表的表名。
- spaceversion:服务存储表的版本,不同的版本服务存储表的表结构不同。
- 主键:无。
- 举例:
name | value |
---|---|
service.table.name | iserver_v1_metainfos |
spaceversion | 1.0 |
- 服务存储表
服务存储表用来集中管理服务提供者、组件、提供者集合、组件集合、接口等配置信息。
- 表名:由用户自己定义,默认为iserver_v1_services。
- 字段结构:
字段名 | 数据类型 | 是否必须 |
---|---|---|
name | varchar | 是 |
setting | text | 是 |
type | varchar | 是 |
timestamp | varchar | 是 |
enabled | varchar | 是 |
extend | text | 否 |
- 字段说明:
- name:服务提供者、组件、接口、提供者集合、组件集合的名字。
- type:服务配置的类型。提供者、提供者集合、组件、组件集合、接口分别对应Provider,ProviderSet,Component,ComponentSet,Interface。
- setting: 服务配置的具体内容
- timestamp:服务配置信息更新到数据库的时间。
- enabled:提供者与组件的可用关系,其余服务配置类型默认为true。
- extend:扩展内容
- 主键:name和type
- 举例:
name | type | setting | timestamp | enabled | extend |
---|---|---|---|---|---|
map-Jingjin | Provider | { “@type”: “com.supermap.server.config.ProviderSetting”, “config”: { “@type”: “com.supermap.services.providers.UGCMapProviderSetting”, “cacheDisabled”: false, “cacheVersion”: “4.0”, “extractCacheToFile”: true, “ignoreHashcodeWhenUseCache”: false, “inflatDisabled”: false, “layerCountPerDataType”: 0, “mapEditable”: false, “mapNames”: [], “multiInstance”: false, “multiThread”: true, “poolSize”: 0, “preferedPNGType”: “PNG”, “queryExpectCount”: 1000, “ugcMapSettings”: [], “useCompactCache”: false, “workspacePath”: “E:/iserver/samples/data/City/Jingjin.sxwu” }, “enabled”: true, “name”: “map-Jingjin”, “type”: “com.supermap.services.providers.UGCMapProvider”} | 2019-04-10 13:50:23 | true |
注意:
前文中所有表名、字段名、表结构、示例均以 PostgreSQL 数据库为基础,Oracle 数据库稍有不同。不同点如下:
- Oracle 中所有表名、字段名均为大写,如元数据表表名为 ISERVER_V1_METAINFOS。
- Oracle 中字段的数据类型与 PostgreSQL 不同。PostgreSQL 采用 varchar 和 text 数据类型对应 Oracle 为 varchar2 和 clob。
- Oracle 配置信息无需设置模式名。
三、消息中间件设置(过时)
SuperMap iServer 支持接入消息中间件,支持多机之间共享服务配置以及服务状态,并可精确控制服务实例个数,实现服务在多机上的动态伸缩。目前支持的消息中间件为 RabbitMQ ,在接入消息中间件前,请确保您已安装 RabbitMQ,若没有,请参见:RabbiMQ 的安装与配置。您可以通过旧版 iServer 服务管理器,在“全局设置”处接入消息中间件,该设置需重启生效。
- 支持的中间件类型:【必选】支持的中间件类型为 RabbitMQ 。
- 服务地址:【必填】设置可用的 RabbitMQ Server 消息服务器地址,默认为 localhost:5672 。如果您的 RabbitMQ Server 与 GIS 服务器分别部署在了不同的服务器中,此处需要填写具体的 IP 地址或域名,如 :192.168.17.2:5672 。
- 用户名:【必填】预期可远程访问RabbitMQ Server 消息服务器所有者的用户名。
- 密码:【必填】预期可远程访问RabbitMQ Server 消息服务器所有者的密码。
注意:
- RabbitMQ Server 默认创建了一个角色为 administrator 的名为 guest 的用户,它拥有 RabbitMQ 的所有权限。出于安全因素的考虑,guest 用户只能通过 localhost 登录使用,如果您需要远程连接 RabbitMQ Server,建议您创建自己的用户,设置密码,授予权限,并为其设置角色,如:管理员。具体配置请参见:RabbitMQ 的安装与配置。
- 设置消息中间件时,请注意界面上的提示信息,如提示“消息中间件连接失败,请检查连接信息是否有异常”,请按照提示检查连接信息。
四、临时资源存储设置
SuperMap iServer 支持将临时资源存储在本地文件、数据库中,并支持设置存活时间阈值。此处将为您介绍如何在 iServer 全局设置页面中设置临时资源存储配置。
- 支持的存储类型:【必选】支持的存储类型包括 Encache、Redis、MongoDB、HSQLDB、Caffeine、PostgreSQL。
- 最大磁盘空间:【选择 Encache 存储类型时必填】最大磁盘空间默认为10 g,您可以按照实际情况进行调整。
- 最大内存:选择 Encache 存储类型时设置的最大内存,默认为 200m。支持的单位有:b、k、m、g、t、p。
- 缓存最大对象数:【当选择 Caffeine 时必填】缓存最大对象数默认为 1000,您可以按照实际情况进行调整。
- 磁盘存储路径:磁盘的存储路径,默认为 java.io.tmpdir\tmpResources,指向【SuperMap iServer 安装目录】\temp\tmpResources 目录。
- 服务器地址:【当选择 Redis、PostgreSQL、MongoDB 以及不在本机上的 HSQLDB 时必填】数据库的服务地址,如 ‘192.168.17.217:27017’。
- 用户名:该数据库所有者的用户名。
- 密码:该数据库所有者的密码。
- 数据库名称:【当选择 MongoDB 时必填,且应为一个已存在的数据库】存储临时资源的数据库名称。
- 临时资源失效时间(小时):临时资源的失效时间,单位为小时。
- 访问后过期时间(小时):设置过一定时间后不访问(读取或者写入),存储的数据会被销毁,过期时间单位为小时。
- 缓存个数:在 PostgreSQL 中最高支持存储的缓存数量,如不设置则使用默认值 100。当缓存数量达到上限时,将删除近期使用最少的缓存记录。