CN114726792A - 一种基于json报文的处理方法、装置、设备及介质 - Google Patents
一种基于json报文的处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114726792A CN114726792A CN202210412209.3A CN202210412209A CN114726792A CN 114726792 A CN114726792 A CN 114726792A CN 202210412209 A CN202210412209 A CN 202210412209A CN 114726792 A CN114726792 A CN 114726792A
- Authority
- CN
- China
- Prior art keywords
- message
- json
- message queue
- value
- check
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- 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/04—Protocols for data compression, e.g. ROHC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种基于json报文的处理方法、装置、设备及介质。该方法包括:获取接收到的json报文;对接收到的json报文进行分级线性压缩处理;将压缩后的json报文输入至对应的消息队列中;针对每个消息队列,获取当前校验规则对应的加权因子,根据加权因子的大小和获取的校验消息队列的校验规则的数量,确定最终校验规则;对消息队列中的压缩后的json报文进行解压缩处理,并根据最终校验规则对解压缩后的json报文进行校验处理,若解压缩后的json报文校验通过,则执行相应的业务处理。本申请的方法,通过分级线性压缩以及对json报文进行精准校验,缩短了压缩后数据的长度,简化了校验流程,提高了数据处理速度。
Description
技术领域
本申请涉及通信技术,尤其涉及一种基于json报文的处理方法、装置、设备及介质。
背景技术
现有技术中,发送方主要是通过传输控制协议(Transmission ControlProtocol;简称:TCP)中的连接目的地址和端口,将JSON报文的传输至对应的落地接口方以进行相应的处理。但是,当接收到的报文相对较多时,会导致落地接口方的算力不足而出现宕机的情况,且发送方并没有收到有效反馈报文而继续处于发送JSON报文的状态,使得落地接口方更不能进一步处理报文。
为了解决上述技术问题,现有技术在对json报文进行传输的过程中,采用数据缓存方法或者流量管控方法进行限流降级,以减缓落地接口方的接收速率,从而一定程度上提高了落地接口方对数据处理的吞吐性能。
但是,由于现有技术中仅是在对json报文进行传输的过程中进行限流降级,但是并没有对落地接口方的数据的处理速率进行提升,即落地接口方的数据的吞吐性能依然要严重依赖于落地接口方的机器性能以及代码复杂度。
发明内容
本申请提供一种基于json报文的处理方法、装置、设备及介质,用以解决现有技术中落地接口方的数据的处理速率严重依赖于落地接口方的机器性能以及代码复杂度的技术问题。
一方面,本申请提供一种基于json报文的处理方法,包括:
接收多源json报文。
对接收到的json报文进行分级线性压缩处理,以获取压缩后的json报文。
将压缩后的json报文输入至所述压缩后的json报文的源类型对应的消息队列中。
获取所述消息队列对应的当前所使用的校验规则对应的加权因子,并根据每个加权因子的大小,以及基于所述消息队列对应的当前校验错误率获取的校验所述消息队列的校验规则的数量,确定最终校验所述消息队列的校验规则。
对所述消息队列中的压缩后的json报文进行解压缩处理,并根据所述最终校验所述消息队列的校验规则,对解压缩后的json报文进行校验处理。
若所述解压缩后的json报文校验通过,则执行相应的业务处理,若所述解压缩后的json报文校验未通过,则丢弃该报文。
在一种具体实施方式中,还包括:
根据所述接收到的json报文,将所述json报文中的key值替换为固定长度的短字符。
根据所述接收到的json报文中的每个Value值,按照int数字类型,boolean数字类型,null数字类型,string中的短串数字类型,string中的中串数字类型,string中的长串数字类型,对所述Value值进行压缩处理。
根据替换后的key值和类型值以及压缩后的Value值,将替换后的key值和类型值压缩在所述json报文的头部,将压缩后的Value值压缩在所述json报文的非头部。
在一种具体实施方式中,还包括:
根据每个校验规则,获取所述消息队列中的第一周期内所接收到的报文中的每个报文不通过的概率以及所述校验规则导致所述报文不通过的概率的乘积值,并从所述乘积值中获取最大的乘积值作为所述校验规则在在所述消息队列中的第一周期内导致接收报文不通过的概率的最大值。
获取第一周期内导致接收报文不通过的概率的最大值。
根据所述校验规则,获取导致所述消息队列中的第一周期内接收到的每个报文不通过的概率的第一平均值。
根据所述校验规则,获取导致所述消息队列中的第二周期内接收到的每个报文不通过的概率的第二平均值。
根据所述第一平均值和所述第二平均值,以及当前时刻第一时刻,获取所述校验规则对应的反馈调整加权因子。
根据所述校验规则对应的所述最大值和所述反馈调整加权因子,获取所述校验规则对应的加权因子。
根据所述校验规则对应的加权因子的大小,对所述校验规则对应的加权因子进行排序,以获得数值较大的加权因子所对应的校验规则。
在一种具体实施方式中,所述校验所述消息队列的校验规则的数量,还包括:
根据所述消息队列当前所在年度的前一年度总计接收json报文的总数量,以及所述当前所在年度的前一年度的错误经验概率,获取所述泊松分布的期望和方差值λ。
根据所述消息队列中当前接收到的json报文的总数量,以及当前接收到的json报文中校验不通过的json报文的总数量,获取所述消息队列对应的当前错误率p。
根据所述消息队列对应的当前错误率p以及泊松分布的期望和方差值λ,采用泊松分布的概率函数:
获取校验对应消息队列的校验规则的数量n。
根据所述消息队列的校验规则的数量n,获取对应最终校验所述消息队列的校验规则。
在一种具体实施方式中,所述对解压缩后的json报文进行校验处理,还包括:
根据所述解压缩后的json报文的校验结果,将校验通过的解压缩后的json报文执行相应的业务处理;将校验未通过的解压缩后的json报文丢弃。
第二方面,本申请提供一种基于json报文的处理装置,包括:
压缩/解压缩处理模块,用于对接收到的json报文进行分级线性压缩处理,以获取压缩后的json报文;使得压缩后的json报文中的关键值和类型值压缩在所述json报文头部;数据值基于对应的数据类型所确定压缩方式压缩在所述json报文的非头部中。
分配模块,用于将压缩后的json报文输入至所述压缩后的json报文的源类型对应的消息队列中。
校验处理模块,用于针对每个消息队列,获取所述消息队列对应的当前所使用的校验规则对应的加权因子,并根据每个加权因子的大小,以及基于所述消息队列对应的当前校验错误率获取的校验所述消息队列的校验规则的数量,确定最终校验所述消息队列的校验规则。
所述压缩/解压缩处理模块,还用于对所述消息队列中的压缩后的json报文进行解压缩处理。
所述校验处理模块,还用于根据所述最终校验所述消息队列的校验规则,对解压缩后的json报文进行校验处理,若所述解压缩后的json报文校验通过,则传输至对应的业务处理模块以执行相应的业务处理。
在一种具体实施方式中,所述压缩/解压缩处理模块具体用于:
将所述json报文中的key值替换为固定长度的短字符。
确定所述json报文中的每个Value值对应的数字类型,并根据所述数字类型对应的长度,对所述Value值进行压缩处理。
将替换后的key值和类型值压缩在所述json报文的头部,将压缩后的Value值压缩在所述json报文的非头部。
在一种具体实施方式中,所述校验处理模块具体用于:
针对每个消息队列对应的当前所使用的每个校验规则,分别获取所述每个校验规则在所述消息队列中的第一周期内导致接收报文不通过的概率的最大值,以及所述每个校验规则对应的反馈调整加权因子。
对于所述每个校验规则,根据所述校验规则对应的所述最大值和所述反馈调整加权因子,获取所述校验规则对应的加权因子。
其中,所述第一周期表示第一时刻t2至当前时刻t1之间的周期,t1大于t2,且所述当前时刻与所述第一时刻之间的时间差等于预设时间差阈值。
在一种具体实施方式中,所述校验处理模块还具体用于:
对于每个校验规则,分别获取所述消息队列中的第一周期内所接收到的报文中的每个报文不通过的概率以及所述校验规则导致所述报文不通过的概率的乘积值,并从所述乘积值中获取最大的乘积值作为所述校验规则在在所述消息队列中的第一周期内导致接收报文不通过的概率的最大值。
在一种具体实施方式中,所述校验处理模块还具体用于:
获取所述校验规则导致所述消息队列中的第一周期内接收到的每个报文不通过的概率的第一平均值。
获取所述校验规则导致所述消息队列中的第二周期内接收到的每个报文不通过的概率的第二平均值。
根据所述第一平均值和所述第二平均值,以及当前时刻和第一时刻,获取所述校验规则对应的反馈调整加权因子。
其中,第一周期表示第二时刻t3至第一时刻t2之间的周期,t2大于t3,且所述第一时刻与所述第二时刻之间的时间差等于所述预设时间差阈值。
在一种具体实施方式中,所述校验处理模块还具体用于:
根据获取的所述消息队列对应的当前错误率p以及泊松分布的期望和方差值λ,采用泊松分布的概率函数:
获取校验所述消息队列的校验规则的数量n。
将每个校验规则对应的加权因子按照从大到小的顺序进行排序,并获将前n个加权因子对应的校验规则作为最终校验所述消息队列的校验规则。
在一种具体实施方式中,所述校验处理模块还具体用于:
根据所述消息队列中当前接收到的json报文的总数量,以及当前接收到的json报文中校验不通过的json报文的总数量,获取所述消息队列对应的当前错误率p。
根据所述消息队列当前所在年度的前一年度总计接收json报文的总数量,以及所述当前所在年度的前一年度的错误经验概率,获取所述泊松分布的期望和方差值λ。
第三方面,本申请提供一种电子设备,包括:
处理器,存储器,通信接口。
所述存储器用于存储所述处理器的可执行指令。
其中,所述处理器配置为经由执行所述可执行指令来执行第一方面所述的基于json报文的处理方法。
第四方面,本申请提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的基于json报文的处理方法。
本申请提供的一种基于json报文的处理方法、装置、设备及介质,通过接收到的json报文,获取分级线性压缩处理后的json报文,使得压缩后的json报文中的关键值和类型值压缩在json报文头部;数据值基于对应的数据类型所确定压缩方式压缩在json报文的非头部中;另外,将压缩后的json报文输入至压缩后的json报文的源类型对应的消息队列中;对于每个消息队列,获取该消息队列对应的当前所使用的校验规则对应的加权因子,并根据每个加权因子的大小,以及基于该消息队列对应的当前错误率获取的校验该消息队列的校验规则的数量,确定最终校验所述消息队列的校验规则;对该消息队列中的压缩后的json报文进行解压缩处理,并根据该最终校验该消息队列的校验规则,对解压缩后的json报文进行校验处理,若解压缩后的json报文校验通过,则执行相应的业务处理,相较于现有技术中仅是在对数据报文进行传输过程中采用数据缓存方法或者流量管控方法进行限流降级而言,本申请中通过采用的分级线性压缩方法,并将压缩后的json报文推送到不同的消息队列中,不仅可以承载更高的数据并发量,还有有效地兼顾多源数据之间特征不同的额特性;同时,压缩之后的json报文还能有效地降低网络传输的压力,从而一定程度上提升了数据处理的吞吐性能,另外,本申请还进一步基于每个消息队列中的加权因子,以及对应的当前校验错误率,来确定需要校验该消息队列中解压缩后的json报文的校验规则,由于会基于每个消息队列中的当前校验错误率,来不断修改需要校验报文的校验规则的数量,因此,有效地减少了校验的时间,从而更进一步提升了对数据处理的吞吐性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种基于json报文的处理方法实施例一的流程示意图;
图2为本申请提供的一种基于json报文的处理方法实施例二的流程示意图;
图3为本申请提供的一种基于json报文的处理方法实施例三的流程示意图;
图4为本申请提供的一种基于json报文的处理装置实施例的结构示意图;
图5为本申请提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在根据本实施例的启示下作出的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有技术中,在对json报文进行传输的过程中,一般是通过数据缓存方法或者流量管控方法进行限流降级,以减缓落地接口方的接收速率,但是,落地接口方的数据的吞吐性能还是受到落地接口方的机器性能以及代码复杂度的影响。为了解决上述技术问题,本申请的技术构思在于如何在落地接口方的机器性能以及代码复杂度一定的前提下,有效地提升落地接口方的数据的吞吐性能。
下面,通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图1为本申请提供的一种基于json报文的处理方法实施例一的流程示意图。参见图1,该基于json报文的处理方法具体包括以下步骤:
步骤S101、对接收到的json报文进行分级线性压缩处理,以获取压缩后的json报文,使得压缩后的json报文中的关键值和类型值压缩在该json报文头部;数据值基于对应的数据类型所确定压缩方式压缩在该json报文的非头部中。
在本实施例中,json报文主要包括关键值(也可以称之为key值),类型值(也可以称之为type值)以及数据值(也可以称之为Value值)。其中,该Value值对应的数字类型包括如下一种:int数字类型,boolean数字类型,null数字类型,string中的短串数字类型,string中的中串数字类型,string中的长串数字类型。
步骤S102、将压缩后的json报文输入至该压缩后的json报文的源类型对应的消息队列中。
在本实例中,源类型一般指外部推送json报文的系统,即系统不同,其推送的json报文中的源类型就不相同。
步骤S103、针对每个消息队列,获取该消息队列对应的当前所使用的校验规则对应的加权因子,并根据每个加权因子的大小,以及基于该消息队列对应的当前校验错误率获取的校验该消息队列的校验规则的数量,确定最终校验该消息队列的校验规则。
步骤S104、对该消息队列中的压缩后的json报文进行解压缩处理,并根据该最终校验该消息队列的校验规则,对解压缩后的json报文进行校验处理,若该解压缩后的json报文校验通过,则执行相应的业务处理。
在本实例中,每个消息队列均配置有对应的多个校验规则,每个校验规则对应有唯一的加权因子。一般而言,对于每个消息队列来说,会用其配置的多个校验规则来对该消息队列中的解压缩后的json报文进行校验处理。本申请中为了提升校验的效率,会根据每个消息队列中历史校验的结果,更新该消息队列的校验错误率,并基于该消息队列的校验错误率和每个校验规则对应的加权因子的大小,来不断动态调整最终需要校验该消息队列中的解压缩后的json报文的校验规则有哪些。换言之,当校验错误率较小时,该消息队列中最终校验规则的数量也相对减少,仅是对解压缩后的json报文中部分Value值进行校验处理,而对于解压缩后的json报文中其他Value值不再做校验处理。
在本实施例中,通过接收到的json报文,获取分级线性压缩处理后的json报文,使得压缩后的json报文中的关键值和类型值压缩在json报文头部;数据值基于对应的数据类型所确定压缩方式压缩在json报文的非头部中;另外,将压缩后的json报文输入至压缩后的json报文的源类型对应的消息队列中;对于每个消息队列,获取该消息队列对应的当前所使用的校验规则对应的加权因子,并根据每个加权因子的大小,以及基于该消息队列对应的当前错误率获取的校验该消息队列的校验规则的数量,确定最终校验该消息队列的校验规则;对该消息队列中的压缩后的json报文进行解压缩处理,并根据该最终校验该消息队列的校验规则,对解压缩后的json报文进行校验处理,若解压缩后的json报文校验通过,则执行相应的业务处理,相较于现有技术中仅是在对数据报文进行传输过程中采用数据缓存方法或者流量管控方法进行限流降级而言,本申请中通过采用的分级线性压缩方法,并将压缩后的json报文推送到不同的消息队列中,不仅可以承载更高的数据并发量,还有有效地兼顾多源数据之间特征不同的特性;同时,压缩之后的json报文还能有效地降低网络传输的压力,从而一定程度上提升了数据处理的吞吐性能,另外,本申请还进一步基于每个消息队列中的加权因子,以及对应的当前校验错误率,来确定需要校验该消息队列中解压缩后的json报文的校验规则,由于会基于每个消息队列中的当前校验错误率,来不断修改需要校验报文的校验规则的数量,因此,有效地减少了校验的时间,从而更进一步提升了对数据处理的吞吐性能。
图2为本申请提供的一种基于json报文的处理方法实施例二的流程示意图,在上述图1所示实施例的基础上,参见图2,步骤S101中对接收到的json报文进行分级线性压缩处理的一种具体实现方式为:
步骤S201、将该json报文中的key值替换为固定长度的短字符。
步骤S202、确定该json报文中的每个Value值对应的数字类型,并根据该数字类型对应的长度,对该Value值进行压缩处理。
可选的,该Value值对应的数字类型包括如下一种:int数字类型,boolean数字类型,null数字类型,string中的短串数字类型,string中的中串数字类型,string中的长串数字类型。相应地,针对int数字类型,boolean数字类型或者null数字类型,可以按照接口中规定的长度作为界限范围进行拼接(即压缩处理);针对string中的短串数字类型,可以按照短串长度,例如为length1来进行拼接;针对string中的中串数字类型,可以按照中串长度,例如为length2来进行拼接;针对string中的长串数字类型,可以按照长串长度,例如为length3来进行拼接。
步骤S203、将替换后的key值和类型值压缩在该json报文的头部,将压缩后的Value值压缩在该json报文的非头部。
举例来说,对1个json报文进行分级线性压缩之后,压缩后的json报文的压缩格式如下:
其中,该json报文包括7个key值,每个key值对应一个Value值。第一行表示报文头部,报文头部中压缩有key值和type值;第二行表示报文非头部,分别与key值对应,压缩有Value值。其中,type值000表示int类型、001表示boolean类型、010表示null类型、011表示短字符串类型、100表示中字符串类型、101表示长字符串类型。
在本实施例中,由于将key值和类型值压缩在报文头部,因此有效地节省了后续空间。另外,通过Value值对应的数字类型有针对性的对Value值进行压缩处理,因此可以在解析该压缩的json报文时有较好的解压速度。
图3为本申请提供的一种基于json报文的处理方法实施例三的流程示意图,如图3所示,该方法的一种具体实现方式为:
步骤S301、对接收到的json报文进行分级线性压缩处理,以获取压缩后的json报文,使得压缩后的json报文中的关键值和类型值压缩在该json报文头部;数据值基于对应的数据类型所确定压缩方式压缩在该json报文的非头部中。
步骤S302、将压缩后的json报文输入至该压缩后的json报文的源类型对应的消息队列中。
步骤S303、针对每个消息队列,获取每个校验规则在该消息队列中的第一周期内导致接收报文不通过的概率的最大值。
在本实例中,对于每个校验规则,分别获取该消息队列中的第一周期内所接某个时间点所有已接收报文不通过的概率P(Y=y)与该校验规则导致报文不通过的概率的乘积值P(X=x|Y=y),并采用如下公式:
Maxt=[t2,t1],y=校验不通过Pt(Y=y)Pt(X=x|Y=y)
在该消息队列中的第一周期内,获取朴素贝叶斯乘积的最大值作为该校验规则接收报文不通过的概率的最大值。
其中,该第一周期表示第一时刻t2至当前时刻t1之间的周期,t1大于t2,且该当前时刻与该第一时刻之间的时间差等于预设时间差阈值。可选的,该预设时间差阈值可以为120分钟。另外,y表示第一周期内所接收到的报文中报文是否通过的结果;x表示该校验规则。
步骤S304、针对每个消息队列,获取每个校验规则对应的反馈调整加权因子。
在本实例中,步骤S304的一种具体实现方式为:
首先,针对每个校验规则,获取该校验规则导致该消息队列中的第一周期内接收到的每个报文不通过的概率的第一平均值以及获取该校验规则导致该消息队列中的第二周期内接收到的每个报文不通过的概率的第二平均值具体的,第一平均值和第二平均值均可以采用如下公式获取:
其中,pn=P(Y=校验不通过)P(X=第x个规则|Y=校验不通过)为从第一个到第n个数据被接收时,第x个规则校验不通过的概率值。另外,第二周期表示第二时刻t3至第一时刻t2之间的周期,t2大于t3,且该第一时刻与该第二时刻之间的时间差等于该预设时间差阈值。可选的,该预设时间差阈值可以为120分钟。另外,p1、p2、p3表示接收到的第一个、第二个、第三个报文不通过的概率。
另外,根据该第一平均值和该第二平均值,以及当前时刻和第一时刻,采用如下公式:
获取对应的反馈调整加权因子Δδ。
S305、根据校验规则对应的该最大值和该反馈调整加权因子,采用如下公式:
δ=Maxt=[t2,t1],y=校验不通过Pt(Y=y)Pt(X=x|Y=y)+Δδ(t1>t2)
获取校验规则对应的加权因子。
在本实施例中,针对每个消息队列中对应的每个校验规则,都可以结合之前该消息队列中,该校验规则的校验结果,来更新其在该消息队列中的权重,即更新该校验规则对应的加权因子,从而使得该校验规则在消息队列中的权重更为准确。
步骤S306、针对每个消息队列,根据每个加权因子的大小,以及基于该消息队列对应的当前校验错误率获取的校验该消息队列的校验规则的数量,确定最终校验该消息队列的校验规则。
在本实施例中,举例来说,步骤S306的一种具体实现方式为:
根据该消息队列对应的当前错误率p以及泊松分布的期望和方差值λ,采用泊松分布的概率函数:
获取校验对应消息队列的校验规则的数量n。
将每个校验规则对应的加权因子按照从大到小的顺序进行排序,并将前n个加权因子对应的校验规则作为最终校验该消息队列的校验规则。
在本实施例中,当该消息队列中的报文不断被校验,例如进入稳定阶段之后,可以获取该消息队列对应的当前错误率p以及泊松分布的期望和方差值λ,以动态调整校验规则的数量。举例来说,在校验初期阶段,报文可能会存在一些问题,因此,部分校验规则一定会导致该报文不通过。但是随着发送该些报文的发送方不断修正程序,报文中原有的一些问题就会被解决,因此,该部分校验规则不会在导致该报文不通过,这样,也不需要该校验规则来进一步给报文进行校验,那么就可以减去该部分校验规则,让一些还可能校验出该报文不通过的校验规则继续校验。基于此,从校验规则数量上就可以相应的减少,从而一定程度上提高了校验的效率。
另外,可选的,当前错误率p获取的一种具体实现方式为:
根据该消息队列中当前接收到的json报文的总数量,以及当前接收到的json报文中校验不通过的json报文的总数量,获取该消息队列对应的当前错误率p;并根据该消息队列当前所在年度的前一年度总计接收json报文的总数量,以及该当前所在年度的前一年度的错误经验概率,获取该泊松分布的期望和方差值λ。
S307、根据该消息队列的校验规则的数量n,获取对应最终校验该消息队列的校验规则。
在本实施例中,由于获取该消息队列对应的当前所使用的校验规则对应的加权因子以及对应消息队列的校验规则的数量n,并根据校验规则的加权因子数值和校验规则的数量,获得最终校验该消息队列的校验规则,相较于现有技术中全量校验规则,简化了校验的流程,有效地减少了校验的时间,提升校验规则精准性,从而更进一步提升了对数据处理的吞吐性能。
图4为本申请提供的一种基于json报文的处理装置实施例的结构示意图;如图4所示,该基于json报文的处理装置40包括:压缩/解压缩处理模块41、分配模块42、校验处理模块43;其中,压缩/解压缩处理模块41,用于对接收到的json报文进行分级线性压缩处理,以获取压缩后的json报文;使得压缩后的json报文中的关键值和类型值压缩在该json报文头部;数据值基于对应的数据类型所确定压缩方式压缩在该json报文的非头部中。分配模块42,用于将压缩后的json报文输入至该压缩后的json报文的源类型对应的消息队列中。校验处理模块43,用于针对每个消息队列,获取该消息队列对应的当前所使用的校验规则对应的加权因子,并根据每个加权因子的大小,以及基于该消息队列对应的当前校验错误率获取的校验该消息队列的校验规则的数量,确定最终校验该消息队列的校验规则。该压缩/解压缩处理模块41,还用于对该消息队列中的压缩后的json报文进行解压缩处理。该校验处理模块43,还用于根据最终校验该消息队列的校验规则,对解压缩后的json报文进行校验处理,若该解压缩后的json报文校验通过,则传输至对应的业务处理模块以执行相应的业务处理。
本申请实施例提供的基于生产场景的检测装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方案中,压缩/解压缩处理模块41具体用于:将该json报文中的key值替换为固定长度的短字符;确定该json报文中的每个Value值对应的数字类型,并根据该数字类型对应的长度,对该Value值进行压缩处理;将替换后的key值和类型值压缩在该json报文的头部,将压缩后的Value值压缩在该json报文的非头部。
在一种可能的实施方案中,校验处理模块43具体用于:针对每个消息队列对应的当前所使用的每个校验规则,分别获取每个校验规则在该消息队列中的第一周期内导致接收报文不通过的概率的最大值,以及每个校验规则对应的反馈调整加权因子。对于每个校验规则,根据该校验规则对应的该最大值和该反馈调整加权因子,获取该校验规则对应的加权因子。
其中,该第一周期表示第一时刻t2至当前时刻t1之间的周期,t1大于t2,且该当前时刻与该第一时刻之间的时间差等于预设时间差阈值。
在一种可能的实施方案中,校验处理模块43还具体用于:对于每个校验规则,分别获取该消息队列中的第一周期内所接收到的报文中的每个报文不通过的概率以及该校验规则导致该报文不通过的概率的乘积值,并从该乘积值中获取最大的乘积值作为该校验规则在在该消息队列中的第一周期内导致接收报文不通过的概率的最大值。
在一种可能的实施方案中,校验处理模块43还具体用于:获取该校验规则导致该消息队列中的第一周期内接收到的每个报文不通过的概率的第一平均值。获取该校验规则导致该消息队列中的第二周期内接收到的每个报文不通过的概率的第二平均值。根据该第一平均值和该第二平均值,以及当前时刻和第一时刻,获取该校验规则对应的反馈调整加权因子。
其中,第一周期表示第二时刻t3至第一时刻t2之间的周期,t2大于t3,且该第一时刻与该第二时刻之间的时间差等于该预设时间差阈值。
在一种可能的实施方案中,校验处理模块43还具体用于:根据获取的该消息队列对应的当前错误率p以及泊松分布的期望和方差值λ,采用泊松分布的概率函数:
获取校验该消息队列的校验规则的数量n。
将每个校验规则对应的加权因子按照从大到小的顺序进行排序,并获将前n个加权因子对应的校验规则作为最终校验该消息队列的校验规则。
在一种可能的实施方案中,校验处理模块43还具体用于:根据该消息队列中当前接收到的json报文的总数量,以及当前接收到的json报文中校验不通过的json报文的总数量,获取该消息队列对应的当前错误率p。根据该消息队列当前所在年度的前一年度总计接收json报文的总数量,以及当前所在年度的前一年度的错误经验概率,获取该泊松分布的期望和方差值λ。
本申请实施例提供的基于生产场景的检测装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。图5为本申请提供的一种电子设备的结构示意图。如图5所示,该电子设备50包括:处理器51,存储器52,以及通信接口53。其中,存储器52用于存储处理器51的可执行指令。处理器51配置为经由执行可执行指令来执行前述任一方法实施例中的技术方案。
可选的,存储器52既可以是独立的,也可以跟处理器51集成在一起。
可选的,当存储器52是独立于处理器51之外的器件时,电子设备50还可以包括:总线,用于将上述器件连接起来。
该电子设备用于执行前述任一方法实施例中的技术方案,其实现原理和技术效果类似,在此不再赘述。
本申请实施例还提供一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现前述任一实施例提供的技术方案。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (17)
1.一种基于json报文的处理方法,其特征在于,包括:
对接收到的json报文进行分级线性压缩处理,以获取压缩后的json报文,使得压缩后的json报文中的关键值和类型值压缩在所述json报文头部;数据值基于对应的数据类型所确定压缩方式压缩在所述json报文的非头部中;
将压缩后的json报文输入至所述压缩后的json报文的源类型对应的消息队列中;
针对每个消息队列,获取所述消息队列对应的当前所使用的校验规则对应的加权因子,并根据每个加权因子的大小,以及基于所述消息队列对应的当前校验错误率获取的校验所述消息队列的校验规则的数量,确定最终校验所述消息队列的校验规则;
对所述消息队列中的压缩后的json报文进行解压缩处理,并根据所述最终校验所述消息队列的校验规则,对解压缩后的json报文进行校验处理,若所述解压缩后的json报文校验通过,则执行相应的业务处理。
2.根据权利要求1所述的方法,其特征在于,所述对接收到的json报文进行分级线性压缩处理,以获取压缩后的json报文,包括:
将所述json报文中的key值替换为固定长度的短字符;
确定所述json报文中的每个Value值对应的数字类型,并根据所述数字类型对应的长度,对所述Value值进行压缩处理;
将替换后的key值和类型值压缩在所述json报文的头部,将压缩后的Value值压缩在所述json报文的非头部。
3.根据权利要求2所述的方法,其特征在于,所述Value值对应的数字类型包括如下一种:int数字类型,boolean数字类型,null数字类型,string中的短串数字类型,string中的中串数字类型,string中的长串数字类型。
4.根据权利要求1至3任一所述的方法,其特征在于,所述针对每个消息队列,获取所述消息队列对应的当前所使用的校验规则对应的加权因子,包括:
针对每个消息队列对应的当前所使用的每个校验规则,分别获取所述每个校验规则在所述消息队列中的第一周期内导致接收报文不通过的概率的最大值,以及所述每个校验规则对应的反馈调整加权因子;
对于所述每个校验规则,根据所述校验规则对应的所述最大值和所述反馈调整加权因子,获取所述校验规则对应的加权因子;
其中,所述第一周期表示第一时刻t2至当前时刻t1之间的周期,t1大于t2,且所述当前时刻与所述第一时刻之间的时间差为预设时间差阈值。
5.根据权利要求4所述的方法,其特征在于,分别获取所述每个校验规则在所述消息队列中的第一周期内导致接收报文不通过的概率的最大值,包括:
对于每个校验规则,分别获取所述消息队列中的第一周期内所接收到的报文中的每个报文不通过的概率以及所述校验规则导致所述报文不通过的概率的乘积值,并从所述乘积值中获取最大的乘积值作为所述校验规则在在所述消息队列中的第一周期内导致接收报文不通过的概率的最大值。
6.根据权利要求5所述的方法,其特征在于,所述校验规则对应的反馈调整加权因子,包括:
获取所述校验规则导致所述消息队列中的第一周期内接收到的每个报文不通过的概率的第一平均值;
获取所述校验规则导致所述消息队列中的第二周期内接收到的每个报文不通过的概率的第二平均值;
根据所述第一平均值和所述第二平均值,以及当前时刻和第一时刻,获取所述校验规则对应的反馈调整加权因子;
其中,第一周期表示第二时刻t3至第一时刻t2之间的周期,t2大于t3,且所述第一时刻与所述第二时刻之间的时间差为所述预设时间差阈值。
8.根据权利要求7所述的方法,其特征在于,所述获取的所述消息队列对应的当前错误率p以及泊松分布的期望和方差值λ,包括:
根据所述消息队列中当前接收到的json报文的总数量,以及当前接收到的json报文中校验不通过的json报文的总数量,获取所述消息队列对应的当前错误率p;
根据所述消息队列当前所在年度的前一年度总计接收json报文的总数量,以及所述当前所在年度的前一年度的错误经验概率,获取所述泊松分布的期望和方差值λ。
9.一种基于json报文的处理装置,其特征在于,包括:
压缩/解压缩处理模块,用于对接收到的json报文进行分级线性压缩处理,以获取压缩后的json报文;使得压缩后的json报文中的关键值和类型值压缩在所述json报文头部;数据值基于对应的数据类型所确定压缩方式压缩在所述json报文的非头部中;
分配模块,用于将压缩后的json报文输入至所述压缩后的json报文的源类型对应的消息队列中;
校验处理模块,用于针对每个消息队列,获取所述消息队列对应的当前所使用的校验规则对应的加权因子,并根据每个加权因子的大小,以及基于所述消息队列对应的当前校验错误率获取的校验所述消息队列的校验规则的数量,确定最终校验所述消息队列的校验规则;
所述压缩/解压缩处理模块,还用于对所述消息队列中的压缩后的json报文进行解压缩处理;
所述校验处理模块,还用于根据所述最终校验所述消息队列的校验规则,对解压缩后的json报文进行校验处理,若所述解压缩后的json报文校验通过,则传输至对应的业务处理模块以执行相应的业务处理。
10.根据权利要求9所述的基于json报文的处理装置,其特征在于,所述压缩/解压缩处理模块具体用于:
将所述json报文中的key值替换为固定长度的短字符;
确定所述json报文中的每个Value值对应的数字类型,并根据所述数字类型对应的长度,对所述Value值进行压缩处理;
将替换后的key值和类型值压缩在所述json报文的头部,将压缩后的Value值压缩在所述json报文的非头部。
11.根据权利要求9至10任一项所述的基于json报文的处理装置,其特征在于,所述校验处理模块具体用于:
针对每个消息队列对应的当前所使用的每个校验规则,分别获取所述每个校验规则在所述消息队列中的第一周期内导致接收报文不通过的概率的最大值,以及所述每个校验规则对应的反馈调整加权因子;
对于所述每个校验规则,根据所述校验规则对应的所述最大值和所述反馈调整加权因子,获取所述校验规则对应的加权因子;
其中,所述第一周期表示第一时刻t2至当前时刻t1之间的周期,t1大于t2,且所述当前时刻与所述第一时刻之间的时间差为预设时间差阈值。
12.根据权利要求11所述的基于json报文的处理装置,其特征在于,所述校验处理模块还具体用于:
对于每个校验规则,分别获取所述消息队列中的第一周期内所接收到的报文中的每个报文不通过的概率以及所述校验规则导致所述报文不通过的概率的乘积值,并从所述乘积值中获取最大的乘积值作为所述校验规则在在所述消息队列中的第一周期内导致接收报文不通过的概率的最大值。
13.根据权利要求12所述的基于json报文的处理装置,其特征在于,所述校验处理模块还具体用于:
获取所述校验规则导致所述消息队列中的第一周期内接收到的每个报文不通过的概率的第一平均值;
获取所述校验规则导致所述消息队列中的第二周期内接收到的每个报文不通过的概率的第二平均值;
根据所述第一平均值和所述第二平均值,以及当前时刻和第一时刻,获取所述校验规则对应的反馈调整加权因子;
其中,第一周期表示第二时刻t3至第一时刻t2之间的周期,t2大于t3,且所述第一时刻与所述第二时刻之间的时间差为所述预设时间差阈值。
15.根据权利要求14所述的基于json报文的处理装置,其特征在于,所述校验处理模块还具体用于:
根据所述消息队列中当前接收到的json报文的总数量,以及当前接收到的json报文中校验不通过的json报文的总数量,获取所述消息队列对应的当前错误率p;
根据所述消息队列当前所在年度的前一年度总计接收json报文的总数量,以及所述当前所在年度的前一年度的错误经验概率,获取所述泊松分布的期望和方差值λ。
16.一种电子设备,包括:处理器,存储器,通信接口;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为:经由执行所述可执行指令来执行权利要求1至8中任一项所述的基于json报文的处理方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至8任一项所述的基于json报文的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210412209.3A CN114726792B (zh) | 2022-04-19 | 2022-04-19 | 一种基于json报文的处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210412209.3A CN114726792B (zh) | 2022-04-19 | 2022-04-19 | 一种基于json报文的处理方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114726792A true CN114726792A (zh) | 2022-07-08 |
CN114726792B CN114726792B (zh) | 2023-06-20 |
Family
ID=82243682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210412209.3A Active CN114726792B (zh) | 2022-04-19 | 2022-04-19 | 一种基于json报文的处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114726792B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115865990A (zh) * | 2023-02-22 | 2023-03-28 | 广州机智云物联网科技有限公司 | 一种高性能的物联网平台消息引擎 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401562A (zh) * | 2013-07-31 | 2013-11-20 | 北京华易互动科技有限公司 | 一种无损json数据压缩方法 |
CN104391934A (zh) * | 2014-11-21 | 2015-03-04 | 深圳市银雁金融配套服务有限公司 | 数据校验方法和装置 |
US20160034499A1 (en) * | 2014-07-29 | 2016-02-04 | Facebook, Inc. | Compressing and transmitting structured information |
CN107818509A (zh) * | 2017-11-24 | 2018-03-20 | 泰康保险集团股份有限公司 | 业务数据校验方法、装置、存储介质及电子设备 |
CN109818962A (zh) * | 2019-01-31 | 2019-05-28 | 泰康保险集团股份有限公司 | 业务数据处理方法及装置、电子设备、存储介质 |
CN110247665A (zh) * | 2019-05-16 | 2019-09-17 | 芜湖智久机器人有限公司 | Json数据的压缩方法、装置及计算机可读存储介质 |
CN110400213A (zh) * | 2019-07-26 | 2019-11-01 | 中国工商银行股份有限公司 | 数据处理方法和装置、以及电子设备和可读介质 |
CN112153113A (zh) * | 2020-08-21 | 2020-12-29 | 苏州浪潮智能科技有限公司 | 提升主机接口数据传输质量的方法、系统、设备、产品 |
CN112187558A (zh) * | 2019-07-03 | 2021-01-05 | 腾讯科技(深圳)有限公司 | 数据校验方法、装置、电子设备 |
CN113688006A (zh) * | 2017-10-16 | 2021-11-23 | 创新先进技术有限公司 | 一种日志数据的校验方法及装置 |
US20220035526A1 (en) * | 2020-07-31 | 2022-02-03 | EMC IP Holding Company LLC | Data compression method, electronic device and computer program product |
CN114328482A (zh) * | 2021-12-06 | 2022-04-12 | 亿咖通(湖北)技术有限公司 | 数据处理方法、设备、存储介质及程序产品 |
-
2022
- 2022-04-19 CN CN202210412209.3A patent/CN114726792B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401562A (zh) * | 2013-07-31 | 2013-11-20 | 北京华易互动科技有限公司 | 一种无损json数据压缩方法 |
US20160034499A1 (en) * | 2014-07-29 | 2016-02-04 | Facebook, Inc. | Compressing and transmitting structured information |
CN104391934A (zh) * | 2014-11-21 | 2015-03-04 | 深圳市银雁金融配套服务有限公司 | 数据校验方法和装置 |
CN113688006A (zh) * | 2017-10-16 | 2021-11-23 | 创新先进技术有限公司 | 一种日志数据的校验方法及装置 |
CN107818509A (zh) * | 2017-11-24 | 2018-03-20 | 泰康保险集团股份有限公司 | 业务数据校验方法、装置、存储介质及电子设备 |
CN109818962A (zh) * | 2019-01-31 | 2019-05-28 | 泰康保险集团股份有限公司 | 业务数据处理方法及装置、电子设备、存储介质 |
CN110247665A (zh) * | 2019-05-16 | 2019-09-17 | 芜湖智久机器人有限公司 | Json数据的压缩方法、装置及计算机可读存储介质 |
CN112187558A (zh) * | 2019-07-03 | 2021-01-05 | 腾讯科技(深圳)有限公司 | 数据校验方法、装置、电子设备 |
CN110400213A (zh) * | 2019-07-26 | 2019-11-01 | 中国工商银行股份有限公司 | 数据处理方法和装置、以及电子设备和可读介质 |
US20220035526A1 (en) * | 2020-07-31 | 2022-02-03 | EMC IP Holding Company LLC | Data compression method, electronic device and computer program product |
CN112153113A (zh) * | 2020-08-21 | 2020-12-29 | 苏州浪潮智能科技有限公司 | 提升主机接口数据传输质量的方法、系统、设备、产品 |
CN114328482A (zh) * | 2021-12-06 | 2022-04-12 | 亿咖通(湖北)技术有限公司 | 数据处理方法、设备、存储介质及程序产品 |
Non-Patent Citations (3)
Title |
---|
JUNHEE LEE: ""A succinct representation for JSON documents"", 《OPEN OVERLAY PANEL》 * |
刘凯: "\"基于HNBJSON的物联网数据压缩方法\"", 《《中国优秀硕士学位论文全文数据库》 * |
勇哥: ""介绍常见的JSON压缩算法"", 《腾讯云开发者社区》, pages 1 - 3 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115865990A (zh) * | 2023-02-22 | 2023-03-28 | 广州机智云物联网科技有限公司 | 一种高性能的物联网平台消息引擎 |
CN115865990B (zh) * | 2023-02-22 | 2023-04-18 | 广州机智云物联网科技有限公司 | 一种高性能的物联网平台消息引擎 |
Also Published As
Publication number | Publication date |
---|---|
CN114726792B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8006160B2 (en) | Efficient encoding and decoding methods for representing schedules and processing forward error correction codes | |
US8271850B2 (en) | Fast low-density parity-check code encoder | |
US20200021310A1 (en) | Information processing method and apparatus, and device | |
CN105939201A (zh) | 服务器状态的检查方法和装置 | |
EP3539237A1 (en) | Error detection in communication systems using polar coded data transmission | |
CN113114472A (zh) | 一种基于报文哈希链的认证方法及系统 | |
US11652573B2 (en) | Error correction in network packets using soft information | |
CN109818714B (zh) | 动态fec方法、装置、计算机终端和计算机可读存储介质 | |
CN114726792A (zh) | 一种基于json报文的处理方法、装置、设备及介质 | |
US20190042354A1 (en) | Technologies for error recovery in compressed data streams | |
US8671333B2 (en) | Adaptive encoding and decoding for error protected packet-based frames | |
CN108270508B (zh) | 一种循环冗余校验crc实现方法、装置及网络设备 | |
EP3054600A1 (en) | Program, encoding device, and encoding method | |
CN111866101A (zh) | 访问请求处理方法及装置、存储介质和电子设备 | |
US9350592B2 (en) | Decompressing method and apparatus | |
CN112532359B (zh) | 接收端基于数据重传数据进行内容合并的方法及装置 | |
US10949645B2 (en) | Method, apparatus, and storage medium for data verification | |
CN116319828A (zh) | 一种异地容灾备份数据传输方法、系统、装置及介质 | |
CN111211992B (zh) | 一种信息传输方法及装置 | |
CN105592006B (zh) | 一种rohc压缩器的ir态回迁周期选择方法和装置 | |
CN108259393B (zh) | 一种流数据处理中乱序纠正方法及系统 | |
CN116820832B (zh) | 一种用于高速数据传输的错误校验方法、介质及装置 | |
CN112153113A (zh) | 提升主机接口数据传输质量的方法、系统、设备、产品 | |
US11533135B2 (en) | Memory conservation in delta-compressed message transmission and recovery | |
EP4422090A1 (en) | Method and system for updating parameters of neural networks in an optical fiber network |
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 |