论文部分内容阅读
近年来,随着计算机与大数据技术的发展,各地政府纷纷建设智慧城市系统以提升城市管理水平与政府决策效率。部件(指井盖、路灯、停车场、过街天桥等城市设施)作为城市不可或缺的基础设施,开发稳定高效的部件管理系统具有重要意义,这不仅能充分调动城市资源,结合部件在城市中分布广泛、稠密等特点,部件系统在智慧城市物联网建设中也会起到关键作用。已有的相关研究中大多采用传统C/S模式与关系型数据库进行架构设计,且并未对架构稳定性与并发性做特殊设计。同时,已有研究中未对部件GIS数据存储查询进行优化。本文结合实验室承担建设的北京某区智慧城市项目,研究并实现了智慧城市部件管理系统。主要工作包括研究系统技术架构、优化系统性能、实现系统功能需求三方面内容。创新之处体现在一是结合部件系统实际需求研究实现稳定可扩展的技术架构,二是提出采用Geohash编码和Hbase大数据技术优化部件GIS数据存储、查询性能,三是采用自建缓存表的方式优化MySQL数据库查询性能。首先,针对特定性能和稳定性需求,研究并实现一套稳定B/S技术架构。技术架构将微服务框架Dubbo与Spring、Nginx、Keepalived等软件相结合以降低系统模块间耦合性并提高系统运行稳定性。架构分为服务层、负载层、业务层、存储层。服务层在满足模块内业务流转基础上将服务进行封装并以RESTful风格接口向外提供。采用开源软件在已有网络上建立负载层,以廉价、高效的方法提高网络处理能力增加系统吞吐量,本文使用Nginx做负载均衡,采用Keepalived保证Nginx高可用,在增强系统并发处理能力基础上提升运行稳定性。业务层采用开源微服务框架Dubbo实现服务提供者和消费者的分离以提升开发效率与系统扩展性,采用消息中间件RabbitMQ提高系统异步处理能力。存储层使用Hbase与MySQL两种数据库,MySQL存储部件运行业务数据,Hbase存储部件GIS信息,根据数据特点进行存储不仅节省存储空间也能提高数据访问效率。Redis数据库用于缓存热点数据和共享用户Session信息。该套架构以集群方式部署运行。其次,是系统性能优化相关工作。性能优化包含两部分主要内容,一是采用自建缓存表对MySQL数据库进行优化,二是利用Geohash编码技术对部件经纬度进行编码后结合Hbase Rowkey特点对部件GIS数据存储查询进行优化。部件GIS数据优化采用逐步深入的方法探讨最优存储优化方案,首先根据部件管理系统实际需求提出两个问题,并说明直连经纬度的弊端,从而引出Geohash索引技术,并说明一种特殊情况,最后给出查询例子。然后,从功能需求上将部件管理系统分为部件数据迁移、部件数据管理、部件数据展示和服务提供四个模块。数据迁移模块负责将遗留系统中的部件数据迁移到新库中,数据迁移分为初始迁移与增量迁移,迁移过程要保证数据的完整性。数据管理模块负责部件的日常维护工作,巡检监督员发现问题部件并通过App端上报维修,系统管理员要对问题部件实时状态做出及时处理。数据展示模块负责对部件数据进行时不同维度的展示,包括查询列表展示、GIS展示与统计分析展示。服务提供模块主要有两部分工作,一是负责部件系统内部业务流转,二是向其它系统提供服务。最后,本文通过有效测试和线上运行证明架构设计满足可靠性要求,数据优化满足性能要求,系统需求模块划分满足用户使用要求,达到了系统预期目标,提升了政府工作效率和人民生活质量。