iServer通过服务实例动态化管理MongoDB万级瓦片集应用实践

作者:Carlo

数据特点

  • 栅格数据:数据量大、增长快、接收来源广、类型多、时间跨度大
  • 矢量数据:随着栅格数据增长而增长的,包含点线面类型

项目难点

  • 万级数据(MongoDB瓦片)需要发布成GIS服务(wms、wmts)
  • 单个iServer承载的GIS服务较多时, 出现启动过慢等问题,原因是iServer启动时,会全部构建和初始化服务
  • 服务个数多了以后,会占用大量的资源(CPU,内存,句柄等) 进而导致资源不够用,且空闲服务会占用、浪费资源 。

优化方案

先了解“服务实例动态化管理”功能特性

(1)服务延迟初始化,轻松支撑海量GIS服务,秒级启动;
(2)服务按需启动,快速响应、运维无忧;
(3)自动销毁空闲服务,合理分配硬件资源;
(4)服务容量控制,提升系统可用性。

“服务实例动态化管理”应用场景

(1)已发布的存量 GIS 服务数量达到数千量级以上,且大部分 GIS 服务使用频次较低;
(2)GIS 服务器资源有限、且大部分GIS 服务使用频次低,需要合理控制资源使用,保证系统的稳定性、可用性。

优化1:开启服务实例动态化管理

(入口:首页-高级-全局设置-服务实例动态化管理设置)
在这里插入图片描述

效果

  • iServer初始化耗时能够达到秒级;
  • 首次拉起服务耗时在9min+,后续每次拉起服务不耗时;
  • 访问、预览出图耗时达到ms。
    在这里插入图片描述
优化2:同时设置一个特定服务关闭动态管理持续存活

在这里插入图片描述
效果

  • 首次拉起服务不耗时,后续每次拉起服务不耗时;
  • 拉起的服务全部被自动销毁后,再次拉起服务也不会耗时。
优化3:将服务配置信息存储到PostgreSQL数据库中,同时删除本地的iserver-service.xml配置文件

(入口:首页-高级-全局设置-服务配置信息存储设置)

原因:iServer对服务状态修改时,会读写XML文件。当服务数量多,配置文件较大时,读写操作会比较耗时。建议用户将服务配置存储到数据库中,可以大幅改善配置的读写性能。
在这里插入图片描述

效果

扫描二维码关注公众号,回复: 16749607 查看本文章
  • 页面启动/暂停单个服务请求耗时为ms级别
    在这里插入图片描述

应用效果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/supermapsupport/article/details/132427213