您好,欢迎来到天津华仪创展科技!专业提供无线远传水表、智能远传水表、远传智能水表、远程水表、物联网水表,远传水表价格优惠,源头厂家,免费拿样!咨询热线:13821082127
您的当前位置:首页 > 行业资讯 > 常见问题 > 正文内容

远传水表数据平台高并发访问的解决方案

提问者: 浏览: 39 2019-02-18

远传水表数据平台是自动抄表系统的组成部分,随着应用业务的成熟,按照规划后期会有十万、百万数量的智能水表接入,几十万或近百万条的抄表数据需要同时写入数据库,那么远传水表数据平台就要考虑解决高并发访问带来的问题,如何解决远传水表数据平台高并发访问?

最佳回答
头像
无线远传水表专家
推荐于:2019-02-18 15:46:42
最佳回答

       实施几万块远传水表自动抄表系统,远传水表数据平台是该系统的组成部分,承担着水表数据的采集、管理和应用的功能,面向底层发布采集指令或定时接收数据集中器的写入请求进行数据存储,面向上层提高数据加工、查询、统计、传输的服务。在当前两万块水表的应用场景和通用软硬件配备下,远传水表数据平台的常规搭建,不会存在数据并发写入引起的系统不可忍受的迟缓——甚至宕机的问题。

       但是,随着应用业务的成熟,按照规划后期会有十万、百万数量的智能水表接入,几十万或近百万条的抄表数据需要同时写入数据库,那么无线远传水表数据平台就要考虑解决高并发访问带来的问题,需要提高抄表数据记录采集的TPS。

       市场上专业的大公司有解决高并发访问问题的专业产品,同时可以为用户定制开发,当然他们的IT解决方案中包括高大上的硬件和软件,价格之昂贵一般公司难以承受。另外,淘宝网站、12306票务系统采用了在通用解决方案的基础上,进行自主开发和研究,也成功地解决了高并发访问的问题。

       高并发访问解决方案:

       随着远传水表的大量使用,抄表方式正在由手持抄表向远程全自动抄表转变,一套由远传水表、数据集中器、GPRS通信网络、远传抄表数据平台组成的自动抄表系统正在实施,远传水表数据平台控制数据集中器,进行指令交互和水表数据采集,目前从集团公司六个抄表站下辖的区域内选定了共两万块水表接受系统管理。为了适应水表的快速扩充和接入系统实施自动抄表的要求,设计的数据平台要在高并发访问层面上具有前瞻性,在三到五年内面临水表业务扩充的情况,在已有软硬件环境下能够接受高并发访问的压力。

       在远传水表数据平台项目后续的实施过程中,结合合远传水表的分布、抄表站点的分布、抄收业务规则等实际情况,可以从系统架构、网络设备配置、软件设计、数据库设计和业务管理方面进行合理的统筹安排,有针对性地采取措施来应对高并发抄表数据写入和响应的问题。

远传水表数据平台架构图

一.划分系统层级

       远传水表数据平台在集团总公司部署一级平台,每个抄表站分别部署二级平台,一级平台设置为系统主站,每个二级平台设置为从站。从站系统负责本辖区下的远传水表的抄表、核对、计量、分析、校验的工作,然后把经过审核确认的数据集中上传给集团公司的主站,主站系统负责数据的集中和应用。

       通过划分层级实现了抄表任务的分解,避免了主站的同一时间段内的高并发访问。

二.软件设计

       1.开发框架

       当前,软件开发的技术框架林林总总百花齐放,那边厢唯IT巨头马首是瞻,这边厢在高举去IOE的大旗,把庞大的互联网+帝国打造得独步世界无人能敌。那么我们是向左还是向右?放眼看来,巨头的重量级产品解决方案的效果自然毋庸置疑,反其道而行之的轻量级架构方案也是一骑绝尘风生水起,但是我相信,无论是两种路线下的哪种方案,都是在充分考虑了自己的实际情况,组合了每个路线中的合适产品构建了一个完美有效专有体系。因此,只要是经过充分论证选型合适,就可以避免很多题。

       调研一些远传数据采集系统发现,大多使用Java语言开发,后台数据库有Mysql、Oracle等。结合我们公司的技术人员情况和水表厂家可能的支持,推荐使用Java开发语言和Ora⁃cle11g数据库组合的方案。有很多Java的框架方案可以选择,为进一步论证提供基础,这里抛砖引玉提供两个

       (1)Java+Struts+Spring+Hibernate+Oracle

       (2)Java+Struts+Spring+Mybaits+Oracle

       2.分时采集

       远传水表数据平台在不进行多层级平台划分的情况下,只设置集团公司一个数据中心,通过软件逻辑设计也可以对高并发访问进行分解。我们可以对多个抄表站的数据采集工作在时间上进行统筹规划,安排每个抄表站在自己专用时间段内采集数据。

       当然,平台分层和采集分时两个方案可以结合使用,远传水表数据平台即进行主、从分级,也在从站进行数据采集的时候,按自己抄表站下辖的不同片区进行分时间段采集数据。

