CN119668900A - 一种消息数据处理方法、装置、存储介质及电子设备 - Google Patents
一种消息数据处理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN119668900A CN119668900A CN202411827154.8A CN202411827154A CN119668900A CN 119668900 A CN119668900 A CN 119668900A CN 202411827154 A CN202411827154 A CN 202411827154A CN 119668900 A CN119668900 A CN 119668900A
- Authority
- CN
- China
- Prior art keywords
- message data
- message
- type
- target service
- target
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种消息数据处理方法、装置、存储介质及电子设备,应用于数据处理技术领域。本发明在指定消息队列中获取一定数量的目标业务消息数据,这些数据包含操作类型、消息标识、消息时间戳、分组属性信息和去重唯一标识符等信息。根据操作类型,将它们分类为去重类和合并类。去重类消息按分组属性分为小组,并按照去重唯一标识符去重,保留时间戳最早的消息。合并类消息则根据操作类型进行对冲和去重。结果消息集按时间戳排序后推送至业务队列。本发明采用摘要算法思想进行去重以及通过时间戳保序处理,实现对消息数据的去重和合并,同时确保业务执行和依赖关系保持不变,进而有助于提升下游业务处理效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种消息数据处理方法、装置、存储介质及电子设备。
背景技术
随着互联网业务的快速发展,各种需求不断涌现,尤其是在大量订阅业务变更的场景中。比如,将第三方平台的视频内容同步到自有平台,或者监控某个业务的变化以便处理相关依赖业务。在这些情境中,上游业务通常通过消息中间件(Message Queue,MQ)主动发送消息,或者监听数据库表的binlog(MySQL的数据二进制日志)来捕获变化。下游业务则根据这些变更消息调整自身逻辑。然而,这些变更消息在一定时间内可能会出现大量重复,导致下游业务需要多次处理相同数据,影响效率。
以往的解决方案主要有两种:一是通过优化下游业务代码来减少单个消息的处理时间以提升效率,但这种方法面临性能优化的瓶颈;二是增加下游业务服务的实例和线程数量来提高处理性能,但这种方法会增加服务成本,并且重复处理不仅效率低,还可能因业务ID加锁操作导致消息处理时间延长。
因此,如何有效处理重复的消息数据,成为提升下游业务处理效率的关键所在。
发明内容
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的一种消息数据处理方法、装置、存储介质及电子设备,技术方案如下:
一种消息数据处理方法,包括:
按照预设时间间隔从指定消息队列中获取预设数量的目标业务消息数据,其中,所述目标业务消息数据包括消息数据属性信息,所述消息数据属性信息包括所述目标业务消息数据的操作类型、消息标识、消息时间戳、分组属性信息和去重唯一标识符;
依据所述目标业务消息数据的所述操作类型,确定所述目标业务消息数据的消息属性类别,将所述消息属性类别为去重类的各个所述目标业务消息数据划分至去重类消息组,将所述消息属性类型为合并类的各个所述目标业务消息数据划分至合并类消息组;
在所述去重类消息组中,将具有相同所述分组属性信息的所述目标业务消息数据划分至同一去重小组中,分别对各所述去重小组中具有相同所述去重唯一标识符的各个所述目标业务消息数据进行去重,保留所述消息时间戳最早的所述目标业务消息数据,获得消息去重结果;
在所述合并类消息组中,将具有相同所述分组属性信息的所述目标业务消息数据划分至同一合并小组中,按照所述操作类型的正逆对冲关系,分别将各所述合并小组中的各个所述目标业务消息数据划分至相应的合并类型小组,对各个合并类型小组中具有相同所述去重唯一标识符的相邻所述目标业务消息数据进行去重,去重后根据合并类型小组中各个所述目标业务消息数据的所述操作类型的正逆性进行对冲处理,获得消息合并结果;
将所述消息去重结果和所述消息合并结果组合为目标消息集合;
对所述目标消息集合中的各个所述目标业务消息数据,按照所述消息时间戳进行升序排序,按照排序后的顺序依次将所述目标消息集合中的各个所述目标业务消息数据推送到目标业务处理队列中。
可选的,所述操作类型包括新增、修改、审核通过、上线、下线、删除和还原。
可选的,所述依据所述目标业务消息数据的所述操作类型,确定所述目标业务消息数据的消息属性类别,包括:
在所述目标业务消息数据的所述操作类型为第一预设操作的情况下,确定所述目标业务消息数据的所述消息属性类别为去重类,其中,所述第一预设操作包括新增、修改和审核通过;
在所述目标业务消息数据的所述操作类型为第二预设操作的情况下,确定所述目标业务消息数据所述消息属性类别为合并类,其中,所述第二预设操作包括上线、下线、删除和还原。
可选的,所述按照所述操作类型的正逆对冲关系,分别将各所述合并小组中的各个所述目标业务消息数据划分至相应的合并类型小组,包括:
将同一所述合并小组中所述操作类型为上线或下线的所述目标业务消息数据划分至第一合并类型小组;
将同一所述合并小组中所述操作类型为删除或还原的所述目标业务消息数据划分至第二合并类型小组。
可选的,在所述目标业务消息数据的所述操作类型为上线或还原时,为所述目标业务消息数据添加正向标识;在所述目标业务消息数据的所述操作类型为下线或删除时,为所述目标业务消息数据添加负向标识,所述去重后根据合并类型小组中各个所述目标业务消息数据的所述操作类型的正逆性进行对冲处理,包括:
利用去重后合并类型小组中各个所述目标业务消息数据携带的所述正向标识或负向标识,计算合并类型小组的对冲数值;
在所述对冲数值为1时,合并类型小组保留的所述目标业务消息数据为正向操作类型;
在所述对冲数值为-1时,合并类型小组保留的所述目标业务消息数据为逆向操作类型;
在所述对冲数值为0时,合并类型小组为空。
可选的,所述消息数据属性信息还包括所述目标业务消息数据的业务类型和业务ID,在所述按照预设时间间隔从指定消息队列中获取预设数量的目标业务消息数据之前,所述方法还包括:
监听上游业务生产者在当前时刻推送的所述原始业务消息数据;
解析出所述原始业务消息数据的业务类型、业务ID、操作类型和消息标识;
将所述当前时刻赋值至所述原始业务消息数据的消息时间戳;
利用所述原始业务消息数据的业务ID和操作类型,生成所述原始业务消息数据的去重唯一标识符;
利用所述原始业务消息数据的业务类型和业务ID,生成所述原始业务消息数据的缓存唯一标识符;
在指定内存数据库中查询是否存在所述缓存唯一标识符,如果是,则将所述缓存唯一标识符设置为所述原始业务消息数据的分组属性信息,得到目标业务消息数据,如果否,则将所述缓存唯一标识符存储至所述指定内存数据库中,执行所述将所述缓存唯一标识符设置为所述原始业务消息数据的分组属性信息,得到目标业务消息数据的步骤。
可选的,所述利用所述原始业务消息数据的业务ID和操作类型,生成所述原始业务消息数据的去重唯一标识符,包括:
拼接所述目标业务消息数据的业务ID和操作类型的属性名称和属性值,获得业务属性字符串;
计算出所述业务属性字符串的哈希值,并将所述哈希值确认为所述目标业务消息数据的所述去重唯一标识符。
一种消息数据处理装置,包括:目标业务消息数据获取单元、消息属性类别划分单元、消息去重结果获得单元、消息合并结果获得单元、目标消息集合获得单元和消息推送单元,
所述目标业务消息数据获取单元,用于按照预设时间间隔从指定消息队列中获取预设数量的目标业务消息数据,其中,所述目标业务消息数据包括消息数据属性信息,所述消息数据属性信息包括所述目标业务消息数据的操作类型、消息标识、消息时间戳、分组属性信息和去重唯一标识符;
所述消息属性类别划分单元,用于依据所述目标业务消息数据的所述操作类型,确定所述目标业务消息数据的消息属性类别,将所述消息属性类别为去重类的各个所述目标业务消息数据划分至去重类消息组,将所述消息属性类型为合并类的各个所述目标业务消息数据划分至合并类消息组;
所述消息去重结果获得单元,用于在所述去重类消息组中,将具有相同所述分组属性信息的所述目标业务消息数据划分至同一去重小组中,分别对各所述去重小组中具有相同所述去重唯一标识符的各个所述目标业务消息数据进行去重,保留所述消息时间戳最早的所述目标业务消息数据,获得消息去重结果;
所述消息合并结果获得单元,用于在所述合并类消息组中,将具有相同所述分组属性信息的所述目标业务消息数据划分至同一合并小组中,按照所述操作类型的正逆对冲关系,分别将各所述合并小组中的各个所述目标业务消息数据划分至相应的合并类型小组,对各个合并类型小组中具有相同所述去重唯一标识符的相邻所述目标业务消息数据进行去重,去重后根据合并类型小组中各个所述目标业务消息数据的所述操作类型的正逆性进行对冲处理,获得消息合并结果;
所述目标消息集合获得单元,用于将所述消息去重结果和所述消息合并结果组合为目标消息集合;
所述消息推送单元,用于对所述目标消息集合中的各个所述目标业务消息数据,按照所述消息时间戳进行升序排序,按照排序后的顺序依次将所述目标消息集合中的各个所述目标业务消息数据推送到目标业务处理队列中。
一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的消息数据处理方法。
一种电子设备,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述任一项所述的消息数据处理方法。
借由上述技术方案,本发明提供的一种消息数据处理方法、装置、存储介质及电子设备,按照预设时间间隔从指定消息队列中获取预设数量的目标业务消息数据,其中,目标业务消息数据包括消息数据属性信息,消息数据属性信息包括目标业务消息数据的操作类型、消息标识、消息时间戳、分组属性信息和去重唯一标识符;依据目标业务消息数据的操作类型,确定目标业务消息数据的消息属性类别,将消息属性类别为去重类的各个目标业务消息数据划分至去重类消息组,将消息属性类型为合并类的各个目标业务消息数据划分至合并类消息组;在去重类消息组中,将具有相同分组属性信息的目标业务消息数据划分至同一去重小组中,分别对各去重小组中具有相同去重唯一标识符的各个目标业务消息数据进行去重,保留消息时间戳最早的目标业务消息数据,获得消息去重结果;在合并类消息组中,将具有相同分组属性信息的目标业务消息数据划分至同一合并小组中,按照操作类型的正逆对冲关系,分别将各合并小组中的各个目标业务消息数据划分至相应的合并类型小组,对各个合并类型小组中具有相同去重唯一标识符的相邻目标业务消息数据进行去重,去重后根据合并类型小组中各个目标业务消息数据的操作类型的正逆性进行对冲处理,获得消息合并结果;将消息去重结果和消息合并结果组合为目标消息集合;对目标消息集合中的各个目标业务消息数据,按照消息时间戳进行升序排序,按照排序后的顺序依次将目标消息集合中的各个目标业务消息数据推送到目标业务处理队列中。本发明采用摘要算法思想进行去重、利用延迟任务队列,以及通过时间戳保序处理,实现对消息数据的去重和合并,从而过滤出有效的消息内容,同时确保业务执行和依赖关系保持不变,进而有助于提升下游业务处理效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种消息数据去重合并处理的架构图;
图2示出了本发明实施例提供的消息数据处理方法的一种实施方式的流程示意图;
图3示出了本发明实施例提供的一种消息数据属性信息的示例图;
图4示出了本发明实施例提供的消息数据去重合并的示例图;
图5示出了本发明实施例提供的消息数据处理方法的另一种实施方式的流程示意图;
图6示出了本发明实施例提供的消息数据处理装置的结构示意图;
图7示出了本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
随着互联网业务的快速发展,各种需求不断涌现,尤其是在大量订阅变更场景,如同步视频内容或监控业务变化时。上游业务通常使用消息中间件(Message Queue,MQ)或监听数据库binlog(MySQL的数据二进制日志)来捕获变化,下游业务则根据这些消息调整逻辑。然而,这些消息可能在短时间内大量重复,导致下游业务反复处理相同数据,影响效率。传统解决方案包括优化下游业务代码以减少处理时间,但面临性能瓶颈;或增加服务实例和线程数量,但这会提高成本,并因业务ID加锁操作延长处理时间。
因此,需要在消息生产者和消费者之间引入一个无感知的中间处理层,以确保处理后的消息结果与原始结果一致,不影响业务流程。此外,还要解决消息之间的依赖关系和顺序问题。这种消息数据的去重和合并处理与传统的原始数据集合去重有本质区别,后者不需要考虑消息对象和数据之间的复杂依赖关系。解决这些问题对于提升下游业务处理效率和降低成本至关重要。
如图1所示为本发明实施例提供的一种消息数据去重合并处理的架构图,本发明为了解决上游和下游业务之间的消息处理效率问题,在两者之间引入了一个中间层处理模块,即变更消息消费端,用于获取并封装消息内容、推入延迟队列、对消息进行分组去重和合并处理、以及将合并后的消息排序并推送给下游业务。该模块对上游和下游业务是透明的,不涉及修改其代码。为了实现高效的消息处理,采用了摘要算法进行去重处理,利用Redis延迟任务队列,以及时间戳保序方法,确保只传递有效的消息内容,且不影响业务执行和依赖关系。处理后的消息按顺序推送给下游业务,显著提升了同步处理效率。这种方法与传统的通过增加下游业务实例和消费线程数量,或优化代码逻辑的方法有本质不同。传统方法在需要加分布式锁时容易导致处理延迟,并在高峰期易出现消息积压问题。而本专利提供的解决方案可以从根本上解决这些问题,提高整体处理效率。
如图2所示,本发明实施例提供的消息数据处理方法的一种实施方式的流程示意图,该方法包括:
S100、按照预设时间间隔从指定消息队列中获取预设数量的目标业务消息数据,其中,目标业务消息数据包括消息数据属性信息,消息数据属性信息包括目标业务消息数据的操作类型、消息标识、消息时间戳、分组属性信息和去重唯一标识符。
其中,消息队列指的是在消息中间件环境中配置的特定队列,用于临时存储和传输消息数据。本发明实施例中指定消息队列可以为RQueue队列,其中,RQueue队列指的是一种通过Redis实现的消息队列模式,利用Redis的列表(list)结构来实现队列。
其中,目标业务消息数据指的是上游生产者推送的消息数据,通常包含与业务相关的信息,如操作指令、状态更新等。目标业务消息数据一般是JSON格式、XML格式的字符串。
其中,消息数据属性信息是与目标业务消息数据本身携带的数据内容相关的附加信息或元数据。如图3所示为本发明实施例提供的一种消息数据属性信息的示例图,可以包括目标业务消息数据的业务类型、业务ID、操作类型、消息标识、消息时间戳、分组属性信息和去重唯一标识符。
其中,操作类型用于指明目标业务消息数据所涉及的具体操作。
可选的,操作类型可以包括新增、修改、审核通过、上线、下线、删除和还原。以视频为例,上线和下线类似对网络用户发布视频和取消发布视频。
其中,消息标识用于唯一标识一条目标业务消息数据,可以是一个唯一的字符串或数字,与业务ID不同,消息标识专注于目标业务消息数据本身在传输过程中的唯一性。
其中,消息时间戳也称为消息接收时间戳,为接收到目标业务消息数据的系统时间戳,用于保持时间顺序或进行时序分析。
其中,分组属性信息(小组ID)用于将多个消息分组在一起的属性信息,通常用于对消息进行批处理或合并操作。例如:具有相同的小组ID的所有目标业务消息数据可以划分至同一小组。目标业务消息数据携带的分组属性信息与其业务类型和业务ID有关。
其中,去重唯一标识符(去重key)为用于消息去重的唯一标识符。目标业务消息数据携带的去重唯一标识符与其业务ID和操作类型有关。
具体的,本发明实施例可以从线程池启动线程,按照预设时间间隔从RQueue队列中拉取预设数量的目标业务消息数据。预设时间间隔和预设数量可以根据具体的业务需求和流量情况进行设置,以避免消息数据处理延迟或去重合并效果不佳的情况发生。
S110、依据目标业务消息数据的操作类型,确定目标业务消息数据的消息属性类别,将消息属性类别为去重类的各个目标业务消息数据划分至去重类消息组,将消息属性类型为合并类的各个目标业务消息数据划分至合并类消息组。
其中,消息属性类别指消息的属性分类,用于帮助处理系统理解如何处理或路由消息。消息属性类别包括去重类和合并类。
具体的,本发明实施例可以预先创建去重类消息组和合并类消息组,依据获取到的目标业务消息数据的操作类型,将不存在正逆对冲关系的操作类型的目标业务消息数据划分至去重类消息组,将存在正逆对冲关系的操作类型的目标业务消息数据划分至合并类消息组。
S120、在去重类消息组中,将具有相同分组属性信息的目标业务消息数据划分至同一去重小组中,分别对各去重小组中具有相同去重唯一标识符的各个目标业务消息数据进行去重,保留消息时间戳最早的目标业务消息数据,获得消息去重结果。
在去重类消息组中的各个目标业务消息数据均为可去重消息,而分组属性信息包含有依据目标业务消息数据的业务类型和业务ID生成的小组ID,小组ID相同则表明这些目标业务消息数据所要操作的业务对象相同,可以将这些目标业务消息数据划分至同一去重小组中。
对于同一去重小组中的各个目标业务消息数据,尽管这些目标业务消息数据所要操作的业务对象相同,但是涉及的具体操作类型可能不同。例如:在去重小组A中存在目标业务消息数据a和目标业务消息数据b,目标业务消息数据a是对业务B进行新增操作,目标业务消息数据b是对业务B进行修改操作。因此,本发明实施例可以以与目标业务消息数据的业务ID和操作类型有关的去重唯一标识符为去重依据,去重唯一标识符相同则表明这些目标业务消息数据是重复操作的可去重消息,在同一去重小组中将去重唯一标识符相同的多个目标业务消息数据进行去重处理,保留消息时间戳最早的目标业务消息数据,丢弃其他目标业务消息数据。在每个去重小组均完成前述去重操作后,整合每个去重小组的去重结果,获得消息去重结果。
需要注意的是,此处以与目标业务消息数据的业务ID和操作类型有关的去重唯一标识符为去重依据,是因为每条目标业务消息数据均存在有一个唯一的消息标识,若以目标业务消息数据的整体消息体内容为去重依据,则程序会将每条目标业务消息数据识别为不同的消息体,去重后每条目标业务消息数据均会保留下来,无法实现去重效果。
S130、在合并类消息组中,将具有相同分组属性信息的目标业务消息数据划分至同一合并小组中,按照操作类型的正逆对冲关系,分别将各合并小组中的各个目标业务消息数据划分至相应的合并类型小组,对各个合并类型小组中具有相同去重唯一标识符的相邻目标业务消息数据进行去重,去重后根据合并类型小组中各个目标业务消息数据的操作类型的正逆性进行对冲处理,获得消息合并结果。
其中,正逆对冲关系指的是在处理业务消息时,根据操作类型的相对关系来抵消或合并某些操作,以简化结果或达到最终的期望状态。正逆对冲关系出现在需要合并或相互抵消的操作中,例如:“增加-减少”、“加入-移除”和“启用-关闭”。
在合并类消息组中的各个目标业务消息数据均为可合并消息,而分组属性信息包含有依据目标业务消息数据的业务类型和业务ID生成的小组ID,小组ID相同则表明这些目标业务消息数据所要操作的业务对象相同,可以将这些目标业务消息数据划分至同一合并小组中。
对于同一合并小组中的各个目标业务消息数据,尽管这些目标业务消息数据所要操作的业务对象相同,但是涉及的具体操作类型的正逆对冲关系可能不同,例如:在合并小组C中存在目标业务消息数据c、目标业务消息数据d、目标业务消息数据e和目标业务消息数据h,目标业务消息数据c是对业务D进行上线操作,目标业务消息数据d是对业务D进行下线操作,目标业务消息数据e是对业务D进行删除操作,目标业务消息数据h是对业务D进行还原操作,此处的目标业务消息数据c和目标业务消息数据d的操作类型存在正逆对冲关系,目标业务消息数据e和目标业务消息数据h的操作类型存在正逆对冲关系。
本发明实施例可以在同一合并小组中,以上线-下线正逆对冲关系创建一个合并类型小组,以删除-还原正逆对冲关系创建另一个合并类型小组。将该同一合并小组中的各个目标业务消息数据分配至相应的合并类型小组中。对于同一合并类型小组,由于原业务可能需要支持幂等性,在合并类型小组中时间戳相邻的两个目标业务消息数据中可能为重复正向或逆向的消息,因此需要在相邻目标业务消息数据之间进行去重,此处去重依然选择以去重唯一标识符为依据,若同一合并类型小组中时间戳相邻的至少两个目标业务消息数据之间的去重唯一标识符相同,则对这些目标业务消息数据进行去重处理,保留消息时间戳最早的目标业务消息数据。去重后根据合并类型小组中各个目标业务消息数据的操作类型的正逆性进行合并(对冲),例如,将一次上线操作抵消一次下线操作,将一次删除操作抵消一次还原操作。合并后剩余的业务操作消息作为该合并类型小组的合并结果。在每个合并小组均完成前述去重和合并操作后,整合每个合并类型小组的合并结果,获得消息合并结果。
S140、将消息去重结果和消息合并结果组合为目标消息集合。
如图4所示为本发明实施例提供的消息数据去重合并的示例图,通过消息数据的去重和合并,能够有效减少下游业务的数据处理量,从而提升下游业务处理效率。
S150、对目标消息集合中的各个目标业务消息数据,按照消息时间戳进行升序排序,按照排序后的顺序依次将目标消息集合中的各个目标业务消息数据推送到目标业务处理队列中。
其中,目标业务处理队列为下游消费者待处理的消息队列。下游消费者接收到目标业务处理队列中的目标业务消息数据后,解析该目标业务消息数据以提取业务类型、业务ID和操作类型,接着根据业务ID调用第三方API接口,以获取完整的业务信息,从而写入下游的业务数据库,或根据需要自行其他业务逻辑处理。
本发明提供的一种消息数据处理方法,该方法包括:按照预设时间间隔从指定消息队列中获取预设数量的目标业务消息数据,其中,目标业务消息数据包括消息数据属性信息,消息数据属性信息包括目标业务消息数据的操作类型、消息标识、消息时间戳、分组属性信息和去重唯一标识符;依据目标业务消息数据的操作类型,确定目标业务消息数据的消息属性类别,将消息属性类别为去重类的各个目标业务消息数据划分至去重类消息组,将消息属性类型为合并类的各个目标业务消息数据划分至合并类消息组;在去重类消息组中,将具有相同分组属性信息的目标业务消息数据划分至同一去重小组中,分别对各去重小组中具有相同去重唯一标识符的各个目标业务消息数据进行去重,保留消息时间戳最早的目标业务消息数据,获得消息去重结果;在合并类消息组中,将具有相同分组属性信息的目标业务消息数据划分至同一合并小组中,按照操作类型的正逆对冲关系,分别将各合并小组中的各个目标业务消息数据划分至相应的合并类型小组,对各个合并类型小组中具有相同去重唯一标识符的相邻目标业务消息数据进行去重,去重后根据合并类型小组中各个目标业务消息数据的操作类型的正逆性进行对冲处理,获得消息合并结果;将消息去重结果和消息合并结果组合为目标消息集合;对目标消息集合中的各个目标业务消息数据,按照消息时间戳进行升序排序,按照排序后的顺序依次将目标消息集合中的各个目标业务消息数据推送到目标业务处理队列中。本发明采用摘要算法思想进行去重、利用延迟任务队列,以及通过时间戳保序处理,实现对消息数据的去重和合并,从而过滤出有效的消息内容,同时确保业务执行和依赖关系保持不变,进而有助于提升下游业务处理效率。
可选的,在上述图2对应的一个或多个实施例的基础上,依据目标业务消息数据的操作类型,确定目标业务消息数据的消息属性类别,具体可以包括:
在目标业务消息数据的操作类型为第一预设操作的情况下,确定目标业务消息数据的消息属性类别为去重类,其中,第一预设操作包括新增、修改和审核通过。在目标业务消息数据的操作类型为第二预设操作的情况下,确定目标业务消息数据消息属性类别为合并类,其中,第二预设操作包括上线、下线、删除和还原。
具体的,本发明实施例可以将操作类型为新增、修改和审核通过的目标业务消息数据的消息属性类别确定为去重类,这意味着在处理这些操作时,需要特别关注重复性,确保在下游处理中不会重复执行相同的操作或重复插入相同的数据。
具体的,本发明实施例可以将操作类型为括上线、下线、删除和还原的目标业务消息数据的消息属性类别确定为合并类,这表明在处理这些操作时,可能需要合并多个相关的消息或操作,以确保最终状态的一致性。例如,快速的上线和下线操作可能需要合并处理,以防止对系统造成不必要的波动。
本发明实施例通过明确的分类和处理策略,系统能够更好地应对并发操作,减少因重复或冲突操作带来的潜在问题,提高整体的可靠性和稳定性,还可以使得用户能够感受到更快速和一致的系统响应,尤其在涉及审批和状态变更的操作时,系统能够提供更为流畅的体验。
可选的,在上述图2对应的一个或多个实施例的基础上,按照操作类型的正逆对冲关系,分别将各合并小组中的各个目标业务消息数据划分至相应的合并类型小组,包括:
将同一合并小组中操作类型为上线或下线的目标业务消息数据划分至第一合并类型小组。
在合并小组内,所有涉及上线或下线的操作被归入第一合并类型小组。这类操作通常涉及资源或服务的状态变更,可能需要合并处理以确保在多个相似请求下,最终只有一个统一的状态。
将同一合并小组中操作类型为删除或还原的目标业务消息数据划分至第二合并类型小组。
在合并小组内,所有涉及删除或还原的操作被划入第二合并类型小组。这类操作涉及资源的存在状态,因此需要特别处理以避免误删或重复还原等问题。
本发明实施例通过通过将不同操作类型分组,可以有效减少不同操作之间的冲突。例如,上线和下线的操作更关注于状态的切换,而删除和还原的操作关注于资源的存在性,将它们分开处理可以减少因操作类型不同带来的复杂性。同时,通过合理的分组和合并策略,可以更好地维护数据的一致性,确保最终的操作结果准确反映业务需求。
可选的,在上述图2对应的一个或多个实施例的基础上,在目标业务消息数据的操作类型为上线或还原时,为目标业务消息数据添加正向标识;在目标业务消息数据的操作类型为下线或删除时,为目标业务消息数据添加负向标识,去重后根据合并类型小组中各个目标业务消息数据的操作类型的正逆性进行对冲处理,具体可以包括:
利用去重后合并类型小组中各个目标业务消息数据携带的正向标识或负向标识,计算合并类型小组的对冲数值;在对冲数值为1时,合并类型小组保留的目标业务消息数据为正向操作类型;在对冲数值为-1时,合并类型小组保留的目标业务消息数据为逆向操作类型;在对冲数值为0时,合并类型小组为空。
本发明实施例通过将消息的操作转化为对冲数值的计算,简化了复杂的决策过程,可以快速判断最终需要执行的操作类型。同时,通过精确的正负向标记和对冲计算,操作的正逆性得以体现,确保系统状态与业务逻辑的一致性。
可选的,本发明实施例提供的消息数据属性信息还包括目标业务消息数据的业务类型和业务ID,基于图2所示方法,如图5所示,本发明实施例提供的消息数据处理方法的另一种实施方式的流程示意图,在步骤S100之前,该方法还可以包括:
S200、监听上游业务生产者在当前时刻推送的原始业务消息数据。
具体的,本发明实施例可以在在变更消息消费端,启动一个线程作为中间介入消费者,用于监听上游业务生产者推送的业务消息数据,确保业务消息数据能够在第一时间被捕获和处理。
S210、解析出原始业务消息数据的业务类型、业务ID、操作类型和消息标识。
其中,业务类型是对目标业务消息数据所属的业务类别的标识,用于区分不同类型的业务。目标业务消息数据的业务类型具体以每个业务系统本身的业务为准,比如媒资管理系统则指的是:视频、合集、播单、明星等等。
其中,业务ID(Business Identifier)是用于唯一标识某个具体业务实体的标识符,即每个业务类型对应的唯一标识ID。例如:当业务类型是视频,则业务ID代表视频ID。当业务类型是合集,则业务ID代表合集ID等。
S220、将当前时刻赋值至原始业务消息数据的消息时间戳。
本发明实施例额可以为业务消息数据打上消息时间戳标记,记录其接收时间,以便进行时间相关的处理或排序。
S230、利用原始业务消息数据的业务ID和操作类型,生成原始业务消息数据的去重唯一标识符。
本发明实施例生成一个去重唯一标识符用于去重处理,确保同一操作类型的重复消息不会被重复处理。
S240、利用原始业务消息数据的业务类型和业务ID,生成原始业务消息数据的缓存唯一标识符。
其中,缓存唯一标识符,是一种用于在缓存系统中唯一标识一条数据记录的标识符,即小组ID。本发明实施例可以对原始业务消息数据的业务类型和业务ID进行拼接,获得原始业务消息数据的缓存唯一标识符。
S250、在指定内存数据库中查询是否存在缓存唯一标识符,如果是,则执行步骤S260,如果否,则执行步骤S270。
S260、将缓存唯一标识符设置为原始业务消息数据的分组属性信息,得到目标业务消息数据。
本发明实施例使用缓存唯一标识符用作业务消息数据的分组属性,以便后续的分组操作。
S270、将缓存唯一标识符存储至指定内存数据库中,执行步骤S260。
本发明实施例设置业务消息数据的消息时间戳、分组属性信息和去重唯一标识符,有助于在后续消息数据处理中快速进行消息数据分组、去重和合并,从而提升了消息数据处理和下游业务处理的效率。
可选的,在上述图5对应的一个或多个实施例的基础上,利用原始业务消息数据的业务ID和操作类型,生成原始业务消息数据的去重唯一标识符,具体可以包括:
拼接目标业务消息数据的业务ID和操作类型的属性名称和属性值,获得业务属性字符串;计算出业务属性字符串的哈希值,并将哈希值确认为目标业务消息数据的去重唯一标识符。
本发明实施例可以将目标业务消息数据的业务ID和操作类型的属性名称和属性值进行排序,并按照排序顺序进行拼接,形成一个包含业务ID和操作类型的属性名称和属性值的有序字符串。例如:基于图2所示消息数据属性信息,其相应的业务属性字符串为“businessld150779920optType1”。接下来,对业务属性字符串使用MD5信息摘要算法进行哈希计算,以生成一个32位固定长度的哈希值。最后,将生成的哈希值设置为该业务消息数据的去重唯一标识符。
本发明实施例通过生成唯一的哈希值作为去重标识符,可以快速判断不同消息之间的重复性,能够在大量数据处理中,快速识别和排除重复的业务消息数据,提高系统的处理效率,同时避免使用业务消息数据的整体消息体内容为去重依据,造成无法去重的问题。
虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。
应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
与上述方法实施例相对应,本发明实施例还提供一种消息数据处理装置,其结构如图6所示,可以包括:目标业务消息数据获取单元10、消息属性类别划分单元20、消息去重结果获得单元30、消息合并结果获得单元40、目标消息集合获得单元50和消息推送单元60。
目标业务消息数据获取单元10,用于按照预设时间间隔从指定消息队列中获取预设数量的目标业务消息数据,其中,目标业务消息数据包括消息数据属性信息,消息数据属性信息包括目标业务消息数据的操作类型、消息标识、消息时间戳、分组属性信息和去重唯一标识符。
消息属性类别划分单元20,用于依据目标业务消息数据的操作类型,确定目标业务消息数据的消息属性类别,将消息属性类别为去重类的各个目标业务消息数据划分至去重类消息组,将消息属性类型为合并类的各个目标业务消息数据划分至合并类消息组。
消息去重结果获得单元30,用于在去重类消息组中,将具有相同分组属性信息的目标业务消息数据划分至同一去重小组中,分别对各去重小组中具有相同去重唯一标识符的各个目标业务消息数据进行去重,保留消息时间戳最早的目标业务消息数据,获得消息去重结果。
消息合并结果获得单元40,用于在合并类消息组中,将具有相同分组属性信息的目标业务消息数据划分至同一合并小组中,按照操作类型的正逆对冲关系,分别将各合并小组中的各个目标业务消息数据划分至相应的合并类型小组,对各个合并类型小组中具有相同去重唯一标识符的相邻目标业务消息数据进行去重,去重后根据合并类型小组中各个目标业务消息数据的操作类型的正逆性进行对冲处理,获得消息合并结果。
目标消息集合获得单元50,用于将消息去重结果和消息合并结果组合为目标消息集合。
消息推送单元60,用于对目标消息集合中的各个目标业务消息数据,按照消息时间戳进行升序排序,按照排序后的顺序依次将目标消息集合中的各个目标业务消息数据推送到目标业务处理队列中。
可选的,操作类型包括新增、修改、审核通过、上线、下线、删除和还原。
可选的,消息属性类别划分单元20,可以具体用于在目标业务消息数据的操作类型为第一预设操作的情况下,确定目标业务消息数据的消息属性类别为去重类,其中,第一预设操作包括新增、修改和审核通过;在目标业务消息数据的操作类型为第二预设操作的情况下,确定目标业务消息数据消息属性类别为合并类,其中,第二预设操作包括上线、下线、删除和还原。
可选的,消息合并结果获得单元40,可以具体用于将同一合并小组中操作类型为上线或下线的目标业务消息数据划分至第一合并类型小组;将同一合并小组中操作类型为删除或还原的目标业务消息数据划分至第二合并类型小组。
可选的,该消息数据处理装置还可以包括标识添加单元。
标识添加单元,用于在目标业务消息数据的操作类型为上线或还原时,为目标业务消息数据添加正向标识;在目标业务消息数据的操作类型为下线或删除时,为目标业务消息数据添加负向标识。
消息合并结果获得单元40,具体可以用于利用去重后合并类型小组中各个目标业务消息数据携带的正向标识或负向标识,计算合并类型小组的对冲数值;在对冲数值为1时,合并类型小组保留的目标业务消息数据为正向操作类型;在对冲数值为-1时,合并类型小组保留的目标业务消息数据为逆向操作类型;在对冲数值为0时,合并类型小组为空。
可选的,本发明实施例提供的消息数据属性信息还包括目标业务消息数据的业务类型和业务ID,该消息数据处理装置还可以包括业务消息数据监听单元、业务消息数据解析单元、消息时间戳赋值单元、去重唯一标识符生成单元、缓存唯一标识符生成单元、缓存唯一标识符查询单元、分组属性信息设置单元和缓存唯一标识符存储单元。
业务消息数据监听单元,用于目标业务消息数据获取单元10按照预设时间间隔从指定消息队列中获取预设数量的目标业务消息数据之前,监听上游业务生产者在当前时刻推送的原始业务消息数据。
业务消息数据解析单元,用于解析出原始业务消息数据的业务类型、业务ID、操作类型和消息标识。
消息时间戳赋值单元,用于将当前时刻赋值至原始业务消息数据的消息时间戳。
去重唯一标识符生成单元,用于利用原始业务消息数据的业务ID和操作类型,生成原始业务消息数据的去重唯一标识符。
缓存唯一标识符生成单元,用于利用原始业务消息数据的业务类型和业务ID,生成原始业务消息数据的缓存唯一标识符。
缓存唯一标识符查询单元,用于在指定内存数据库中查询是否存在缓存唯一标识符,如果是,则触发分组属性信息设置单元,如果否,则触发缓存唯一标识符存储单元。
分组属性信息设置单元,用于将缓存唯一标识符设置为原始业务消息数据的分组属性信息,得到目标业务消息数据。
缓存唯一标识符存储单元,用于将缓存唯一标识符存储至指定内存数据库中,触发分组属性信息设置单元。
可选的,去重唯一标识符生成单元,具体用于拼接目标业务消息数据的业务ID和操作类型的属性名称和属性值,获得业务属性字符串;计算出业务属性字符串的哈希值,并将哈希值确认为目标业务消息数据的去重唯一标识符。
本发明提供的一种消息数据处理装置,该装置用于:按照预设时间间隔从指定消息队列中获取预设数量的目标业务消息数据,其中,目标业务消息数据包括消息数据属性信息,消息数据属性信息包括目标业务消息数据的操作类型、消息标识、消息时间戳、分组属性信息和去重唯一标识符;依据目标业务消息数据的操作类型,确定目标业务消息数据的消息属性类别,将消息属性类别为去重类的各个目标业务消息数据划分至去重类消息组,将消息属性类型为合并类的各个目标业务消息数据划分至合并类消息组;在去重类消息组中,将具有相同分组属性信息的目标业务消息数据划分至同一去重小组中,分别对各去重小组中具有相同去重唯一标识符的各个目标业务消息数据进行去重,保留消息时间戳最早的目标业务消息数据,获得消息去重结果;在合并类消息组中,将具有相同分组属性信息的目标业务消息数据划分至同一合并小组中,按照操作类型的正逆对冲关系,分别将各合并小组中的各个目标业务消息数据划分至相应的合并类型小组,对各个合并类型小组中具有相同去重唯一标识符的相邻目标业务消息数据进行去重,去重后根据合并类型小组中各个目标业务消息数据的操作类型的正逆性进行对冲处理,获得消息合并结果;将消息去重结果和消息合并结果组合为目标消息集合;对目标消息集合中的各个目标业务消息数据,按照消息时间戳进行升序排序,按照排序后的顺序依次将目标消息集合中的各个目标业务消息数据推送到目标业务处理队列中。本发明采用摘要算法思想进行去重、利用延迟任务队列,以及通过时间戳保序处理,实现对消息数据的去重和合并,从而过滤出有效的消息内容,同时确保业务执行和依赖关系保持不变,进而有助于提升下游业务处理效率。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
所述消息数据处理装置包括处理器和存储器,上述目标业务消息数据获取单元10、消息属性类别划分单元20、消息去重结果获得单元30、消息合并结果获得单元40、目标消息集合获得单元50和消息推送单元60等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来采用摘要算法思想进行去重以及通过时间戳保序处理,实现对消息数据的去重和合并,同时确保业务执行和依赖关系保持不变,进而有助于提升下游业务处理效率。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现所述消息数据处理方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述消息数据处理方法。
如图7所示,本发明实施例提供了一种电子设备1000,电子设备1000包括至少一个处理器1001、以及与处理器1001连接的至少一个存储器1002、总线1003;其中,处理器1001、存储器1002通过总线1003完成相互间的通信;处理器1001用于调用存储器1002中的程序指令,以执行上述的消息数据处理方法。本文中的电子设备可以是服务器、PC、PAD、手机等。
本发明还提供了一种计算机程序产品,当在电子设备上执行时,适于执行初始化有消息数据处理方法步骤的程序。
本发明是参照根据本发明实施例的方法、装置、电子设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,电子设备包括一个或多个处理器(CPU)、存储器和总线。电子设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
在本发明的描述中,需要理解的是,如若涉及术语“上”、“下”、“前”、“后”、“左”和“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的位置或元件必须具有特定方位、以特定的方位构成和操作,因此不能理解为本发明的限制。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1.一种消息数据处理方法,其特征在于,包括:
按照预设时间间隔从指定消息队列中获取预设数量的目标业务消息数据,其中,所述目标业务消息数据包括消息数据属性信息,所述消息数据属性信息包括所述目标业务消息数据的操作类型、消息标识、消息时间戳、分组属性信息和去重唯一标识符;
依据所述目标业务消息数据的所述操作类型,确定所述目标业务消息数据的消息属性类别,将所述消息属性类别为去重类的各个所述目标业务消息数据划分至去重类消息组,将所述消息属性类型为合并类的各个所述目标业务消息数据划分至合并类消息组;
在所述去重类消息组中,将具有相同所述分组属性信息的所述目标业务消息数据划分至同一去重小组中,分别对各所述去重小组中具有相同所述去重唯一标识符的各个所述目标业务消息数据进行去重,保留所述消息时间戳最早的所述目标业务消息数据,获得消息去重结果;
在所述合并类消息组中,将具有相同所述分组属性信息的所述目标业务消息数据划分至同一合并小组中,按照所述操作类型的正逆对冲关系,分别将各所述合并小组中的各个所述目标业务消息数据划分至相应的合并类型小组,对各个合并类型小组中具有相同所述去重唯一标识符的相邻所述目标业务消息数据进行去重,去重后根据合并类型小组中各个所述目标业务消息数据的所述操作类型的正逆性进行对冲处理,获得消息合并结果;
将所述消息去重结果和所述消息合并结果组合为目标消息集合;
对所述目标消息集合中的各个所述目标业务消息数据,按照所述消息时间戳进行升序排序,按照排序后的顺序依次将所述目标消息集合中的各个所述目标业务消息数据推送到目标业务处理队列中。
2.根据权利要求1所述的方法,其特征在于,所述操作类型包括新增、修改、审核通过、上线、下线、删除和还原。
3.根据权利要求2所述的方法,其特征在于,所述依据所述目标业务消息数据的所述操作类型,确定所述目标业务消息数据的消息属性类别,包括:
在所述目标业务消息数据的所述操作类型为第一预设操作的情况下,确定所述目标业务消息数据的所述消息属性类别为去重类,其中,所述第一预设操作包括新增、修改和审核通过;
在所述目标业务消息数据的所述操作类型为第二预设操作的情况下,确定所述目标业务消息数据所述消息属性类别为合并类,其中,所述第二预设操作包括上线、下线、删除和还原。
4.根据权利要求2所述的方法,其特征在于,所述按照所述操作类型的正逆对冲关系,分别将各所述合并小组中的各个所述目标业务消息数据划分至相应的合并类型小组,包括:
将同一所述合并小组中所述操作类型为上线或下线的所述目标业务消息数据划分至第一合并类型小组;
将同一所述合并小组中所述操作类型为删除或还原的所述目标业务消息数据划分至第二合并类型小组。
5.根据权利要求2所述的方法,其特征在于,在所述目标业务消息数据的所述操作类型为上线或还原时,为所述目标业务消息数据添加正向标识;在所述目标业务消息数据的所述操作类型为下线或删除时,为所述目标业务消息数据添加负向标识,所述去重后根据合并类型小组中各个所述目标业务消息数据的所述操作类型的正逆性进行对冲处理,包括:
利用去重后合并类型小组中各个所述目标业务消息数据携带的所述正向标识或负向标识,计算合并类型小组的对冲数值;
在所述对冲数值为1时,合并类型小组保留的所述目标业务消息数据为正向操作类型;
在所述对冲数值为-1时,合并类型小组保留的所述目标业务消息数据为逆向操作类型;
在所述对冲数值为0时,合并类型小组为空。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述消息数据属性信息还包括所述目标业务消息数据的业务类型和业务ID,在所述按照预设时间间隔从指定消息队列中获取预设数量的目标业务消息数据之前,所述方法还包括:
监听上游业务生产者在当前时刻推送的所述原始业务消息数据;
解析出所述原始业务消息数据的业务类型、业务ID、操作类型和消息标识;
将所述当前时刻赋值至所述原始业务消息数据的消息时间戳;
利用所述原始业务消息数据的业务ID和操作类型,生成所述原始业务消息数据的去重唯一标识符;
利用所述原始业务消息数据的业务类型和业务ID,生成所述原始业务消息数据的缓存唯一标识符;
在指定内存数据库中查询是否存在所述缓存唯一标识符,如果是,则将所述缓存唯一标识符设置为所述原始业务消息数据的分组属性信息,得到目标业务消息数据,如果否,则将所述缓存唯一标识符存储至所述指定内存数据库中,执行所述将所述缓存唯一标识符设置为所述原始业务消息数据的分组属性信息,得到目标业务消息数据的步骤。
7.根据权利要求6所述的方法,其特征在于,所述利用所述原始业务消息数据的业务ID和操作类型,生成所述原始业务消息数据的去重唯一标识符,包括:
拼接所述目标业务消息数据的业务ID和操作类型的属性名称和属性值,获得业务属性字符串;
计算出所述业务属性字符串的哈希值,并将所述哈希值确认为所述目标业务消息数据的所述去重唯一标识符。
8.一种消息数据处理装置,其特征在于,包括:目标业务消息数据获取单元、消息属性类别划分单元、合并类消息划分单元、消息去重结果获得单元、消息合并结果获得单元、目标消息集合获得单元和消息推送单元,
所述目标业务消息数据获取单元,用于按照预设时间间隔从指定消息队列中获取预设数量的目标业务消息数据,其中,所述目标业务消息数据包括消息数据属性信息,所述消息数据属性信息包括所述目标业务消息数据的操作类型、消息标识、消息时间戳、分组属性信息和去重唯一标识符;
所述消息属性类别划分单元,用于依据所述目标业务消息数据的所述操作类型,确定所述目标业务消息数据的消息属性类别,将所述消息属性类别为去重类的各个所述目标业务消息数据划分至去重类消息组,将所述消息属性类型为合并类的各个所述目标业务消息数据划分至合并类消息组;
所述消息去重结果获得单元,用于在所述去重类消息组中,将具有相同所述分组属性信息的所述目标业务消息数据划分至同一去重小组中,分别对各所述去重小组中具有相同所述去重唯一标识符的各个所述目标业务消息数据进行去重,保留所述消息时间戳最早的所述目标业务消息数据,获得消息去重结果;
所述消息合并结果获得单元,用于在所述合并类消息组中,将具有相同所述分组属性信息的所述目标业务消息数据划分至同一合并小组中,按照所述操作类型的正逆对冲关系,分别将各所述合并小组中的各个所述目标业务消息数据划分至相应的合并类型小组,对各个合并类型小组中具有相同所述去重唯一标识符的相邻所述目标业务消息数据进行去重,去重后根据合并类型小组中各个所述目标业务消息数据的所述操作类型的正逆性进行对冲处理,获得消息合并结果;
所述目标消息集合获得单元,用于将所述消息去重结果和所述消息合并结果组合为目标消息集合;
所述消息推送单元,用于对所述目标消息集合中的各个所述目标业务消息数据,按照所述消息时间戳进行升序排序,按照排序后的顺序依次将所述目标消息集合中的各个所述目标业务消息数据推送到目标业务处理队列中。
9.一种计算机可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的消息数据处理方法。
10.一种电子设备,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1至7中任一项所述的消息数据处理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411827154.8A CN119668900A (zh) | 2024-12-11 | 2024-12-11 | 一种消息数据处理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411827154.8A CN119668900A (zh) | 2024-12-11 | 2024-12-11 | 一种消息数据处理方法、装置、存储介质及电子设备 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN119668900A true CN119668900A (zh) | 2025-03-21 |
Family
ID=94989469
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202411827154.8A Pending CN119668900A (zh) | 2024-12-11 | 2024-12-11 | 一种消息数据处理方法、装置、存储介质及电子设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN119668900A (zh) |
-
2024
- 2024-12-11 CN CN202411827154.8A patent/CN119668900A/zh active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109034993B (zh) | 对账方法、设备、系统及计算机可读存储介质 | |
| CN110928851B (zh) | 处理日志信息的方法、装置、设备及存储介质 | |
| CN114860826B (zh) | 数据同步方法和装置 | |
| CN102968339B (zh) | 基于云计算架构实现复杂事件处理的系统及其方法 | |
| CN111858760B (zh) | 一种异构数据库的数据处理方法及装置 | |
| CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
| CN114610504A (zh) | 消息处理方法、装置、电子设备及存储介质 | |
| CN113626399B (zh) | 数据同步方法、装置、服务器及存储介质 | |
| US10423625B2 (en) | Exactly-once semantics for streaming analytics in non-idempotent output operations | |
| CN110874354A (zh) | 数据库迁移方法及装置、电子设备、存储介质 | |
| CN111459931A (zh) | 数据查重方法和数据查重装置 | |
| CN114138786B (zh) | 一种联机交易消息去重方法、装置、介质、产品和设备 | |
| CN111382180B (zh) | 一种本地缓存的数据清除方法和装置 | |
| CN113868249A (zh) | 一种数据存储方法、装置、计算机设备以及存储介质 | |
| KR20160145250A (ko) | 가상 머지를 지원하는 셔플 내장형 분산 스토리지 시스템 및 그 방법 | |
| CN119668900A (zh) | 一种消息数据处理方法、装置、存储介质及电子设备 | |
| CN119807065A (zh) | 基于仿真环境的服务测试方法、系统、计算设备及介质 | |
| CN111209263A (zh) | 数据存储方法、装置、设备及存储介质 | |
| CN113326268B (zh) | 一种数据写入、读取方法及装置 | |
| CN117950850A (zh) | 一种数据传输方法、装置、电子设备及计算机可读介质 | |
| CN116361349A (zh) | 一种数据处理方法和相关装置 | |
| CN113760836B (zh) | 一种宽表计算方法和装置 | |
| CN115190173A (zh) | 一种网络通信方法、装置、设备及存储介质 | |
| CN115374058A (zh) | 日志数据的归档方法及装置、存储介质、计算机设备 | |
| CN112597119A (zh) | 一种处理日志的生成方法、装置及存储介质 |
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 |