当前位置:网站首页>海量服务实例动态化管理
海量服务实例动态化管理
2022-08-05 01:55:00 【supermapsupport】
作者:lly
文章目录
背景
困难与挑战
随着数据量、服务量、业务量不断增长与积累,GIS软件服务器需要能够承载和支撑更多的GIS服务,这也对服务器本身提出了更高的要求:
- 如何在有限的硬件资源下,能够稳定支撑上千、甚至上万个GIS服务?
- 如何确保存量GIS服务较多时,启动效率仍能达到运维要求(秒级)?
- 如何能流畅地管理海量的GIS服务?
- 如何能够保证系统的稳定性、可用性?
实际项目需求
以上存在的困难与挑战,在实际项目中也是屡见不鲜,某项目就遇到了以下三个难点。
3多:
- 数据多,存量10W数据,日增3000份
- 服务多且热度不一,共30w+服务
- 用户多,15000个用户,平均30%在线率
2高:
- 并发高,几十用户同时发新服务;数千用户,并发浏览数据
- 可用性要求高,生产期间不能停机、停服
1限:
- 资源总体有限,提供12台虚拟机,不能无限扩容
为了解决以上难点,经过研发团队数月攻坚,在iServer 11i版本提供了服务实例动态化管理能力,实现单节点承载30w+服务,秒级启动。
一、服务实例动态化管理能力
1.1服务延迟初始化,轻松支撑海量GIS服务,秒级启动
开启服务实例动态化管理后,SuperMap iServer启动时只加载、启动GIS服务的内核,不进行初始化,大大节省了初始化耗时及服务的资源占用。因此,当存量GIS服务数达到数千、数万甚至十万时,SuperMap iServer启动速度仍然能够达到秒级,符合运维需要。
1.2服务按需启动,快速响应、运维无忧
当服务接到用户的请求后,能够自动拉起,并能达到毫秒级响应。在GIS服务存量较多时,管理员仍能流畅地进行新发布服务、服务修改等操作,响应迅速、轻松运维。
1.3自动销毁空闲服务,合理分配硬件资源
可以设置允许同时在线服务实例最大个数,可避免资源被过度使用,保障 GIS 系统的可用性。
1.4服务容量控制,提升系统可用性
内置过载保护措施,通过限制运行的服务实例数,优雅控制容量,避免资源的过度使用,从而提升系统的可用性。
二、使用方式
2.1开启服务实例动态化管理
在高级-》全局设置-》服务实例动态化管理设置中即可开启或关闭开启服务实例动态化管理。
2.2参数设置
开启按钮后,可进行参数设置,如下图:
服务状态巡检间隔时间:指检查服务实例是否处于空闲状态的间隔时间,单位毫秒,默认值为 30000 毫秒。该值越小,表示巡检越频繁,服务自动销毁的行为越精确,但同时也越占用计算机资源。
空闲服务主动销毁时间:当一个服务实例被检测到处于空闲状态,且空闲时间超过该阈值时,将被自动销毁。该参数单位毫秒,默认值为 300000 毫秒。
最大在线服务实例数:允许同时在线服务实例最大个数,默认值为 2000 个。当同时在线的服务个数超过该阈值,请求访问新的 GIS 服务时,该服务将不予以启动,同时 iServer 将予以报错提示。
2.3保存生效
设置完参数后,保存并重启 iServer 。
三、应用场景及性能情况
3.1应用场景
服务实例动态化管理对以下两种场景都有很好的适用性:
- 已发布的存量 GIS 服务数量达到数千量级以上,且大部分 GIS 服务使用频次较低。
- GIS 服务器资源有限、且大部分GIS 服务使用频次低,需要合理控制资源使用,保证系统的稳定性、可用性
3.2性能提升
经过测试验证,在10万服务的场景下,iServer启动时间提升40倍+,拉起时间提升25倍+,动态出图提升6倍+。
3.3使用示意视频(已开启服务实例动态化管理)
边栏推荐
- .Net C# 控制台 使用 Win32 API 创建一个窗口
- MySQL学习
- Method Overriding and Object Class
- Live playback including PPT download | Build Online Deep Learning based on Flink & DeepRec
- hypervisor相关的知识点
- Log an error encountered when compiling google gn "I could not find a ".gn" file ..."
- 释放技术创新引擎,英特尔携手生态合作伙伴推动智慧零售蓬勃发展
- 英特尔 XDC 2022 精彩回顾:共建开放生态,释放“基建”潜能
- 方法重写与Object类
- Hypervisor related knowledge points
猜你喜欢
LPQ(局部相位量化)学习笔记
(十七)51单片机——AD/DA转换
Method Overriding and Object Class
Chapter 09 Use of Performance Analysis Tools [2. Index and Tuning] [MySQL Advanced]
iNFTnews | What can NFTs bring to the sports industry and fans?
“嘀哩哩,等灯等灯”,工厂安全生产的提示音
[Unity Entry Plan] Handling of Occlusion Problems in 2D Games & Pseudo Perspective
A new technical director, who calls DDD a senior, is convinced
Day Fourteen & Postman
10年测试经验,在35岁的生理年龄面前,一文不值
随机推荐
树形查找(二叉查找树)
iNFTnews | What can NFTs bring to the sports industry and fans?
Greenplum数据库故障分析——能对数据库base文件夹进行软连接嘛?
linux(centOs7)部署mysql(8.0.20)数据库
用@Mapper查询oracle的分区情况报错
pytorch的使用:使用神经网络进行气温预测
《.NET物联网从零开始》系列
IJCAI2022 | DictBert:采用对比学习的字典描述知识增强的预训练语言模型
Residential water problems
Are testing jobs so hard to find?I am 32 this year and I have been unemployed for 2 months. What should an older test engineer do next to support his family?
2022杭电多校第一场
Exploding the circle of friends, Alibaba produced billion-level concurrent design quick notes are too fragrant
PHP Skills Assessment
Opencv - video frame skipping processing
[Endnote] Word inserts a custom form of Endnote document format
Three handshake and four wave in tcp
Live preview | 30 minutes started quickly!Look at credible distributed AI chain oar architectural design
EBS利用虚拟列及hint 提示优化sql案例一则
Leetcode brushing questions - 22. Bracket generation
Dotnet 6 Why does the network request not follow the change of the system network proxy and dynamically switch the proxy?