三.数据库设计

       1.访问优化

       远传水表数据平台采用oracle11g数据库,如果只使用一个数据库,在数据采集的时候,同时有查询统计的业务发起,那么采集来的数据不一定写进去,查询统计也迟迟不见结果出来。可以采取在两个库上(主、从库)读、写分离的模式,主库负责写数据、读数据,从库负责读数据,解决读写操作争抢资源造成性能下降的问题。

       数据库的读写分离方案,首先要实现主、从库的数据同步,可以采用Oracle自有的组件功能,如Oracle11g的ActiveDataGuard。出于稳定性、处理能力等考虑也可以选择商业化的产品,国外的有Quest公司的SharePlex,国内的有DSG公司的Re⁃alSync,还有Oracle自有的GoldenGate,都可以选择使用。每次有写库操作,同步更新cache,每次读取先读cache再读DB。

远传水表数据库读写分离

       其次,在程序开发中,要制定和实现数据访问策略,写数据操作指向主库,读数据操作指向从库。

       还可以对读写库的方案进一步细化,做适当做外延,对主库可以采用OracleRAC的架构模式实现HA,对读库可以采用多个副本,通过负载均衡或者业务分离的方式,有效分散读库的压力,满足高可用性和扩展性等要求。

       2.查询语句优化

       编写远传水表数据平台的SQL语句,要注意以下规则:

       对远传水表数据平台的功能进行规划确定后,在访问数据库层面上充分考虑结构化、模块化的实现,构造体及目标结果可以复用,把访问数据库的频次降下来;SQL语句的结果集要精炼,首先不要使用通配符,如Select*FROMcustmeterC语语句,其次,去除不必要的字段信息,再者,在不需要全部结果集的时候,可以限制结果集的行数,这样可以减少查询时内存、传输时网络等资源消耗。

       3.建立和使用高效的索引

       使用索引查询数据库是高效获取数据的必要策略,有统计数据表明九成以上的数据库性能问题可以依赖索引技术解决。Oracle数据库有两类索引:簇索引和非簇索引,分析远传水表数据平台的常用功能中搜索数据的特点,选择合适的字段建立簇索引。使用簇索引搜索到符合条件的一行记录后,接下来

       要处理的下一行记录物理存储位置就在相邻的地方,因此处理起来会节省时间。

四.运行环境

       1.快速存储设备的使用

       计算机技术发展到今天,服务器性能的瓶颈是在I/O操作上。此类操作有内存I/O,网络I/O,磁盘I/O。尽管使用RAID技术对机械磁盘阵列来加快磁盘I/O速度,但机械磁盘I/O的速度依然要慢很多,那么可以采购使用固体硬盘或闪存阵列的存储设备。

       2.服务器性能优化

       设计一个追求运行稳定和性能优良的数据平台架构,对处于中枢地位的服务器,要进行合理的规划和配置发挥最大的计算和处理作用。要从服务器内在和外在两个方面识别影响因素,包括环境温湿度,环境灰尘,网络稳定,硬盘读写,CPU负载,内存使用率。对其中的低于系统运行要求的因素进行改善或提高配置,消除瓶颈,让所有的部件都被充分地利用起来,服务器内外部分作为一个整体发挥最大的功效。

五.总结

       实现一个高并发访问的数据处理平台,需要全面考虑平台的每一个组成部分是否是一个木桶的短板,任何的瓶颈会给数据存储带来不稳定因素影响系统整体效果;系统关键部分性能的冗余度考虑不充分,难以满足后续业务扩展的要求,系统运行生命周期短进而再次投入资金重新建设造成经济损失。为了实现高并发访问系统的稳定性,我们要从底层的远传水表、数据采集器组网到上层的后台数据库运行,考虑全系统软硬件的性能问题,只有在各个环节采取合理的解决方案,做好防范应对高并发访问的压力,才能补齐短板整体跨越上升到一个全新的高度。


博聚网