CN107302582B - 千万级物联网场景的数据采集及弱推送方法 - Google Patents
千万级物联网场景的数据采集及弱推送方法 Download PDFInfo
- Publication number
- CN107302582B CN107302582B CN201710556722.9A CN201710556722A CN107302582B CN 107302582 B CN107302582 B CN 107302582B CN 201710556722 A CN201710556722 A CN 201710556722A CN 107302582 B CN107302582 B CN 107302582B
- Authority
- CN
- China
- Prior art keywords
- server
- message
- push
- things
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
针对千万数量级以上的大规模物联网,如智慧城市路灯控制、智能农场喷洒系统等有大规模接入需求且无需保证秒级实时控制的场景,提出了千万级物联网场景的数据采集及弱推送方法,是一个高性能的物联网接入架构与实现方法,为大规模的物联网设备接入,实现大规模物联网场景的节点数据上报、千万数量级的节点接收服务器端的消息推送。本发明采用UDP与LRU缓存实现的弱推送方式,在绝大多数情况下能达到比TCP更高的实时性能,没有命中时也能通过节点定时激活更新LRU列表并推送消息。另外,本发明的确认重传方式也保证了数据上传的可靠性。
Description
技术领域
本发明涉及物联网领域,具体涉及应用到物联网接入平台、数据采集、消息推送、智慧城市、智慧农场的领域。
背景技术
本发明方法涉及UDP、HTTP、消息队列、弱推送与LRU缓存等内容。即通过HTTP验证获取接入服务器,用UDP与接入服务器通信,客户端负责数据采集上报与接收服务器消息推送,处理结果通过HTTP上报服务器。本发明的弱推送方式比传统的维持长连接方式,虽然不能保证秒级的实时性(0.3s~60s),但提供了更高的性能,极大降低了成本,适用于城市路灯控制、农场喷洒等有大规模接入需求且无需秒级实时控制的场景。
与本发明最相近的方法有CN103227840A孙琦等人提出的一个面向物联网的高并发高可用数据采集系统。该发明中,传感器设备采集数据以后,向数据侦听集群控制器模块请求分配数据侦听服务器,数据侦听集群控制器模块监控数据侦听服务器集群模块的运行状态,数据侦听集群控制器模块将可用的数据侦听服务器分配给传感器设备,传感器设备在分配的数据侦听服务器中选择一个数据侦听服务器;传感器设备将数据并行推送给数据侦听服务器集群模块,若发送失败,传感器设备将再次向数据侦听集群控制器模块请求分配新的数据侦听服务器。数据侦听服务器在成功接收数据以后,将数据转发到数据存储模块。该发明解决了传感器将数据发送到上级节点时发送失败的情况,考虑了负载均衡,提高了实时性。但不具备服务器到节点设备的消息推送功能。
相比上述的方法,本发明重在于提供高性能的服务,为大规模的物联网设备接入,实现大规模物联网场景的节点数据上报、千万数量级的节点接收服务器端的消息推送。
发明内容
目前的物联网接入平台一般是采用基于tcp长连接的mqtt协议,适用于实时性要求较高的物联网场景如智能家居等,而对于大规模城市路灯、大规模农场等只需较弱的实时性(几秒至分钟级延迟)的场景,维持长连接的代价相对过大,因此,本发明采用了基于UDP的通信方式,实现弱推送功能,在满足上诉场景需求的情况下,极大提高了服务并发能力。
图1是该方法的客户端流程框图。主要包括获取接入服务器、定时上报数据、接收推送、确认重传、上报处理结果五个步骤。
通过获取接入服务器的步骤来实现登录验证、负载均衡功能;UDP服务器对接收到的数据包采用批量验证的方式,降低数据库连接池获取频率,减少锁竞争,大大提高性能;服务器端维护一个LRU算法的列表用于缓存udp地址,若有消息需要推送,则查找地址并发送,若不存在,则把消息保存在nosql数据库中,当节点定时上报时,立刻读出消息推送给节点;每个上报的数据包都带有序号,当序号不是递增1时,则推送确认重传报文,节点收到后从确认序号开始重传;节点处理完消息后,处理结果通过http上报至服务器。
附图说明
图1客户端流程框图;
图2整体架构图;
图3 UDP服务器功能流程图;
图4详细架构图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述
一、登录服务器
节点通过ID密码登录服务器,服务器验证通过后,通过etcd服务发现,选择一个负载较轻的UDP接入服务器,生成token保存在缓存数据库中,通过消息队列发送token给相应的UDP服务器保存在本地缓存数据库中,并把接入地址与token返回给节点。整体架构如图2。
二、UDP服务器
UDP服务器有四大功能:监听UDP,处理数据,订阅推送消息,订阅登录消息。功能流程图如图3所示。
监听UDP端口。当接收到数据包时,不做任何处理,直接放进一个队列中,继续监听接收。
订阅登录消息。节点登录成功后生成的token,并保存在本地缓存中,用于批量验证,提高并发量。
处理数据。读取队列中所有的数据包,取出token批量验证,不通过则丢弃,通过则更新LRU列表(用于实时推送),判断递增序号是否正确,不正确则发送确认报文让节点重传,正确则批量保存在nosql数据库中,然后检查缓存有消息则立刻推送。
订阅推送消息。订阅到消息路由服务器发送过来的消息后,查找LRU列表,存在则立刻推送,不存在则把消息保存在本地缓存中。
三、节点客户端
节点登录后获取token与接入地址,每个节点数据包都有一个序号,并保存在一个循环队列中,一个确认指针指向数据起始下标,定时上报最新数据包并加入循环队列中。若收到确认报文(内含序号),则更新确认指针到相应数据包序号的下标,并把确认指针之后的全部数据包发送到服务器(即确认重传功能)。节点收到的消息,处理后的结果发送到上报HTTP服务器中。流程如图1。
四、上报HTTP服务器
接收消息路由服务器发送过来的消息(节点ID、发送序号),并保存在本地缓存中。当接收到节点发送过来的处理结果,验证并确认序号后,向消息路由服务器发送(节点ID、发送序号、结果)。
五、消息路由服务器
消息路由服务器主要有三步:订阅推送消息,消息路由,订阅结果。
订阅推送消息。推送消息的来源有移动app操作、web管理系统的操作、第三方接入的应用操作等。
消息路由。把订阅的消息格式化后(加入发送序号等操作),保存推送记录数据库中,并通过消息队列发送给UDP服务器;发送(节点ID、发送序号)到上报HTTP服务器。
订阅结果。订阅上报HTTP服务器的结果,并更新记录数据库,取出上一次结果发送序号到这次序号之间的数据,生成结果列表(这次序号之前的都视为失败,可能是丢包等原因使节点没有收到,可根据具体需求重新推送),然后返回给移动端服务器或web管理服务器。
对本发明作进一步详细的描述系统可如下。
一、编写节点客户端,生产节点,ID与密码入库登记。
二、部署etcd、redis、nats、hbase、mysql、nginx等中间件。
三、采用go语言fasthttp编写高性能登录服务器。
四、采用go语言fasthttp编写上报HTTP服务器。
五、使用go语言编写UDP接入服务器。
六、使用go语言编写消息路由服务器。
七、运行部署整体架构。
八、编写安卓客户端app与web管理系统。
九、加入绑定、管理、编组、权限等业务流程。
十、运行测试。
具体的实现技术与方法,如图4所示。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (5)
1.一种千万级物联网场景的数据采集及弱推送方法,其特征在于:
通过获取接入服务器的步骤来实现登录验证、负载均衡功能;UDP服务器对接收到的数据包采用批量验证的方式,降低数据库连接池获取频率,减少锁竞争;服务器端维护一个LRU算法的列表用于缓存udp地址,若有消息需要推送,则查找地址并发送,若不存在,则把消息保存在nosql数据库中,当节点定时上报时,立刻读出消息推送给节点;每个上报的数据包都带有序号,当序号不是递增1时,则推送确认重传报文,节点收到后从确认序号开始重传;节点处理完消息后,处理结果通过http上报至服务器;
通过节点udp定时上报与服务器维护LRU列表来获取有效地址,从而实现弱推送功能。
2.根据权利要求1所述的数据采集及弱推送方法,其特征在于:通过登录服务器与etcd服务发现来实现负载均衡。
3.根据权利要求1所述的数据采集及弱推送方法,其特征在于:UDP服务器,使用本地缓存,对接收的数据包采用批量验证处理的方式。
4.根据权利要求1所述的数据采集及弱推送方法,其特征在于:节点处理结果上报http服务器,http服务器通过消息队列,从消息路由服务器获取发送序号并缓存在本地,接收到节点的结果后,验证并检查序号后把结果发送到消息路由服务器。
5.根据权利要求1所述的数据采集及弱推送方法,其特征在于:消息路由服务器,包含两个方式:其一,订阅移动端服务器、web管理系统服务器、第三方应用推送命令,生成格式化消息后保存在记录数据库,并发送到消息队列供UDP服务器与上报HTTP服务器使用;其二,订阅上报HTTP服务器的结果,更新记录数据库,生成结果列表返回给用户端,并根据具体需求重传推送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710556722.9A CN107302582B (zh) | 2017-07-10 | 2017-07-10 | 千万级物联网场景的数据采集及弱推送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710556722.9A CN107302582B (zh) | 2017-07-10 | 2017-07-10 | 千万级物联网场景的数据采集及弱推送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107302582A CN107302582A (zh) | 2017-10-27 |
CN107302582B true CN107302582B (zh) | 2021-03-09 |
Family
ID=60132834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710556722.9A Active CN107302582B (zh) | 2017-07-10 | 2017-07-10 | 千万级物联网场景的数据采集及弱推送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107302582B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246219A (zh) * | 2018-09-18 | 2019-01-18 | 食品安全与营养(贵州)信息科技有限公司 | 一种IoT数据采集系统的工作方法及系统 |
CN110191174A (zh) * | 2019-05-28 | 2019-08-30 | 西门子(上海)电气传动设备有限公司 | 基于http协议的数据监视系统、方法及计算机可读介质 |
CN111061171A (zh) * | 2019-12-04 | 2020-04-24 | 广州穗能通能源科技有限责任公司 | 配电房监控系统、配电房数据处理、调用方法及其装置 |
CN112512031B (zh) * | 2020-11-10 | 2021-10-08 | 广州爱浦路网络技术有限公司 | 一种应用于5g网络的数据采集方法和5g网络 |
CN115314569B (zh) * | 2022-05-10 | 2023-11-28 | 浙江大学 | 一种基于udp的轻量级mqtt设计方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664716A (zh) * | 2012-04-13 | 2012-09-12 | 南通大学 | 一种应用于实时监测的无线传感器网络数据收集方法 |
CN204231419U (zh) * | 2014-11-15 | 2015-03-25 | 周成亮 | 一种基于云技术及物联网技术的智能家居门铃系统 |
CN104702484A (zh) * | 2013-12-06 | 2015-06-10 | 中兴通讯股份有限公司 | 推送方法及装置 |
CN106534107A (zh) * | 2016-11-04 | 2017-03-22 | 北方工业大学 | 一种物联网消息服务系统 |
CN106789259A (zh) * | 2016-12-26 | 2017-05-31 | 中国科学院信息工程研究所 | 一种LoRa核心网系统及实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0520836D0 (en) * | 2005-10-13 | 2005-11-23 | Scansafe Ltd | Remote access to resources |
-
2017
- 2017-07-10 CN CN201710556722.9A patent/CN107302582B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664716A (zh) * | 2012-04-13 | 2012-09-12 | 南通大学 | 一种应用于实时监测的无线传感器网络数据收集方法 |
CN104702484A (zh) * | 2013-12-06 | 2015-06-10 | 中兴通讯股份有限公司 | 推送方法及装置 |
CN204231419U (zh) * | 2014-11-15 | 2015-03-25 | 周成亮 | 一种基于云技术及物联网技术的智能家居门铃系统 |
CN106534107A (zh) * | 2016-11-04 | 2017-03-22 | 北方工业大学 | 一种物联网消息服务系统 |
CN106789259A (zh) * | 2016-12-26 | 2017-05-31 | 中国科学院信息工程研究所 | 一种LoRa核心网系统及实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107302582A (zh) | 2017-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107302582B (zh) | 千万级物联网场景的数据采集及弱推送方法 | |
CN112839111B (zh) | 边缘位置处的可定制的事件触发计算的系统、方法和介质 | |
US10972573B1 (en) | Browser optimization through user history analysis | |
CN106657394B (zh) | 一种基于物联网大数据的设备信息采集系统及方法 | |
CN104054316B (zh) | 用于对sms中心进行负载平衡和建立虚拟专用网络的系统和方法 | |
US7310687B2 (en) | Methods and systems for managing class-based condensation | |
CN103281394A (zh) | 文件获取方法、节点服务器和系统 | |
US11076181B2 (en) | Systems and methods for resolving manifest file discontinuities | |
US9564960B2 (en) | Decentralized caching system | |
CN102984286A (zh) | 一种dns服务器的缓存更新方法、装置及系统 | |
US20130198313A1 (en) | Using entity tags (etags) in a hierarchical http proxy cache to reduce network traffic | |
CN101183946B (zh) | 一种获取下载文件资源列表的方法及系统 | |
CN103685337A (zh) | 共享文件的方法、终端设备及中转服务器 | |
CN104506643A (zh) | 分布式存储系统的服务器及服务器之间的数据同步方法 | |
US20060246889A1 (en) | Wireless Data Device Performance Monitor | |
CN105912422A (zh) | 数据备份方法、备份客户端与数据备份系统 | |
CN102984277B (zh) | 防止恶意连接的系统和方法 | |
CN103731507A (zh) | 一种分布式数据存储设备处理数据的方法及装置 | |
CN104468704A (zh) | 支持内容中心网络的Web服务器系统及处理方法 | |
CN104348661B (zh) | 网络失效数据上传、接收方法和设备及记录方法和系统 | |
KR20210130989A (ko) | Api 게이트웨이 엑셀레이터 시스템 및 방법 | |
CN115499230A (zh) | 网络攻击检测方法和装置、设备及存储介质 | |
CN113271362B (zh) | 基于混合云的教育资源的处理方法、装置、系统及介质 | |
CN106856456B (zh) | 缓存集群服务的处理方法及系统 | |
CN109347936A (zh) | Redis代理客户端的实现方法、系统、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |