CN110825538A - 一种基于mq可自定义数据类型动态进行数据交互的方法 - Google Patents
一种基于mq可自定义数据类型动态进行数据交互的方法 Download PDFInfo
- Publication number
- CN110825538A CN110825538A CN201911065780.7A CN201911065780A CN110825538A CN 110825538 A CN110825538 A CN 110825538A CN 201911065780 A CN201911065780 A CN 201911065780A CN 110825538 A CN110825538 A CN 110825538A
- Authority
- CN
- China
- Prior art keywords
- data
- equipment
- processing
- communication service
- types
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种基于MQ可自定义数据类型动态进行数据交互的方法。本发明方法包括如下步骤:1、增加新的需要进行数据交互的自定义数据类型;2、设备接入***并向***发送数据;3、***接收到设备发送的数据后,进行校验数据的正确性;并通过设备类型编码和通讯业务类型编码,查找MQ生产者程序;将接收到的数据写入到MQ;4、MQ接收到数据后,发送到MQ消费者程序上进行数据处理;5、MQ在接收到特定的设备数据后,按约定的格式,对数据进行解析并处理;并把处理结果写到指定的数据存储结构上,对数据的业务进行反馈。本发明解决了App与服务器数据交换的数据类型多、数据量大所导致的问题;可以用于终端设备与服务器的数据交互。
Description
技术领域
本发明涉及数据传输技术领域,特别涉及一种基于MQ可自定义数据类型动态进行数据交互的方法。
背景技术
随着互联网及终端设备的发展,越来越多的终端设备需要接入网络,实现实时的信息通讯;例如每人一部的手机上各App与服务器端的数据交换,各种硬件设备如电表、水表等数据自动上传,监测设备是否在线等的心跳检测等。这些终端设备,数据量多,而且每种设备都有多种数据请求类型;例如水表,就存在着签到、心跳、报送数据、签退等数据类型,这些数据类型保证了设备自动与服务器进行联系、数据交互等操作;整个交互的过程数据类型多、数据量大。
随着技术的发展,各种设备存在着不断扩大数据交互类型的可能,例如水表,后续可能会增加进行停机、开机等数据交互类型。按传统的方法,增加的类型需在***上进行修改、调试后,再进行***的部署更新;这个过程涉及的范围大,并且在更新部署的过程,涉及停机的情况下,会影响了其他设备的数据上报。对于特别要求数据实时运行的设备,影响极大;而且设备不断扩展,如果每次都需要这样子操作,会很大影响设备整个***的运行效果;所以需要有一种可快速响应的、无需停机的响应方法,来满足不断增长的数据类型,而且解决大量数据的处理问题。
发明内容
本发明解决的技术问题在于提供一种基于MQ可自定义数据类型动态进行数据交互的方法;实现高效、可扩展数据交互类型的数据交互方法。
本发明解决上述技术问题的技术方案是:
所述的方法包括如下步骤:
步骤1、增加新的需要进行数据交互的自定义数据类型;
步骤2、设备接入***并向***发送数据;
步骤3、***接收到设备发送的数据后,进行校验数据的正确性;并通过设备类型编码和通讯业务类型编码,查找MQ生产者程序;将接收到的数据写入到MQ;
步骤4、MQ接收到数据后,发送到MQ消费者程序上进行数据处理;
步骤5、MQ在接收到特定的设备数据后,按约定的格式,对数据进行解析并处理;并把处理结果写到指定的数据存储结构上,对数据的业务进行反馈。
所述的步骤1具体包括如下方法:
1)、创建各种通讯业务类型的数据交互信息的内容,包括业务数据头部、业务数据内容和业务数据校验码;
2)、业务数据头部包括业务类型编码与业务数据内容总长度;
业务类型编码使用两个字节进行表示,第一个字节表示设备的类型,第二个字节表示设备的各种通讯业务类型;另外,增加两个字节用于表示具体的设备编码和一个长度为4字节的内容用于表示整个数据通信信息内容的长度;
3)、业务数据内容根据设备的通讯业务类型的需要,设计具体的各字节数量及字节内容所表示的意义,各字节数量及字节内容在后续的MQ消费者上进行特定的解析及数据处理;
4)、业务数据校验码在业务数据内容后面,用于校验整个数据交互信息内容的完整性;校验方法是对前面的所有字节内容,按CRC方法进行校验,并保存CRC16校验结果;
5)、设计完成后,在信息上输入设备类型编码、通讯业务类型编码、设备编码、数据信息总长度、对应的消息队列MQ的处理名称。
所述的方法在步骤1后构建一个高负载可用的消息队列MQ,在接收到各种各样的设备类型的各种通讯业务类型编码时,基于MQ把数据分发到各处理***上。
所述的步骤3具体为:
1)、构建一个可高负载接收设备数据的UDP框架,UDP框架在接收到信息后,基于业务数据头部,获取设备的类型、设备的通讯业务类型、设备编码、整个数据通信信息内容的长度及整个信息内容的CRC16的校验结果;
2)、对整个信息内容,按CRC16校验,并与接收到的CRC16结果进行对比;如果对比错误,则把数据丢弃,不进行处理;如果对比一致,则根据获取设备的类型和设备的通讯业务类型,获取到对应的消息队列MQ的处理名称;
3)、基于获取到的对应的消息队列MQ的处理名称,把接收到的数据,直接写入到对应的MQ队列中。
所述步骤4的基于MQ的消费者程序,可分布于一台或多台服务器上;或者实现多种数据存储方式。
所述的方法如需要增加一种设备或一种设备的通讯业务类型,则在配置信息上增加相应的设备类型编码、通讯业务类型编码、设备编码、数据信息总长度、对应的消息队列MQ的处理名称,更新数据上报后的MQ生产者处理程序,并编写新的对应的消息队列MQ的处理程序,注册至MQ上。
本发明的方法,如果有新的设备或是新的设备通讯类型的增加,只需进行配置,并进行相应MQ消费者程序的实现,就可快速地增加商务数据交互的新业务;此过程无需***停机、重新部署、无需修改原有程序;同时实现的MQ消费者程序可分布式部署,实现具体数据的处理、存储的分布式操作;使整个***的负载大大地分散,为大量的设备数据处理、以及以后的大规模新业务类型增加,提供了一种高效可用的扩展方法。
附图说明
下面结合附图对本发明进一步说明:
图1是本发明方法流程图。
具体实施方式
见图1所示,是本发明种基于MQ(消息队列)可自定义数据类型动态进行数据交互的方法。本发明的方法包括以下步骤:
步骤1:基于各类终端设备的种类及各设备的通讯业务类型,创建各种通讯业务类型的数据交互长度、各字节间的长度及表示的方法,并配置对应的消息队列MQ的处理名称。
前述的步骤具体如下:
1)创建各种通讯业务类型的数据交互信息的内容,内容包括业务数据头部、业务数据内容、业务数据校验码。
2)业务数据头部包括业务类型编码与业务数据内容总长度,业务类型编码使用固定的字节进行表示,具体的字节数量按业务的数据进行设计,一般可设计为由两个字节进行表示;第一个字节表示设备的类型,第二个字节表示设备的各种通讯业务类型;同时增加两个字节,用于表示具体的设备编码;另外包括一个长度为4字节的内容,用于表示整个数据通信信息内容的长度;总体业务数据头部共8个字节。
3)业务数据内容,此内容为根据各种设备的各种通讯业务类型的需要,按设计的约定,设计具体的字节数量及各字节内容所表示的意义,各字节数量及字节内容在后续的MQ消费者上进行特定的解析及数据处理。
4)业务数据校验码在业务数据内容后面,用于校验整个数据交互信息内容的完整性,校验方法是对前面的所有字节内容,按CRC(Cyclic Redundancy Check,循环冗余校验)方法进行校验,并把CRC16的校验结果,并保存于整个业务数据内容的最后面。
5)在以上的各种通讯业务类型的数据交互长度、各字节间的长度及表示的方法设计完成后,需在信息上输入设备类型编码、通讯业务类型编码、设备编码、数据信息总长度、对应的消息队列MQ的处理名称,就完成了一个新的自定义的数据类型进行数据交互的增加;其中设备类型编码、通讯业务类型编码、对应的消息队列MQ的处理名称,是一个唯一的内容。
步骤2:构建一个高负载可用的消息队列MQ,此MQ也可按业务量,随时进行快速扩展或减少其最大的负载量。
消息队列MQ是对整个***进行快速响应、业务解耦的重要组成;在接收到各种各样的设备类型的各种通讯业务类型编码时,基于MQ把数据分发到各处理***上,分发的规则按照步骤1的配置进行,并保持实时的规则更新。消息队列MQ,需要根据***的业务量大小,进行负载的调整。
步骤3:构建一个可高负载接收设备数据的UDP框架,用于接收高并发的各种类的设备所发送的通讯业务类型数据,接收到的各类通讯业务类型数据,用于MQ的生产者输入。
详细的步骤如下:
1)UDP框架在接收到信息后,基于业务数据头部,获取设备的类型,设备的通讯业务类型,设备编码,整个数据通信信息内容的长度,及整个信息内容的CRC16的校验结果;
2)对整个信息内容,按CRC16校验,并与接收到的CRC16结果进行对比;如果对比错误,则把数据丢弃,不进行处理;如果对比一致,则根据获取设备的类型、设备的通讯业务类型,获取到对应的消息队列MQ的处理名称。
3)基于获取到的对应的消息队列MQ的处理名称,把接收到的数据,直接写入到对应的MQ队列中。各种对应的消息队列MQ,在***启动时就已初始化,并在进行新规则创建时,实时更新。
步骤4:基于步骤1中的各种通讯业务类型,基于MQ的消费者创建进行各种数据处理的业务方法,并基于一致的消息队列MQ的处理名称,对指定的业务数据进行统一处理;具体实现的业务类型处理方法,可分布于多台服务器上进行处理。
本步骤中,基于MQ的消费者程序,可分布于一台或多台服务器上进行处理,也可以实现多种数据存储方式,以减少整个***的数据存储压力。
步骤5:基于配置好的各设备的通讯业务类型及对应MQ的处理名称,当***接收到设备数据上报后,由UDP框架进行接收,完成数据的验证、获取到设备的类型、设备的通讯业务类型;就可能按约定获取到对应的MQ生产者处理程序,把数据写入到指定MQ生成生产者中,提交到MQ上;MQ消费者在MQ上获取到数据,并按配置好的数据间的各字节的所表示的信息,进行数据获取后保存或数据处理,完成基于MQ的数据处理的过程。
步骤6:假如需要增加一种设备或是一种设备的通讯业务类型,只需在配置信息上增加相应的设备类型编码、通讯业务类型编码、设备编码、数据信息总长度、对应的消息队列MQ的处理名称,更新数据上报后的MQ生产者处理程序,并编写新的对应的消息队列MQ的处理程序,注册至MQ上,就可实现一种新的设备通讯业务类型的数据交互过程。新增加的消息队列MQ处理程序,不依赖于原来的已存在的业务,并可单独运行,这样为整个***的运行、负载,实现了快速、高效的扩展,也有利于整个数据***的稳定运行,为一种大规模的数据上报,提供了一种高效的处理办法。
Claims (9)
1.一种基于MQ可自定义数据类型动态进行数据交互的方法,其特征在于:所述的方法包括如下步骤:
步骤1、增加新的需要进行数据交互的自定义数据类型;
步骤2、设备接入***并向***发送数据;
步骤3、***接收到设备发送的数据后,进行校验数据的正确性;并通过设备类型编码和通讯业务类型编码,查找MQ生产者程序;将接收到的数据写入到MQ;
步骤4、MQ接收到数据后,发送到MQ消费者程序上进行数据处理;
步骤5、MQ在接收到特定的设备数据后,按约定的格式,对数据进行解析并处理;并把处理结果写到指定的数据存储结构上,对数据的业务进行反馈。
2.根据权利要求1所述的方法,其特征在于:所述的步骤1具体包括如下方法:
1)、创建各种通讯业务类型的数据交互信息的内容,包括业务数据头部、业务数据内容和业务数据校验码;
2)、业务数据头部包括业务类型编码与业务数据内容总长度;
业务类型编码使用两个字节进行表示,第一个字节表示设备的类型,第二个字节表示设备的各种通讯业务类型;另外,增加两个字节用于表示具体的设备编码和一个长度为4字节的内容用于表示整个数据通信信息内容的长度;
3)、业务数据内容根据设备的通讯业务类型的需要,设计具体的各字节数量及字节内容所表示的意义,各字节数量及字节内容在后续的MQ消费者上进行特定的解析及数据处理;
4)、业务数据校验码在业务数据内容后面,用于校验整个数据交互信息内容的完整性;校验方法是对前面的所有字节内容,按CRC方法进行校验,并保存CRC16校验结果;
5)、设计完成后,在信息上输入设备类型编码、通讯业务类型编码、设备编码、数据信息总长度、对应的消息队列MQ的处理名称。
3.根据权利要求1所述的方法,其特征在于:所述的方法在步骤1后构建一个高负载可用的消息队列MQ,在接收到各种各样的设备类型的各种通讯业务类型编码时,基于MQ把数据分发到各处理***上。
4.根据权利要求2所述的方法,其特征在于:所述的方法在步骤1后构建一个高负载可用的消息队列MQ,在接收到各种各样的设备类型的各种通讯业务类型编码时,基于MQ把数据分发到各处理***上。
5.根据权利要求2或4所述的方法,其特征在于:所述的步骤3具体为:
1)、构建一个可高负载接收设备数据的UDP框架,UDP框架在接收到信息后,基于业务数据头部,获取设备的类型、设备的通讯业务类型、设备编码、整个数据通信信息内容的长度及整个信息内容的CRC16的校验结果;
2)、对整个信息内容,按CRC16校验,并与接收到的CRC16结果进行对比;如果对比错误,则把数据丢弃,不进行处理;如果对比一致,则根据获取设备的类型和设备的通讯业务类型,获取到对应的消息队列MQ的处理名称;
3)、基于获取到的对应的消息队列MQ的处理名称,把接收到的数据,直接写入到对应的MQ队列中。
6.根据权利要求1至4任一项所述的方法,其特征在于:所述步骤4的基于MQ的消费者程序,可分布于一台或多台服务器上;或者实现多种数据存储方式。
7.根据权利要求5所述的方法,其特征在于:所述步骤4的基于MQ的消费者程序,可分布于一台或多台服务器上;或者实现多种数据存储方式。
8.根据权利要求1至4任一项所述的方法,其特征在于:所述的方法如需要增加一种设备或一种设备的通讯业务类型,则在配置信息上增加相应的设备类型编码、通讯业务类型编码、设备编码、数据信息总长度、对应的消息队列MQ的处理名称,更新数据上报后的MQ生产者处理程序,并编写新的对应的消息队列MQ的处理程序,注册至MQ上。
9.根据权利要求7所述的方法,其特征在于:所述的方法如需要增加一种设备或一种设备的通讯业务类型,则在配置信息上增加相应的设备类型编码、通讯业务类型编码、设备编码、数据信息总长度、对应的消息队列MQ的处理名称,更新数据上报后的MQ生产者处理程序,并编写新的对应的消息队列MQ的处理程序,注册至MQ上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911065780.7A CN110825538A (zh) | 2019-11-04 | 2019-11-04 | 一种基于mq可自定义数据类型动态进行数据交互的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911065780.7A CN110825538A (zh) | 2019-11-04 | 2019-11-04 | 一种基于mq可自定义数据类型动态进行数据交互的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110825538A true CN110825538A (zh) | 2020-02-21 |
Family
ID=69552586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911065780.7A Pending CN110825538A (zh) | 2019-11-04 | 2019-11-04 | 一种基于mq可自定义数据类型动态进行数据交互的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110825538A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113726845A (zh) * | 2021-07-14 | 2021-11-30 | 深圳市有为信息技术发展有限公司 | 车载终端的数据传输方法、装置、车载终端和商用车辆 |
CN113923248A (zh) * | 2021-09-30 | 2022-01-11 | 深圳海智创科技有限公司 | 一种通用mq交互方法、***、装置及存储介质 |
-
2019
- 2019-11-04 CN CN201911065780.7A patent/CN110825538A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113726845A (zh) * | 2021-07-14 | 2021-11-30 | 深圳市有为信息技术发展有限公司 | 车载终端的数据传输方法、装置、车载终端和商用车辆 |
CN113923248A (zh) * | 2021-09-30 | 2022-01-11 | 深圳海智创科技有限公司 | 一种通用mq交互方法、***、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105335293A (zh) | 一种基于接口并行的自动化测试***和方法 | |
US9639444B2 (en) | Architecture for end-to-end testing of long-running, multi-stage asynchronous data processing services | |
US10467066B2 (en) | System and method for establishing common request processing | |
CN112988485B (zh) | 电力物联网设备模拟测试方法及装置 | |
CN111683066B (zh) | 异构***集成方法、装置、计算机设备和存储介质 | |
CN108241576B (zh) | 一种接口测试方法及*** | |
CN110688828A (zh) | 文件处理方法及装置、文件处理***、计算机设备 | |
CN113760565A (zh) | 一种数据处理平台、数据处理方法、存储介质及电子设备 | |
CN107168844B (zh) | 一种性能监控的方法及装置 | |
CN112732572A (zh) | 服务的测试方法、装置及***、存储介质、电子装置 | |
CN110932918A (zh) | 日志数据采集方法、装置及存储介质 | |
CN114205274A (zh) | 网络设备的测试方法及其装置 | |
CN110825538A (zh) | 一种基于mq可自定义数据类型动态进行数据交互的方法 | |
CN111200523A (zh) | 中台***配置方法、装置、设备及存储介质 | |
CN110334147A (zh) | 一种数据同步方法及装置 | |
CN113127108A (zh) | 业务请求的处理方法及装置、存储介质以及电子设备 | |
JP2021192214A (ja) | アプリケーションの動作状態を検証する方法および装置 | |
CN112631884A (zh) | 基于数据同步的压测方法、装置、计算机设备及存储介质 | |
CN110022323A (zh) | 一种基于WebSocket与Redux的跨终端实时交互的方法和*** | |
CN111752820A (zh) | gRPC接口的压力测试方法、计算机设备和存储介质 | |
CN103944779B (zh) | 一种wap业务性能监测方法及*** | |
CN115951923B (zh) | 订阅事件管理方法、显示***、设备和存储介质 | |
CN110728118B (zh) | 跨数据平台的数据处理方法、装置、设备及存储介质 | |
CN103561113A (zh) | Web Service接口的生成方法及装置 | |
CN102594587B (zh) | 嵌入式web调测维护方法及调测维护*** |
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 |