论文部分内容阅读
物联网应用自从在各垂直领域取得重要进展后,如今正逐步迈向平台化建设的进程。而其作为一种极为重要数据获取方式,并与近年来蓬勃发展的大数据、数据挖掘、移动通信等技术相结合,为构建智能化社会、提高社会生产效率做出其应有的贡献。但在应用规模激增和平台化建设如火如荼的当下,对物联网核心基础应用——数据接入与数据存储服务发起了挑战。如何在保证低延时的情况下处理大量终端设备的网络通信;如何快速存储由终端设备上传的高频、小流量异构数据都是亟待解决的问题。为此本文做了如下工作:1.数据接入系统:数据接入服务其本质上是一种网络通信服务。在对比分析多种常用网络通信库后,选用Netty构建网络通信服务子程序。为降低数据处理时延,剥离出网络通信业务中耗时操作并将数据推送至流式消息中间件系统Kafka中,再由Kafka消费者负责数据后续处理工作。为了支持数据接入系统的正常工作,设计了一种可供采集终端与收集端使用的通信协议并引入序列化算法来确保通信协议的可用性。实验结果表明:数据接入系统正常可用,能完成数据的基本传输;单机在万级别的并发度下的数据处理速度很快,延时较小;使用Kafka对程序解耦取得了实质效果,改善了网络通信程序的线程阻塞情况。2.数据存储系统:将物联网这一异构数据分为结构化和非结构化两类并分别采用不同的存储方案。在考虑可用性、成本、效率等多重限制因素的情况下,选用分布式NoSQL型数据库HBase来存储结构化数据,选用分布式文件系统FastDFS来存储非结构化数据。为提升系统效率,在应用HBase过程中,对行键设计、聚合操作、Region拆分做了优化;在应用FastDFS过程中,结合Redis实现文件关系映射和缓存业务。实验结果表明:HBase的写入性能要优于MySQL,且各优化手段起到了效果;FastDFS存储小文件的性能优于HDFS,且热点数据存于Redis的缓存中可以提升读取效率。