云原生下GIS服务规划与设计

作者:lisong

目录

背景

作为云原生GIS系统管理人员,在面对新建的云GIS系统时,通常需要应对大量GIS服务的接入与管理。为了确保系统和服务的稳定流畅运行,我们需要提前做好规划与设计工作。

云原生环境下GIS服务的相关概念

(1)服务实例

GIS云套件中,一个GIS服务对应一个服务实例,服务实例为服务器上的具体服务。服务实例用于接收和处理客户端请求,实现一定的GIS功能,并将响应结果返回给客户端。GIS云套件支持使用不同数据源发布服务实例,并对服务实例进行管理。

(2)服务节点

GIS云套件中,服务节点是承载服务实例运行的单元,GIS云套件所有服务实例都在服务节点中运行,一个服务节点可支撑一个或多个服务实例运行。在服务节点页面,您可以创建服务节点、对服务节点进行监控与管理,在服务节点之间任意调度已发布的服务实例。

GIS服务在云原生环境下的规划调度策略

在GIS服务节点规划初期,可以从地区和服务类型进行划分。

(1)地区划分:对于人口密集的城市,需要更多的GIS服务节点来支持更高的访问量和更快的数据处理速度。而对于人口较少的地区,则可以减少GIS服务节点的数量,以节约资源。

(2)服务类型划分:对于需要实时更新的地图服务,需要更多的GIS服务节点来保证数据的及时性和准确性。而对于较为静态的GIS数据服务,则可以减少GIS服务节点的数量。

在接入GIS服务后,还可以根据实际情况按照数据量和访问速度进行调度。对于数据量较大的GIS服务,需要更多的存储空间和更快的数据传输速度来支持数据的高效处理和传输。而对于访问速度要求较高的GIS服务,需要更多的计算资源和更快的响应速度来保证服务的高效性和稳定性。

GIS服务节点规划是一个复杂的过程,需要综合考虑多方面因素,以便更好地满足用户的需求和提高系统的性能和稳定性。

GIS服务在云原生环境下的调度手段

(1)伸缩服务节点

按需对服务节点进行手动或动态伸缩。例如,当一个服务节点上发布了过多服务实例时,可以采取增加节点副本数,让服务节点能够承载更多服务实例。

手动伸缩:用户自行设置伸缩后的节点个数,服务节点会增加/减少至设定的个数。

动态伸缩:用户设置相应的指标,服务节点会根据负载情况自行伸缩节点个数。如不再需要动态伸缩,可点击服务节点名称旁的按钮删除。

(2)重新指定服务节点

将服务实例调度到任意一个或多个服务节点上运行,也可以新增服务节点。例如,某个服务节点承载了几个大数据量的服务实例时,可以将部分服务实例调度至其他服务节点运行,为当前服务节点减负。

(3)调整服务节点规格

按需修改节点CPU及内存大小。

(4)调整服务节点承载的服务实例

调度服务实例,主动选择在该节点上运行的服务实例,按需调整服务节点的服务实例数。

GIS服务在云原生环境下的服务规划调度实践

(1)规划服务节点

①地区节点

分别建立成都市、绵阳市、乐山市服务节点,后续可将不同城市的数据发布到对应的节点上。服务创建完成后,可以通过修改别名的方式对服务节点进行区分,便于后续管理。

②服务类别(以成都市为例)

分别创建地图节点、数据节点、瓦片节点,并分别修改别名,便于后续的查找与管理。

(2)接入GIS服务

分别将地图服务、数据服务、瓦片服务发布到成都市-地图节点、数据节点、瓦片节点。


发布成功后,可以在服务节点概览中看到新增的服务实例数。

(3)服务初步调度优化

①调整服务节点副本数

【手动伸缩】

【动态伸缩】

②调整服务实例

在服务节点的资源监控中,观察到成都市-地图节点的CPU、内存占用率较高,可以对该节点的服务实例进行调整,减缓节点的压力;

新建一个备用节点,将成都市-地图节点部分服务实例迁移到备用节点承载。

③调整服务节点规格

针对资源占用较高的服务节点,还可以对其规格进行调整,让节点的承载能力更强。

④指定或新建节点运行某服务

如果已知某个服务数据量较大,可以直接在服务列表将它指定到其他服务节点运行,或者新建一个服务节点用于承载该服务实例,避免影响当前节点的其他服务实例。

以上是GIS服务的初步规划与调度,后续可以使用服务追踪、服务度量功能去掌握服务的流量情况,并以此做进一步的调度与优化。

相关推荐
ZHOU西口6 小时前
微服务实战系列之玩转Docker(十五)
nginx·docker·微服务·云原生·swarm·docker swarm·dockerui
无名之逆12 小时前
云原生(Cloud Native)
开发语言·c++·算法·云原生·面试·职场和发展·大学期末
Richardlygo13 小时前
(k8s)Kubernetes部署Promehteus
云原生·容器·kubernetes
Lill_bin17 小时前
JVM内部结构解析
jvm·后端·spring cloud·微服务·云原生·ribbon
二进制杯莫停18 小时前
初识zookeeper
分布式·zookeeper·云原生
StevenZeng学堂19 小时前
【Kubernetes笔记】为什么DNS解析会超时?
网络协议·docker·云原生·kubernetes
爱吃龙利鱼1 天前
nginx实现https安全访问的详细配置过程
运维·nginx·安全·云原生·https
大白菜和MySQL1 天前
rockylinux9.4单master节点k8s1.28集群部署
云原生·容器·kubernetes
七夜zippoe2 天前
nacos和eureka的区别详解
云原生·eureka
唐大爹2 天前
kubeadm方式安装k8s续:
云原生·容器·kubernetes