CN112422408A - 消息处理方法、装置、设备及存储介质 - Google Patents
消息处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112422408A CN112422408A CN202011193625.6A CN202011193625A CN112422408A CN 112422408 A CN112422408 A CN 112422408A CN 202011193625 A CN202011193625 A CN 202011193625A CN 112422408 A CN112422408 A CN 112422408A
- Authority
- CN
- China
- Prior art keywords
- message
- content
- retransmission
- sender
- sent
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 67
- 230000005540 biological transmission Effects 0.000 claims description 47
- 238000000034 method Methods 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 9
- 230000004083 survival effect Effects 0.000 claims description 2
- 230000010354 integration Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了消息处理方法、装置、设备及存储介质。其中,一种消息处理方法包括:接收消息发送方发送的第一消息,其中,第一消息中包含所述消息发送方确定的第一重发标记,重发标记用于表示对应的消息内容是否为重复发送;根据第一重发标记判断第一消息中的消息内容是否由消息发送方重复发送;若否,则省略针对第一消息的消息内容的查重处理。本发明实施例提供的技术方案,消息接收方在根据重发标记明确得知当前接收到的消息不是重复发送后,就不需要针对每条刚接收的消息,都与已接收的消息进行逐条地比对,确定是否为重复接收,有效减少消息接收方的查重操作,提高消息去重效率,降低负载,提高数据处理速度。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及消息处理方法、装置、设备及存储介质。
背景技术
随着通信技术及互联网技术的快速发展,在人与人之间、设备与设备之间,基于网络的信息交互越来越频繁,消息传输系统中需要传输的消息数量庞大。
在消息传输系统,消息发送方和消息接收方之间的网络通信质量可能会由于传输距离较远等因素导致不够稳定,出现网络质量较差或网络经常抖动的情况。当网络环境较差或网络经常抖动时,消息发送方在发出一条消息后,请求响应可能会超时,消息发送方就会进行数据重传,导致消息接收方可能会收到重复的消息内容,所以需要采用一定的去重方案对重传消息进行去重处理。
目前,消息接收方在接收消息后,需要将当前接收到的消息与已接收的消息进行逐条地比对,确定是否为重复接收,效率低下,而且对消息接收方的存储系统访问频繁且访问量大,容易造成负载加高,且影响整体的数据处理速度。因此,目前应用于消息接收方的消息去重方案仍不够完善,需要改进。
发明内容
本发明实施例提供了消息处理方法、装置、设备及存储介质,可以优化消息接收方的消息处理方案。
第一方面,本发明实施例提供了一种消息处理方法,应用于消息传输系统中的消息接收方,所述方法包括:
接收消息发送方发送的第一消息,其中,所述第一消息中包含所述消息发送方确定的第一重发标记,重发标记用于表示对应的消息内容是否为重复发送;
根据所述第一重发标记判断所述第一消息中的消息内容是否由所述消息发送方重复发送;
若否,则省略针对所述第一消息的消息内容的查重处理。
第二方面,本发明实施例提供了一种消息处理方法,应用于消息传输系统中的消息发送方,所述方法包括:
确定待发送的消息内容对应的第一重发标记,其中,重发标记用于表示对应的消息内容是否为重复发送;
根据所述待发送的消息内容和所述第一重发标记生成第一消息;
向消息接收方发送所述第一消息,所述第一消息用于指示所述消息接收方在根据所述第一重发标记确定所述第一消息中的消息内容不是由所述消息发送方重复发送时,省略针对所述第一消息的消息内容的查重处理。
第三方面,本发明实施例提供了一种消息处理装置,集成于消息传输系统中的消息接收方,所述装置包括:
消息接收装置,用于接收消息发送方发送的第一消息,其中,所述第一消息中包含所述消息发送方确定的第一重发标记,重发标记用于表示对应的消息内容是否为重复发送;
重复发送判断模块,用于根据所述第一重发标记判断所述第一消息中的消息内容是否由所述消息发送方重复发送;
查重处理模块,用于在所述重复发送判断模块根据所述第一重发标记确定所述第一消息中的消息内容不是由所述消息发送方重复发送时,省略针对所述第一消息的消息内容的查重处理。
第四方面,本发明实施例提供了一种消息处理装置,集成于消息传输系统中的消息发送方,所述方法包括:
重发标记确定模块,用于确定待发送的消息内容对应的第一重发标记,其中,重发标记用于表示对应的消息内容是否为重复发送;
消息生成模块,用于根据所述待发送的消息内容和所述第一重发标记生成第一消息;
消息发送模块,用于向消息接收方发送所述第一消息,所述第一消息用于指示所述消息接收方在根据所述第一重发标记确定所述第一消息中的消息内容不是由所述消息发送方重复发送时,省略针对所述第一消息的消息内容的查重处理。
第五方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的消息处理方法。
第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的消息处理方法。
本发明实施例中提供的消息处理方案,消息传输系统中的消息发送方向消息接收方发送的第一消息中包含消息发送方确定的第一重发标记,重发标记用于表示对应的消息内容是否为重复发送,消息接收方接收第一消息后,先根据第一消息中的第一重发标记判断第一消息中的消息内容是否由消息发送方重复发送,若否,则省略针对第一消息的消息内容的查重处理。通过采用上述技术方案,消息接收方在根据重发标记明确得知当前接收到的消息不是重复发送后,就不会针对该消息查询是否已经成功接收过同样的消息内容,也即不需要针对每条刚接收的消息,都与已接收的消息进行逐条地比对,确定是否为重复接收,有效减少消息接收方的查重操作,提高消息去重效率,降低负载,提高数据处理速度。
附图说明
图1为本发明实施例提供的一种消息处理方法的流程示意图;
图2为本发明实施例提供的又一种消息处理方法的流程示意图;
图3为本发明实施例提供的再一种消息处理方法的流程示意图;
图4为本发明实施例提供的另一种消息处理方法的流程示意图;
图5为本发明实施例提供的一种消息处理装置的结构框图;
图6为本发明实施例提供的另一种消息处理装置的结构框图;
图7为本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
为了便于理解本发明实施例,下面对现有技术进行相关介绍。现有技术中,消息发送方在需要发送消息时,一般会按照一定的规则生成用于唯一标记消息内容的消息身份标识(如消息ID),该消息身份标识中例如可以包括机器标识和发送时间等信息,然后根据消息身份标识和消息内容生成对应的消息,向消息接收方发送所生成的消息,正常情况下,消息接收方在成功接收到该消息后,会向消息发送方发送响应信息,用于表示该消息已被成功接收。然而,当网络环境较差时,消息发送方在发出一条消息后,消息接收方可能无法接收到该消息,或者在成功接收后返回响应信息时,消息发送方无法成功收到该响应信息,因此,都会造成请求响应超时,这时,消息发送方认为消息未发送成功,就会进行数据重传,而若消息接收方已经成功接收过该消息内容,则就会导致消息接收方收到重复的消息内容,所以消息接收方在收到一条消息后,需要根据该消息的消息ID来逐条查询已存储的消息列表中是否包含该消息ID,若包含,则需要对消息内容进行去重处理。
图1为本发明实施例提供的一种消息处理方法的流程示意图,该方法可以由消息处理装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中,该计算机设备可以作为消息传输系统中的消息接收方,具体类型不做限定,可以是服务器等设备。如图1所示,该方法包括:
步骤101、接收消息发送方发送的第一消息,其中,所述第一消息中包含所述消息发送方确定的第一重发标记,重发标记用于表示对应的消息内容是否为重复发送。
本发明实施例中,在消息中增加了重发标记,重发标记用于表示对应的消息内容是否为重复发送,当消息发送方在进行消息发送前,在所需要发送的消息中设置该重发标记的具体值。示例性的,重发标记在消息中的具体位置以及表现形式不做限定,可以根据所采用的消息传输协议进行设置,通过对现有消息传输协议进行改进,在消息中增加重发标记。例如,可以在消息的消息体中增加用于填入重发标记的字段;又如,也可以将消息中的空闲位改为用于填入重发标记的位,如现有的消息ID中的最后一个比特(bit)一般为符号位,永远是0,那么可以将该符号位改为用于填入重发标记的位。重发标记的具体取值可以包括两个取值,一个表示不是重复发送,也即首次发送,该值例如可以是0;另一个表示是重复发送,也即不是首次发送,该值例如可以是1。此外,重复标记的具体取值也可以是重复发送的次数,首次发送时值为0,第二次发送(也即第一次重复发送)时取值为1,第三次发送(也即第二次重复发送)时取值为2,依次类推。
消息发送方和消息接收方协商好消息传输协议后,消息接收方在接收到第一消息后,便可以从中得到第一重发标记,第一重发标记可以表示第一消息中的消息内容是否为重复发送。
步骤102、根据所述第一重发标记判断所述第一消息中的消息内容是否由所述消息发送方重复发送。
示例性的,消息接收方在接收到第一消息后,对第一消息进行解析,从中提取第一重发标记,根据第一重发标记的具体取值来判断第一消息中的消息内容是否由消息发送方重复发送。
步骤103、若否,则省略针对所述第一消息的消息内容的查重处理。
示例性的,消息接收方在根据第一重发标记确定当前接收到的第一消息中的消息内容不是重复发送后,即可确定当前并未存储第一消息的消息内容,因此,无法通过查重处理找到与其相同的消息内容,因此,可以省略查重处理操作。
本发明实施例中提供的消息处理方法,消息传输系统中的消息发送方向消息接收方发送的第一消息中包含消息发送方确定的第一重发标记,重发标记用于表示对应的消息内容是否为重复发送,消息接收方接收第一消息后,先根据第一消息中的第一重发标记判断第一消息中的消息内容是否由消息发送方重复发送,若否,则省略针对第一消息的消息内容的查重处理。通过采用上述技术方案,消息接收方在根据重发标记明确得知当前接收到的消息不是重复发送后,就不会针对该消息查询是否已经成功接收过同样的消息内容,也即不需要针对每条刚接收的消息,都与已接收的消息进行逐条地比对,确定是否为重复接收,有效减少消息接收方的查重操作,提高消息去重效率,降低负载,提高数据处理速度。
在一些实施例中,所述重发标记的取值为同一消息内容的发送次数;所述根据所述第一重发标记判断所述第一消息中的消息内容是否由所述消息发送方重复发送,包括:当所述第一重发标记对应的取值等于1时,确定所述第一消息中的消息内容由所述消息发送方首次发送;当所述第一重发标记对应的取值大于1时,确定所述第一消息中的消息内容由所述消息发送方重复发送。其中,重发标记的取值为同一消息内容的发送次数,也即,对于相同的消息内容而言,首次发送时值为1,第二次发送时取值为2,第三次发送时取值为3,依次类推。由此可知,当第一重发标记对应的取值等于1时,说明是首次发送,也即不是重复发送;当第一重发标记对应的取值大于1时,说明是重复发送。采用发送次数作为重发标记的好处在于,重发次数可以在一定程度上反映网络质量的好坏,当发送次数越大时,说明当前重试次数越多,网络质量越差,可便于消息接收方根据发送次数及时采取相应的应对措施。例如,当根据重发标记的取值确定同一消息内容的发送次数大于预设次数阈值时,反馈网络质量异常情况,便于工作人员及时采取相应的应对措施。
在一些实施例中,在所述根据所述第一重发标记判断所述第一消息中的消息内容是否由所述消息发送方重复发送之后,还包括:若是,则针对所述第一消息的消息内容进行查重处理。这样设置的好处在于,有针对性地进行查重处理,及时对重复的消息内容进行去重处理,节省存储空间。
在一些实施例中,所述第一消息中还包含所述消息发送方确定的第一消息身份标识,其中,消息身份标识用于唯一标记消息内容;所述针对所述第一消息的消息内容进行查重处理,包括:判断已接收的消息中是否存在所述第一消息身份标识,若不存在,则确定所述第一消息的消息内容在历次被所述消息发送方发送时均未被成功接收,对所述第一消息进行存储。这样设置的好处在于,基于唯一标记消息内容的消息身份标识进行消息内容的查重,可以快速准确地确定是否存在重复的消息内容,若不存在,则及时对当前消息进行存储。其中,消息身份标识可以根据现有消息传输协议中的规定设置,也可根据实际需求进行调整。需要说明的是,若将现有的消息ID中的某一位或多位改为用于填入重复标记的位,则本发明实施例中的消息身份标识则仅包含唯一标记消息内容的部分,不包括消息ID中的用于填入重复标记的位的部分。
在一些实施例中,在判断已接收的消息中是否存在所述第一消息身份标识之后,还包括:若存在,则确定所述第一消息的消息内容在历次被所述消息发送方发送时至少一次被成功接收,丢弃所述第一消息。这样设置的好处在于,若第一消息的消息内容已成功存储,则需要及时丢弃所述第一消息,避免对存储空间的占用。
在一些实施例中,所述判断已接收的消息中是否存在所述第一消息身份标识,包括:获取所述第一消息身份标识中的第一预设字段上的第一数值;查询预设存储系统中的位图BITMAP数据中是否包含所述第一数值对应的键;若不包含,则确定已接收的消息中不存在所述第一消息身份标识。这样设置的好处在于,节省存储空间。
BITMAP基本思想就是用一个bit位来标记某个元素对应的Value(值),而Key(键)即是该元素。由于采用了bit为单位来存储数据,因此在存储空间方面,可以大大节省。本发明实施例中采用BITMAP的方式对消息身份标识进行存储,具体是将消息身份标识中的第一预设字段上的数值作为key进行存储,也即将消息身份标识中的部分内容作为key进行存储,若查询不到对应的key,则可说明不存在该消息身份标识,而无需查询整个消息身份标识,提高查询效率。
在一些实施例中,所述对所述第一消息进行存储之后,还包括:根据所述第一数值创建对应的第一键,并将所述第一消息身份标识中的第二预设字段上的第二数值作为所述第一键对应的第一偏移量,将所述第一偏移量对应的值置为第一预设值,其中,所述第一消息身份标识由所述第一预设字段和所述第二预设字段组成。这样设置的好处在于,将第一消息身份标识划分为两个预设字段,分别作为BITMAP的key和offset(偏移量),能够完整表示一个消息身份标识,不同的key可能会存在相同的offset,也即采用BITMAP的方式可以针对所有offset的取值仅存储一次,然后利用偏移量对应的value来表示对应的消息内容是否已存储,并不需要针对每个消息身份标识都存储一次offset,也即避免offset对应的取值的重复存储,减少offset对应的取值的存储次数,在保证能够组合出完整的消息身份标识的情况下,有效节约存储空间。其中,第一预设字段和第二预设字段的位置和长度等均不做限定。第一预设值可以是0或1。
在一些实施例中,在所述查询预设存储系统中的BITMAP数据中是否包含所述第一数值对应的键之后,还包括:若包含,则获取所述第一消息身份标识中的第二预设字段上的第二数值;判断查询到的所述第一数值对应的键中,与所述第二数值相同的偏移量的值是否为第一预设值,若为第一预设值,则确定已接收的消息中存在所述第一消息身份标识,若为第二预设值,则确定已接收的消息中不存在所述第一消息身份标识。其中,第一预设值为0时,第二预设值为1;第一预设值为1时,第二预设值为0。这样设置的好处在于,快速准确地确定是否存在重复的消息内容。在确定包含第一数值对应的键后,说明可能存在第一消息身份标识,则需要进一步确认与第一消息身份标识对应的偏移量的值,假设未被存储过默认对应的value为0,也即第二预设值为0,若已被存储过则对应的value为1,也即第一预设值为1,通过读取第一消息身份标识对应的偏移量的值,可以快速准确地确定是否存在第一消息身份标识。
在一些实施例中,对于任意两个不同的消息身份标识,第一概率大于第二概率,其中,第一概率为两个第一预设字段的取值相同的概率,第二概率为两个第二预设字段的取值相同的概率。也就是说,第一预设字段的取值的数量小于第二预设字段的取值的数量。这样设置的好处在于,可以减少key的数量,进而提高快速确认是否存在第一消息身份标识的概率。示例性的,第一预设字段中可以包括设备标识(如机器id等)等不容易变化的信息,第二预设字段中可以包括序列号(如毫秒内流水号等)变化频繁的信息。
在一些实施例中,在所述根据所述第一数值创建对应的第一键的同时还包括:根据所述第一消息对应的发送时间设置所述第一键的生存时间。这样设置的好处在于,通过设置第一键的生存时间,可以实现过时自动清除第一键,进一步节省存储空间。示例性的,可以在发送时间基础上增加预设时长,作为第一键的生存时间。预设时长可以根据消息发送方的消息重发最大时延确定,例如,消息发送方在首次发出一条消息后,直到达到消息重发最大时延,一直未得到消息接收方的响应,则不再重发,因此,消息接收方也无需在存储对应的键。假设消息重发最大时延为1小时,则预设时长也可以是1小时。
图2为本发明实施例提供的又一种消息处理方法的流程示意图,如图2所示,该方法可包括:
步骤201、接收消息发送方发送的第一消息。
其中,所述第一消息中包含所述消息发送方确定的第一重发标记和第一消息身份标识,重发标记用于表示对应的消息内容是否为重复发送,消息身份标识用于唯一标记消息内容。
步骤202、根据第一消息中的第一重发标记判断第一消息中的消息内容是否由消息发送方重复发送,若是,则执行步骤203;否则,执行步骤210。
步骤203、获取第一消息身份标识中的第一预设字段上的第一数值。
步骤204、查询预设存储系统中的BITMAP数据中是否包含第一数值对应的键,若是,则执行步骤205;否则,执行步骤207。
步骤205、获取第一消息身份标识中的第二预设字段上的第二数值。
步骤206、判断查询到的第一数值对应的键中,与第二数值相同的偏移量的值是否为0,若是,则执行步骤207;否则,执行步骤209。
步骤207、确定已接收的消息中不存在第一消息身份标识,第一消息的消息内容在历次被消息发送方发送时均未被成功接收,对第一消息进行存储。
步骤208、若存在第一数值对应的键,则根据第一数值创建对应的第一键,并将第一消息身份标识中的第二预设字段上的第二数值作为第一键对应的第一偏移量,将第一偏移量对应的值置为1;若存在第一数值对应的键,则将该键对应的第二数值的偏移量对应的值置为1。
步骤209、确定第一消息的消息内容在历次被消息发送方发送时至少一次被成功接收,丢弃第一消息。
步骤210、省略针对第一消息的消息内容的查重处理。
示例性的,在步骤210后,可对第一消息进行存储,并执行步骤208。
本发明实施例提供的消息处理方法,消息传输系统中的消息发送方向消息接收方发送的第一消息中包含消息发送方确定的第一重发标记,重发标记用于表示对应的消息内容是否为重复发送,消息接收方接收第一消息后,先根据第一消息中的第一重发标记判断第一消息中的消息内容是否由消息发送方重复发送,若不是重发,则省略针对第一消息的消息内容的查重处理,若是重发,则通过查询预设存储系统中的BITMAP数据来快速准确地确定是否存在第一消息中的第一消息身份标识,若存在,则说明第一消息的消息内容已成功被存储过,可以丢弃第一消息,若不存在,则说明第一消息的消息内容未被成功存储过,需要对第一消息进行存储,并更新对应的BITMAP数据。通过采用上述技术方案,消息接收方在根据重发标记明确得知当前接收到的消息不是重复发送后,就不会针对该消息查询是否已经成功接收过同样的消息内容,也即不需要针对每条刚接收的消息,都与已接收的消息进行逐条地比对,确定是否为重复接收,有效减少消息接收方的查重操作,若得知是重复发送时,则通过查询BITMAP快速进行查重处理,有效提高消息去重效率,降低负载,提高数据处理速度。
在一些实施例中,所述消息传输系统为跨区域部署的分布式系统,在每个区域部署至少一个消息发送方,在至少一个区域部署消息接收方,所述消息接收方中用于存储消息的预设存储系统为分布式缓存集群。
随着通信技术和互联网技术的快速发展,许多企业的业务范围不断扩大,需要在较大的地域范围内(如整个国家或者全球)跨区域部署消息传输系统。在这样的应用场景下,消息发送方一般作为数据处理前端部署在全球各个机房,用于接收数据并传输给数据处理后端,消息接收方一般作为数据处理后端统一部署在一个区域的机房,接收数据处理前端传输的数据统一处理后传递给消息队列。由于采用分布式布局方式,用于存储消息的预设存储系统一般为Redis或Codis等缓存集群。
由于消息传输属于远距离传输,如跨州传输,不同地区的消息发送方到消息接收方的网络情况差异较大,若采用现有技术中的方案,前端每条消息生成唯一ID,后端存储每条消息唯一ID后过滤重复ID的消息,也就是说后端接收每条消息后都需要访问缓存集群,需要消耗大量的缓存集群资源,缓存集群的访问量大,集群负载高,缓存集群负载高处理速度变慢导致后端业务处理的耗时增加,后端由于消息去重耗时过高导致正常的数据处理速度变慢。而采用本发明实施例提供的消息处理方案可以有效解决该应用场景下的上述技术问题。
图3为本发明实施例提供的再一种消息处理方法的流程示意图,可适用于消息传输系统为跨区域部署的分布式系统的应用场景,具体应用于作为消息接收方的数据处理后端。示例性的,该方法可包括:
步骤301、接收数据处理前端发送的第一消息。
其中,所述第一消息中包含数据处理前端确定的第一重发标记和第一消息身份标识,重发标记用于表示对应的消息内容是否为重复发送,消息身份标识用于唯一标记消息内容。
示例性的,重发标记的取值可以是0或1,0表示不是重复发送,1表示重复发送。
示例性的,消息身份标识又称消息ID,长度可以为64bit,生成规则可以是:包含废弃(1bit)、机器id(13bit)、时间戳秒数(32bit)和序列号(18bit),其中,机器id可以由机器的网际协议(Internet Protocol,IP)地址唯一标识,时间戳秒数的单位可以是秒或者毫秒,序列号可以是秒内或毫秒内的流水号(也即每个节点或机器在每秒内或每毫秒内可以产生的ID的数量总和为18bit对应的存储最大值)。
步骤302、根据第一消息中的第一重发标记判断第一消息中的消息内容是否由数据处理前端重复发送,若是,则执行步骤303;否则,执行步骤310。
步骤303、获取第一消息身份标识中的第一预设字段上的第一数值。
示例性的,可以在Codis缓存集群中维护BITMAP数据,将消息ID中高位的46bit值作为key,低位18bit序列号作为offset,offset对应的value为0或1,0表示未被存储过,1表示已存储。
步骤304、查询Codis缓存集群中的BITMAP数据中是否包含第一数值对应的键,若是,则执行步骤305;否则,执行步骤307。
步骤305、获取第一消息身份标识中的第二预设字段上的第二数值。
步骤306、判断查询到的第一数值对应的键中,与第二数值相同的偏移量的值是否为0,若是,则执行步骤307;否则,执行步骤309。
步骤307、确定已接收的消息中不存在第一消息身份标识,第一消息的消息内容在历次被数据处理前端发送时均未被成功接收,对第一消息进行存储。
步骤308、若存在第一数值对应的键,则根据第一数值创建对应的第一键,并将第一消息身份标识中的第二预设字段上的第二数值作为第一键对应的第一偏移量,将第一偏移量对应的值置为1;若存在第一数值对应的键,则将该键对应的第二数值的偏移量对应的值置为1。
步骤309、确定第一消息的消息内容在历次被数据处理前端发送时至少一次被成功接收,丢弃第一消息。
步骤310、省略针对第一消息的消息内容的查重处理。
示例性的,在步骤310后,可对第一消息进行存储,并执行步骤308。
本发明实施例提供的消息处理方法,数据处理前端向数据处理后端发送的消息中包含重发标记,数据处理后端收到消息,先根据重发标记判断消息内容是否为重复发送,仅针对重复发送的消息进行查重处理,可以有效的解决跨州或其他跨区域传输系统内部因为网络抖动、数据重传导致的内部消息重复的问题。相较于现有的内部消息去重系统,能够很大程度地减少消息ID缓存集群的压力,有效节约缓存集群资源,降低因消息ID缓存对正常数据处理速度的负面影响。经过测试验证,本发明实施例提供的消息处理方法去重准确率可达100%,召回率99.48%左右(即平均100个重复消息里能发现大约99.48个),对Redis或Codis的访问次数大约能降低99.92%。
图4为本发明实施例提供的另一种消息处理方法的流程示意图,该方法可以由消息处理装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中,该计算机设备可以作为消息传输系统中的消息发送方,具体类型不做限定,可以是服务器等设备。如图4所示,该方法包括:
步骤401、确定待发送的消息内容对应的第一重发标记,其中,重发标记用于表示对应的消息内容是否为重复发送。
示例性的,在确定需要发送的消息内容后,消息发送方可以判断本次发送是首次发送,还是在未接收到请求响应之后的重复发送,进而确定对应的重发标记。
步骤402、根据所述待发送的消息内容和所述第一重发标记生成第一消息。
步骤403、向消息接收方发送所述第一消息,所述第一消息用于指示所述消息接收方在根据所述第一重发标记确定所述第一消息中的消息内容不是由所述消息发送方重复发送时,省略针对所述第一消息的消息内容的查重处理。
本发明实施例中的技术细节可参考前文相关内容,此处不再赘述。
本发明实施例中提供的消息处理方法,消息传输系统中的消息发送方向消息接收方发送消息之前,先确定待发送消息内容是否为重复发送,进而确定对应的重发标记,根据重复标记和消息内容生成需要发送的消息,并发送给消息接收方,使得消息接收方接收消息后,先根据消息中的重发标记判断消息中的消息内容是否由消息发送方重复发送,若否,则省略针对消息的消息内容的查重处理。通过采用上述技术方案,通过在消息中增加重复标记,可以便于消息接收方在根据重发标记明确得知当前接收到的消息不是重复发送后,就不会针对该消息查询是否已经成功接收过同样的消息内容,也即不需要针对每条刚接收的消息,都与已接收的消息进行逐条地比对,确定是否为重复接收,有效减少消息接收方的查重操作,提高消息去重效率,降低负载,提高数据处理速度。
图5为本发明实施例提供的一种消息处理装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在作为消息接收方的计算机设备中,可通过执行消息处理方法来处理消息。如图5所示,该装置包括:
消息接收装置501,用于接收消息发送方发送的第一消息,其中,所述第一消息中包含所述消息发送方确定的第一重发标记,重发标记用于表示对应的消息内容是否为重复发送;
重复发送判断模块502,用于根据所述第一重发标记判断所述第一消息中的消息内容是否由所述消息发送方重复发送;
查重处理模块503,用于在所述重复发送判断模块根据所述第一重发标记确定所述第一消息中的消息内容不是由所述消息发送方重复发送时,省略针对所述第一消息的消息内容的查重处理。
本发明实施例中提供的消息处理装置,消息接收方在根据重发标记明确得知当前接收到的消息不是重复发送后,就不会针对该消息查询是否已经成功接收过同样的消息内容,也即不需要针对每条刚接收的消息,都与已接收的消息进行逐条地比对,确定是否为重复接收,有效减少消息接收方的查重操作,提高消息去重效率,降低负载,提高数据处理速度。
图6为本发明实施例提供的另一种消息处理装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在作为消息发送方的计算机设备中,可通过执行消息处理方法来处理消息。如图6所示,该装置包括:
重发标记确定模块601,用于确定待发送的消息内容对应的第一重发标记,其中,重发标记用于表示对应的消息内容是否为重复发送;
消息生成模块602,用于根据所述待发送的消息内容和所述第一重发标记生成第一消息;
消息发送模块603,用于向消息接收方发送所述第一消息,所述第一消息用于指示所述消息接收方在根据所述第一重发标记确定所述第一消息中的消息内容不是由所述消息发送方重复发送时,省略针对所述第一消息的消息内容的查重处理。
本发明实施例中提供的消息处理装置,通过在消息中增加重复标记,可以便于消息接收方在根据重发标记明确得知当前接收到的消息不是重复发送后,就不会针对该消息查询是否已经成功接收过同样的消息内容,也即不需要针对每条刚接收的消息,都与已接收的消息进行逐条地比对,确定是否为重复接收,有效减少消息接收方的查重操作,提高消息去重效率,降低负载,提高数据处理速度。
本发明实施例提供了一种计算机设备,该计算机设备中可集成本发明实施例提供的消息处理装置。图7为本发明实施例提供的一种计算机设备的结构框图。计算机设备700包括存储器701、处理器702及存储在存储器701上并可在处理器702上运行的计算机程序,所述处理器702执行所述计算机程序时实现本发明实施例提供的消息处理方法。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例提供的消息处理方法。
上述实施例中提供的消息处理装置、设备以及存储介质可执行本发明任意实施例所提供的消息处理方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的消息处理方法。
注意,上述仅为本发明的较佳实施例。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求范围决定。
Claims (15)
1.一种消息处理方法,其特征在于,应用于消息传输系统中的消息接收方,所述方法包括:
接收消息发送方发送的第一消息,其中,所述第一消息中包含所述消息发送方确定的第一重发标记,重发标记用于表示对应的消息内容是否为重复发送;
根据所述第一重发标记判断所述第一消息中的消息内容是否由所述消息发送方重复发送;
若否,则省略针对所述第一消息的消息内容的查重处理。
2.根据权利要求1所述的方法,其特征在于,所述重发标记的取值为同一消息内容的发送次数;
所述根据所述第一重发标记判断所述第一消息中的消息内容是否由所述消息发送方重复发送,包括:
当所述第一重发标记对应的取值等于1时,确定所述第一消息中的消息内容由所述消息发送方首次发送;
当所述第一重发标记对应的取值大于1时,确定所述第一消息中的消息内容由所述消息发送方重复发送。
3.根据权利要求1所述的方法,其特征在于,在所述根据所述第一重发标记判断所述第一消息中的消息内容是否由所述消息发送方重复发送之后,还包括:
若是,则针对所述第一消息的消息内容进行查重处理。
4.根据权利要求3所述的方法,其特征在于,所述第一消息中还包含所述消息发送方确定的第一消息身份标识,其中,消息身份标识用于唯一标记消息内容;
所述针对所述第一消息的消息内容进行查重处理,包括:
判断已接收的消息中是否存在所述第一消息身份标识,若不存在,则确定所述第一消息的消息内容在历次被所述消息发送方发送时均未被成功接收,对所述第一消息进行存储。
5.根据权利要求4所述的方法,其特征在于,在判断已接收的消息中是否存在所述第一消息身份标识之后,还包括:
若存在,则确定所述第一消息的消息内容在历次被所述消息发送方发送时至少一次被成功接收,丢弃所述第一消息。
6.根据权利要求4或5所述的方法,其特征在于,所述判断已接收的消息中是否存在所述第一消息身份标识,包括:
获取所述第一消息身份标识中的第一预设字段上的第一数值;
查询预设存储系统中的位图BITMAP数据中是否包含所述第一数值对应的键;
若不包含,则确定已接收的消息中不存在所述第一消息身份标识。
相应的,在所述对所述第一消息进行存储之后,还包括:
根据所述第一数值创建对应的第一键,并将所述第一消息身份标识中的第二预设字段上的第二数值作为所述第一键对应的第一偏移量,将所述第一偏移量对应的值置为第一预设值,其中,所述第一消息身份标识由所述第一预设字段和所述第二预设字段组成。
7.根据权利要求6所述的方法,其特征在于,在所述查询预设存储系统中的BITMAP数据中是否包含所述第一数值对应的键之后,还包括:
若包含,则获取所述第一消息身份标识中的第二预设字段上的第二数值;
判断查询到的所述第一数值对应的键中,与所述第二数值相同的偏移量的值是否为第一预设值,若为第一预设值,则确定已接收的消息中存在所述第一消息身份标识,若为第二预设值,则确定已接收的消息中不存在所述第一消息身份标识。
8.根据权利要求7所述的方法,其特征在于,对于任意两个不同的消息身份标识,第一概率大于第二概率,其中,第一概率为两个第一预设字段的取值相同的概率,第二概率为两个第二预设字段的取值相同的概率。
9.根据权利要求6所述的方法,其特征在于,在所述根据所述第一数值创建对应的第一键的同时还包括:
根据所述第一消息对应的发送时间设置所述第一键的生存时间。
10.根据权利要求1所述的方法,其特征在于,所述消息传输系统为跨区域部署的分布式系统,在每个区域部署至少一个消息发送方,在至少一个区域部署消息接收方,所述消息接收方中用于存储消息的预设存储系统为分布式缓存集群。
11.一种消息处理方法,其特征在于,应用于消息传输系统中的消息发送方,所述方法包括:
确定待发送的消息内容对应的第一重发标记,其中,重发标记用于表示对应的消息内容是否为重复发送;
根据所述待发送的消息内容和所述第一重发标记生成第一消息;
向消息接收方发送所述第一消息,所述第一消息用于指示所述消息接收方在根据所述第一重发标记确定所述第一消息中的消息内容不是由所述消息发送方重复发送时,省略针对所述第一消息的消息内容的查重处理。
12.一种消息处理装置,其特征在于,集成于消息传输系统中的消息接收方,所述装置包括:
消息接收装置,用于接收消息发送方发送的第一消息,其中,所述第一消息中包含所述消息发送方确定的第一重发标记,重发标记用于表示对应的消息内容是否为重复发送;
重复发送判断模块,用于根据所述第一重发标记判断所述第一消息中的消息内容是否由所述消息发送方重复发送;
查重处理模块,用于在所述重复发送判断模块根据所述第一重发标记确定所述第一消息中的消息内容不是由所述消息发送方重复发送时,省略针对所述第一消息的消息内容的查重处理。
13.一种消息处理装置,其特征在于,集成于消息传输系统中的消息发送方,所述方法包括:
重发标记确定模块,用于确定待发送的消息内容对应的第一重发标记,其中,重发标记用于表示对应的消息内容是否为重复发送;
消息生成模块,用于根据所述待发送的消息内容和所述第一重发标记生成第一消息;
消息发送模块,用于向消息接收方发送所述第一消息,所述第一消息用于指示所述消息接收方在根据所述第一重发标记确定所述第一消息中的消息内容不是由所述消息发送方重复发送时,省略针对所述第一消息的消息内容的查重处理。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-11任一项所述的方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-11中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011193625.6A CN112422408A (zh) | 2020-10-30 | 2020-10-30 | 消息处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011193625.6A CN112422408A (zh) | 2020-10-30 | 2020-10-30 | 消息处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112422408A true CN112422408A (zh) | 2021-02-26 |
Family
ID=74827127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011193625.6A Pending CN112422408A (zh) | 2020-10-30 | 2020-10-30 | 消息处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112422408A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118074869A (zh) * | 2024-02-04 | 2024-05-24 | 深圳市奇迅新游科技股份有限公司 | 重复数据的处理方法、终端设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1261487A (zh) * | 1997-06-17 | 2000-07-26 | 夸尔柯姆股份有限公司 | 用于选择性重发协议的序列号码范围扩展方法和系统 |
CN101674235A (zh) * | 2009-09-27 | 2010-03-17 | 中兴通讯股份有限公司 | 数据传输方法和设备 |
JP2011223414A (ja) * | 2010-04-12 | 2011-11-04 | Nippon Telegr & Teleph Corp <Ntt> | 再送判定装置、再送判定方法、再送判定プログラム、及び再送判定システム |
CN103929353A (zh) * | 2014-04-25 | 2014-07-16 | 百度在线网络技术(北京)有限公司 | 即时消息的处理方法和装置 |
CN104092717A (zh) * | 2013-12-13 | 2014-10-08 | 深圳市腾讯计算机系统有限公司 | 消息处理方法及系统、消息目的端设备与分布式消息系统 |
CN111654523A (zh) * | 2020-04-28 | 2020-09-11 | 珠海格力电器股份有限公司 | 一种数据处理方法、装置、存储介质及服务器 |
-
2020
- 2020-10-30 CN CN202011193625.6A patent/CN112422408A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1261487A (zh) * | 1997-06-17 | 2000-07-26 | 夸尔柯姆股份有限公司 | 用于选择性重发协议的序列号码范围扩展方法和系统 |
CN101674235A (zh) * | 2009-09-27 | 2010-03-17 | 中兴通讯股份有限公司 | 数据传输方法和设备 |
JP2011223414A (ja) * | 2010-04-12 | 2011-11-04 | Nippon Telegr & Teleph Corp <Ntt> | 再送判定装置、再送判定方法、再送判定プログラム、及び再送判定システム |
CN104092717A (zh) * | 2013-12-13 | 2014-10-08 | 深圳市腾讯计算机系统有限公司 | 消息处理方法及系统、消息目的端设备与分布式消息系统 |
CN103929353A (zh) * | 2014-04-25 | 2014-07-16 | 百度在线网络技术(北京)有限公司 | 即时消息的处理方法和装置 |
CN111654523A (zh) * | 2020-04-28 | 2020-09-11 | 珠海格力电器股份有限公司 | 一种数据处理方法、装置、存储介质及服务器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118074869A (zh) * | 2024-02-04 | 2024-05-24 | 深圳市奇迅新游科技股份有限公司 | 重复数据的处理方法、终端设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108449256B (zh) | 消息推送的处理方法、装置、计算机设备及存储介质 | |
US20080270485A1 (en) | Method For Processing Data Synchronization And Client Terminal, Server, And Data Synchronization System Thereof | |
CN107979592B (zh) | 一种发送业务请求消息的方法及装置 | |
US7746880B2 (en) | Method and arrangement relating to messaging | |
US8300562B2 (en) | Method, apparatus, and system for sending a status report | |
WO2023221452A1 (zh) | 报文处理系统、方法、设备和存储介质 | |
CN112737928B (zh) | 即时通讯消息发送方法及装置 | |
CN101848107A (zh) | Snmp网元及snmp网元与私有协议网元通信的方法 | |
KR20100042685A (ko) | 무선망 환경에서 동적 ip기반의 양방향 푸시 서비스 시스템 | |
CN112422408A (zh) | 消息处理方法、装置、设备及存储介质 | |
CN113259874B (zh) | 消息处理方法、电子设备及存储介质 | |
CN103139041A (zh) | 信息过滤的方法、转发信息的处理方法、装置及系统 | |
CN113055193B (zh) | 一种数据多播传输方法、装置、设备及存储介质 | |
CN106453613B (zh) | 消息重发方法及装置 | |
KR20030030892A (ko) | 서버와 이동 터미널 사이에 패킷들의 시퀀스들을 전송하는시스템 | |
CN115658343A (zh) | 一种检测、处理分布式系统中消息顺序的方法及装置 | |
CN113791733B (zh) | 信息的存储方法、装置、设备及存储介质 | |
EP3051919B1 (en) | Device and method for wireless communication used in wireless ad hoc network | |
CN108989467B (zh) | 集中式寻址方法 | |
CN109688204B (zh) | 基于ndn网络的文件下载方法、节点、终端 | |
CN103516530A (zh) | 一种获取代理端扩展错误信息的方法及装置 | |
CN104980479A (zh) | 一种文件预推送方法、相关服务器及系统 | |
CN112261124B (zh) | 车辆状态数据的上报方法和系统以及车辆状态的查看方法 | |
CN115665042B (zh) | 数据处理方法、装置、用户平面功能实体及存储介质 | |
US11146989B2 (en) | Terminal-aided backhaul compression |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210226 |