本站小编为你精心准备了浅谈集群架构的公共自行车可视化系统参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
摘要:针对公共自行车数据可视化系统的性能问题,提出了一种整合Web服务器集群、数据库集群以及缓存框架服务器的集群架构,设计并实现了基于该架构的公共自行车数据可视化系统。系统使用Nginx搭建反向服务器,使用Redis搭建缓存服务器。设计的系统还集成了Session一致性策略、前端性能优化等技术。针对公共自行车普通用户和管理者分别设计了移动端应用﹙APP﹚和Web可视化页面。测试结果表明:设计的系统满足了用户对公共自行车可视化系统功能和性能的要求。
关键词:公共自行车;服务器集群架构;可视化系统;性能优化
0引言
公共自行车系统的用户量较大,对系统的性能要求偏高,如何构建稳定性强、可用性高的系统是当前公共自行车可视化分析系统面临的一个挑战。目前公共自行车可视化系统主要着眼于公共自行车数据的可视化分析[1,2],对公共自行车可视化系统的性能和可用性研究较少。近年来随着客户机数量和密集性任务的增加,单个Web服务器受处理能力的限制,成为访问的一个新瓶颈。为了解决这个问题,Web服务器集群采用负载均衡策略[3],将请求分配给集群中某台服务器进行处理,通过数据冗余和软件检测等方法实现系统的高可用性[4]。负载均衡和读写分离以及缓存等技术有助于解决大型系统的性能瓶颈,在不同领域得到广泛应用。周莹莲等人[5]对负载均衡的概念和常见算法进行了研究,并对负载均衡的发展进行了展望。读写分离可以极大提升数据的读取性能以及整个系统的业务承载能力[5]。宋浒等人[6]将读写分离技术应用在运行支撑系统中,极大地提升了数据读取性能以及整个系统的业务承载能力。李军等人[7]利用负载均衡和MySQL主从复制读写分离等技术构建高可用的云盘系统。陈岩等人[8]采用模块化设计思想和云平台架构设计出城市绿地监测系统。刘桂龙等人[9]设计了一种基于Android的跨移动端和电脑端的架构。结合上述设计思想,本文设计出一种服务器集群架构以提高公共自行车可视化系统的性能和可用性。
1系统设计
1.1系统整体架构
公共自行车可视化系统整体架构主要包括4个部分:数据层、算法层、业务逻辑层和表示层。数据层主要包括杭州公共自行车站点基本信息和公共自行车租还记录。算法层综合考虑地理位置和租还记录构建距离矩阵,采用AffinityPropagation算法[10]对站点进行区域划分;采用新型遗传模拟退火算法[11]对区域间调度站点的公共自行车进行调度;采用XGBoost回归模型[12]对站点和区域的租还流量进行预测。业务逻辑层采用SpringMVC和Python将业务逻辑封装成接口,提供给展示层调用。展示层由Web可视化端和普通用户移动端APP两部分构成,其中Web可视化端采用Echarts结合百度地图API以及Bootstrap前端框架开发,移动端采用ReactNative实现跨平台开发。
1.2服务端架构
该系统的服务端架构由Web服务器集群、数据库集群、共享Session服务器和缓存服务器等部分构成。客户端和负载均衡服务器之间交互,负载均衡服务器根据负载均衡策略,将大量请求有效地分发到不同的Web服务器上,增加了系统吞吐量,提高了系统的灵活性和可用性。由于本系统Web服务器的性能有差异,故本系统的负载均衡策略采用了经典的加权轮询算法,给配置高、负载低的机器配置更高的权重,让其处理更多的请求;给配置低、负载高的机器分配较低的权重,降低系统负载。并选取一台具有较高性能服务器作为备份服务器,该服务器会在其他节点全部无法使用时自动启用,实现服务器高可用性。Web服务器采用集群架构,就要考虑不同服务器之间的Session共享问题。系统采用高速缓存框架Memcache搭建共享Session服务,以实现Web服务器集群中不同服务器之间的Session一致性。本系统对公共自行车数据读功能需求远远大于写功能需求,因此,数据库集群采用主从复制、读/写分离的方式减轻主库的读请求的压力。选取一台数据库服务器作为主库,其他三台服务器作为从库,主库主要负责处理写业务,从库负责读业务。考虑到Redis缓存架构读/写速度非常快,支持丰富的数据类型、支持事务等特性,因此本系统选取Redis作为缓存框架,数据查询时,如果缓存中有相关数据就可以优先从缓存中读取,提高查询速度。本系统对Web前端性能也进行了优化,对JavaScript和CSS文件的体积采用压缩工具进行了压缩,静态资源采用CDN加速,公共自行车站点等部分短期不变的少量数据在localStorage中进行缓存,以此来提高前端页面的加载速度。
2可视化设计
2.1工作流程
本系统主要设计目的是为公共自行车管理者提供站点和区域视角的可视化系统;为普通用户提供便捷的站点信息查询和租还等功能。本系统原始数据包括站点信息和用户租还记录。在数据预处理阶段首先对原始数据进行数据清洗,然后对数据进行编码。根据公共自行车管理员和普通用户两种视角,分别设计了针对公共自行车管理员的可视化系统和普通用户的跨平台APP。
2.2公共自行车管理者页面视图
展示了公共自行车站点分布情况。通过不同颜色的标注将公共自行车站点标记在地图上。以红色标注表示该站点无可借公共自行车;蓝色标注表示该站点无可还车位;绿色标注表示该站点既可借车也可以还车;灰色标注表示该站点当前停止服务。当公共自行车管理者将鼠标停留在站点标注上时,显示该站点的自行车桩位数、可借车数、可还车位数、可借车数和总桩位数比例等信息。当公共自行车管理者用鼠标点击站点标注时,站点的短期和长期租还预测信息将通过折线图直观展现。展示根据站点地理位置和租还记录作为主要因素的公共自行车聚类结果。不同区域用不同颜色图形进行标识。当公共自行车管理者将鼠标停留在区域上时,区域的基本信息和调度中心站点名称和位置将通过信息窗显示出来。当公共自行车管理者用鼠标点击区域时,区域的短时和长时预测信息通过折线图展示出来。系统通过动画方式为公共自行车管理者提供可视化的调度方案。该视图中调度结点为区域视图中每个区域中的调度站点。当公共自行车管理者将鼠标停留在某段线路上,可以查看该段线路从前一个调度站点到下一个调度站点需要移入或者移除车辆数。系统通过动画方式根据区域间的公共自行车骑行状况,为公共自行车管理者提供可视化信息展示功能。不同颜色表示跨区域骑行数量的不同,颜色越深表示跨区域骑行数量越大。公共自行车管理者可以实时掌握区域间公共自行车的用户骑行的情况。
2.3普通用户APP视图
将地图和可视化图形结合在一起。市场调研发现当前公共自行车系统普通用户APP主要提供公共自行车站点自行车和桩位情况的实时查询功能。本系统不仅为普通用户提供站点的实时信息查询和路线推荐等功能,且提供了站点公共自行车的短期和的长期预测的功能。普通用户可以通过此APP查看待租和待还车公共自行车站点的短期和长期预测信息。该功能能够避免公共自行车用户到达公共自行车站点时,该站点无公共自行车可借或无桩位可还的状况。
3系统性能
本系统主要采用Java和Python两种编程语言编写。软件环境为:服务端为Linux衍生版本Ubuntu4.04版本,客户端为Windows10系统,Google浏览器。硬件环境客户端LenovoThinkPadx201i,服务端阿里云服务器11台,其中6台配置为2核/1GB/1Mbps,5台服务器﹙包括共享Session服务器、Redis缓存服务器和数据库主库﹚为2核/2GB/2Mbps。网络环境为100MHz宽带。通过阿里性能测试服务对系统性能进行了测试,并根据测试数据生成测试结果。本系统采用加权轮询算法,由并发量优于其他几种负载均衡算法。从图5性能对比可以看出:采用服务器集群架构的公共自行车可视化系统的系统性能重要指标:TPS、并发数和请求成功率均更优,服务器平均中央处理器﹙centralpro-cessingunit,CPU﹚占用率由96%降低到75%,平均响应时间也由812ms降低为459ms。充分说明负载均衡和读/写分离等技术的运用提高了TPS、并发数以及平均请求成功率。前端页面性能优化和服务端缓存技术的运用,缩小了平均页面加载时间,使得系统运行更加流畅。
4结束语
本文将集群架构运用到公共自行车可视化系统中,通过负载均衡、读/写分离和缓存机制提高了系统的响应速度、稳定性和可用性。但系统可视化组件不够丰富,系统也存在一定局限性。后续将为系统增加更丰富的可视化组件和图形,探究公共自行车数据背后的规律,为公共自行车系统管理者提供更科学的参考方案。
参考文献:
[3]郑洪源,周良,吴家祺.WEB服务器集群系统中负载平衡的设计与实现[J].南京航空航天大学学报,2006,38﹙3﹚:347−351.
[4]周莹莲,刘甫.服务器负载均衡技术研究[J].计算机与数字工程,2010,38﹙4﹚:11−14.
[5]沙光华,陈泳,张长江.读写分离技术在运营支撑系统中的应用[J].计算机工程与应用,2015,51﹙12﹚:107−110.
[6]宋浒,张明明,胡俊军,等.灾备端数据库读写分离技术研究[J].信息技术,2017﹙1﹚:26−29.
[7]李军,劳凤丹,邹仁明.校园网云盘系统构建研究[J].通信学报,2013﹙s2﹚:133−137.
[8]陈岩,高峰,董文菲,等.基于云平台的城市绿地墒情系统[J].传感器与微系统,2016,35﹙6﹚:104−106.
[9]文桂龙,宋开新.基于Android的静电式智能空气净化器系统设计[J].传感器与微系统,2016,35﹙7﹚:90−93.
[11]阎庆,鲍远律.新型遗传模拟退火算法求解物流配送路径问题[J].计算机应用,2004,24﹙S1﹚:261−263.
作者:刘 林菲 马晓婷 单位:杭州电子科技大学