论文部分内容阅读
近年来Internet的快速发展和GIS(Geographic Information System)的广泛应用推动了WebGIS的诞生。随着WebGIS在车载导航、移动位置服务、现代物流产业等领域的不断普及,系统面临大用户群高并发访问的情况越来越多。传统的WebGIS架构无法支撑庞大的数据访问和处理,导致服务性能下降,表现为响应时间变长、请求丢失甚至出现拒绝服务的现象。针对上述问题,本文提出了一种基于云平台的WebGIS服务器系统架构,系统从负载均衡、数据缓存和数据库集群三个方面缓解WebGIS高并发访问瓶颈,这对于地理信息共享、GIS社会化有着重要意义。本文主要工作如下:(1)在分析传统WebGIS架构缺陷基础上选定云平台为WebGIS服务器提供弹性计算和存储资源。WebGIS由于其计算密集和数据密集特点适合云平台应用。云平台在并行计算、负载均衡等方面表现良好,具有可快速弹性扩展应用、抵御攻击、易于部署管理等优点。系统选择开源OpenStack平台搭建,SnowFlock API帮助云平台实现虚拟机的快速复制功能。(2)提出基于剩余负载的动态负载均衡算法。系统选择轻量高效的Nginx作为软件负载均衡器,负载均衡算法依据后端应用服务器状态计算剩余负载作为权重衡量,并随机选择一个权重较大的服务器中分发请求。该算法降低了服务器状态收集过程中信息延迟带来的影响。实验结果表明基于剩余负载的均衡算法在高并发时性能优于Nginx自带的轮询和最少连接策略。(3)设计缓存机制。系统选用内存数据库作为缓存存储介质,session缓存避免重复的客户端身份验证。本文另外设计了一套缓存层与空间数据库交互的读写机制,算法依据局部性访问原理将数据库中频繁访问的地理信息写入缓存中。缓存机制最好的情况下将WebGIS服务响应时间缩短了48%左右。(4)采用数据库集群缓解I/O瓶颈。数据库集群能够有效解决单个数据库应对高并发时的I/O瓶颈。PostgreSQL PostGIS因跨平台、高可用、高性能等优势被选为系统空间数据存储系统。文中对PostgreSQL进行了参数优化,并使用pgpool-Ⅱ作为数据库集群和客户端的中间件。本文采用开源服务器端软件GeoServer作为WebGIS系统应用场景,并对软件发布的WMS(Web Map Service)访问进行压力测试。实验结果表明基于云平台的WebGIS系统相对于单节点物理服务器能够更有效地应对高并发访问。集群节点数越多能处理的并发量上限越大。随着集群规模增加,云平台WebGIS系统获得了良好的加速比。本文提出的云平台WebGIS架构能够有效提升系统的高并发访问性能,具有广泛的应用前景。