CN112671825A - 一种kafka消息处理方法及系统 - Google Patents
一种kafka消息处理方法及系统 Download PDFInfo
- Publication number
- CN112671825A CN112671825A CN202011341933.9A CN202011341933A CN112671825A CN 112671825 A CN112671825 A CN 112671825A CN 202011341933 A CN202011341933 A CN 202011341933A CN 112671825 A CN112671825 A CN 112671825A
- Authority
- CN
- China
- Prior art keywords
- kafka message
- kafka
- message
- data
- database
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种kafka消息处理方法及系统,该方法包括:接收上游系统发送的携带有ID标识的第一kafka消息,判断第一kafka消息是否对应于上游系统中的第一流程节点;若是,直接消费第一kafka消息;若否,查询归档数据库中是否存在携带有ID标识的kafka消息,若是,按照归档顺序依次消费后再消费第一kafka消息,若否,查询已消费的数据中是否存在ID标识,若是,直接消费第一kafka消息。本发明实施例针对需要顺序处理的、带有过期时间的不可重复消费的数据,提供了可重复消费的解决方案,可以不用区分实时数据和归档数据,实现用一个处理系统进行处理,提高了数据处理效率,节省了人力成本。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种kafka消息处理方法及系统。
背景技术
目前,经常具有两个数据系统中一个为上游系统,一个为下游系统,下游系统的数据处理受到上游系统传输的kafka消息的约束的情况。但是kafka消息是有有效期的,业界针对这种需要顺序处理的可过期的且不可重复消费的数据,主要是(以业务系统为例):接入业务系统前签署的业务单,仍在线下办理,不接入业务系统。但这样一来,就达不到提业务作业效率的目的,同时还会给业务人员增加记录哪些业务单可以在业务系统办理,哪些需要线下办理的麻烦,造成人力成本的浪费。
发明内容
为解决现有技术中的问题,本发明实施例提供一种kafka消息处理方法及系统。
第一方面,本发明实施例提供一种kafka消息处理方法,该方法包括:下游系统接收上游系统发送的第一kafka消息;其中,所述上游系统发送的kafka消息均携带有ID标识,所述ID标识用于区分不同主体的数据,且与所述ID标识对应的主体已接入所述下游系统;判断所述第一kafka消息是否为所述上游系统中的第一流程节点对应的kafka消息;若是,则直接消费所述第一kafka消息;若否,则查询归档数据库中是否存在携带有所述ID标识的kafka消息,若存在,则按照归档顺序依次消费所述归档数据库中存储的所述kafka消息,然后再消费所述第一kafka消息,若不存在,则查询已消费的数据中是否存在所述ID标识,若已消费的数据中存在所述ID标识,则直接消费所述第一kafka消息;其中,所述归档数据库用于存储来自于所述上游系统的未被消费的kafka消息。
进一步地,在所述按照归档顺序依次消费所述归档数据库中存储的所述kafka消息之后,所述方法还包括:将所述归档数据库中存储的所述kafka消息删除。
进一步地,所述方法还包括:若所述已消费的数据中不存在所述ID标识,则丢弃所述第一kafka消息。
进一步地,在所述ID标识对应的主体接入所述下游系统之前,所述方法还包括:所述下游系统接收所述上游系统发送的第二kafka消息,所述第二kafka消息携带有所述ID标识;判断所述第二kafka消息是否为所述上游系统中的所述第一流程节点对应的kafka消息;若是,则将所述第二kafka消息存储入所述归档数据库;若否,则查询所述归档数据库中是否存在携带有所述ID标识的kafka消息,若是,则将所述第二kafka消息存储入所述归档数据库。
进一步地,所述方法还包括:若所述归档数据库中不存在携带有所述ID标识的kafka消息,则丢弃所述第二kafka消息。
进一步地,所述上游系统为合同系统,所述下游系统为交易系统,所述第一流程节点为签署合同节点。
进一步地,所述ID标识包括城市标识。
第二方面,本发明实施例提供一种kafka消息处理系统,该系统包括:消息接收模块,用于:接收上游系统发送的第一kafka消息;其中,所述上游系统发送的kafka消息均携带有ID标识,所述ID标识用于区分不同主体的数据,且与所述ID标识对应的主体已接入所述kafka消息处理系统;消息处理模块,用于:判断所述第一kafka消息是否为所述上游系统中的第一流程节点对应的kafka消息;若是,则直接消费所述第一kafka消息;若否,则查询归档数据库中是否存在携带有所述ID标识的kafka消息,若存在,则按照归档顺序依次消费所述归档数据库中存储的所述kafka消息,然后再消费所述第一kafka消息,若不存在,则查询已消费的数据中是否存在所述ID标识,若已消费的数据中存在所述ID标识,则直接消费所述第一kafka消息;其中,所述归档数据库用于存储来自于所述上游系统的未被消费的kafka消息。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的kafka消息处理方法及系统,通过将上游系统发送的kafka数据在下游系统的归档数据库中预先存储,在相应主体接入下游系统后再顺次取出消费,针对需要顺序处理的、带有过期时间的不可重复消费的数据,提供了一种可重复消费的解决方案,并且可以不用区分实时数据和归档数据,实现用一个处理系统进行处理,提高了数据处理效率,节省了人力成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的kafka消息处理方法流程图;
图2是本发明一实施例提供的kafka消息处理方法中交易系统拓城前的处理流程图;
图3是本发明一实施例提供的kafka消息处理方法中交易系统拓城后的处理流程图;
图4是本发明一实施例提供的kafka消息处理系统的结构示意图;
图5示例了一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明一实施例提供的kafka消息处理方法流程图。如图1所示,所述方法包括:
步骤101、下游系统接收上游系统发送的第一kafka消息;其中,所述上游系统发送的kafka消息均携带有ID标识,所述ID标识用于区分不同主体的数据,且与所述ID标识对应的主体已接入所述下游系统。
下游系统接收上游系统发送的第一kafka消息,所述第一kafka消息携带有ID标识,所述ID标识用于区分不同主体的数据;其中,与所述ID标识对应的主体已接入所述下游系统。其中,如何区分不同主体可根据下游系统中的设置情况及实际需求而定。所述与所述ID标识对应的主体已接入所述下游系统是指与所述ID标识对应的主体的数据已实现利用所述下游系统的流程节点进行处理。所述第一kafka消息是与所述ID标识对应的主体接入所述下游系统后、下游系统所接收的对应于相应主体的kafka消息。
步骤102、判断所述第一kafka消息是否为所述上游系统中的第一流程节点对应的kafka消息;若是,则直接消费所述第一kafka消息;若否,则查询归档数据库中是否存在携带有所述ID标识的kafka消息,若存在,则按照归档顺序依次消费所述归档数据库中存储的所述kafka消息,然后再消费所述第一kafka消息,若不存在,则查询已消费的数据中是否存在所述ID标识,若已消费的数据中存在所述ID标识,则直接消费所述第一kafka消息;其中,所述归档数据库用于存储来自于所述上游系统的未被消费的kafka消息。
判断所述第一kafka消息是否为所述上游系统中的第一流程节点对应的kafka消息。所述上游系统对于数据的数据处理过程由不同的流程节点构成。所述第一流程节点是指上游系统处理数据的第一个流程节点,也即数据处理的第一步。若所述第一kafka消息为所述上游系统中的第一流程节点对应的kafka消息,则直接消费所述第一kafka消息。因为,此时主体已接入下游系统,这时上游系统的kafka消息也是对应第一流程节点的,则可以直接消费第一kafka消息进行相应的处理即可。
若所述第一kafka消息不是所述上游系统中的第一流程节点对应的kafka消息,则查询归档数据库中是否存在携带有所述ID标识的kafka消息,其中,所述归档数据库用于存储来自于所述上游系统的未被消费的kafka消息。若归档数据库中存在携带有所述ID标识的kafka消息,说明在主体接入下游系统之前,已在下游系统的归档数据库中存储了相应主体的kafka消息,这些kafka消息尚未被消费,即还未按照下游系统的处理流程进行处理。这时,需要按照归档顺序依次消费所述归档数据库中存储的所述kafka消息,然后再消费第一kafka消息。若所述归档数据库中不存在携带有所述ID标识的kafka消息,则查询已消费的数据中是否存在所述ID标识。已消费的数据中存在所述ID标识表示相应主体已接入下游系统,且已按照下游系统的处理流程进行了相应处理。因此,若已消费的数据中存在所述ID标识则直接消费所述第一kafka消息,从而继续相应的流程处理。
本发明实施例通过将上游系统发送的kafka数据在下游系统的归档数据库中预先存储,在相应主体接入下游系统后再顺次取出消费,针对需要顺序处理的、带有过期时间的不可重复消费的数据,提供了一种可重复消费的解决方案,并且可以不用区分实时数据和归档数据,实现用一个处理系统进行处理,提高了数据处理效率,节省了人力成本。
进一步地,基于上述实施例,在所述按照归档顺序依次消费所述归档数据库中存储的所述kafka消息之后,所述方法还包括:将所述归档数据库中存储的所述kafka消息删除。
在所述按照归档顺序依次消费所述归档数据库中存储的所述kafka消息之后,将所述归档数据库中存储的所述kafka消息删除。由此,在后续再接收到上游系统发送的kafka消息后,在归档数据库中将查不到具有相应ID标识的kafka消息,无需再重复消费之前消费过的数据,避免了系统资源的浪费,提高了数据处理效率。
在上述实施例的基础上,本发明实施例通过在按照归档顺序依次消费归档数据库中存储的所述kafka消息之后,将归档数据库中存储的kafka消息删除,有利于节省系统资源,提高数据处理效率。
进一步地,基于上述实施例,所述方法还包括:若所述已消费的数据中不存在所述ID标识,则丢弃所述第一kafka消息。
下游系统接收上游系统发送的第一kafka消息后,若所述第一kafka消息不为所述上游系统中的第一流程节点对应的kafka消息,归档数据库中也不存在携带有所述ID标识的kafka消息,且所述已消费的数据中也不存在所述ID标识,因此,所述第一kafka消息是没有源头可循的,所述第一kafka消息有可能是错误消息,为保证数据处理的可靠性,丢弃所述第一kafka消息。
在上述实施例的基础上,本发明实施例通过在已消费的数据中不存在相应的ID标识时,则丢弃相应的第一kafka消息,从而提高了数据处理的可靠性。
进一步地,基于上述实施例,在所述ID标识对应的主体接入所述下游系统之前,所述方法还包括:所述下游系统接收所述上游系统发送的第二kafka消息,所述第二kafka消息携带有所述ID标识;判断所述第二kafka消息是否为所述上游系统中的所述第一流程节点对应的kafka消息;若是,则将所述第二kafka消息存储入所述归档数据库;若否,则查询所述归档数据库中是否存在携带有所述ID标识的kafka消息,若是,则将所述第二kafka消息存储入所述归档数据库。
在所述ID标识对应的主体接入所述下游系统之前,若所述下游系统接收到所述上游系统发送的第二kafka消息,判断所述第二kafka消息是否为所述上游系统中的所述第一流程节点对应的kafka消息。其中,第二kafka消息是指所述ID标识对应的主体接入所述下游系统之前、所述下游系统所接收的与所述主体对应的kafka消息。所述第二kafka消息也携带有所述用于区分不同主体的ID标识。若判断获知第二kafka消息是所述上游系统中的所述第一流程节点对应的kafka消息,则将所述第二kafka消息存储入所述归档数据库,即开始进行归档处理。若判断获知第二kafka消息不是所述上游系统中的所述第一流程节点对应的kafka消息,则进一步查询所述归档数据库中是否存在携带有所述ID标识的kafka消息。若所述归档数据库中存在携带有所述ID标识的kafka消息,说明归档数据库中已经存储有与所述主体对应的kafka消息,则将所述第二kafka消息存储入所述归档数据库,继续追加存储。
在上述实施例的基础上,本发明实施例通过在主体接入下游系统前,在下游系统的归档数据库中存储相应主体的kafka消息,为重复消费存储的kafka消息提供了前提。
进一步地,基于上述实施例,所述方法还包括:若所述归档数据库中不存在携带有所述ID标识的kafka消息,则丢弃所述第二kafka消息。
在所述下游系统接收到所述上游系统发送的第二kafka消息后,若所述第二kafka消息不是所述上游系统中的所述第一流程节点对应的kafka消息,归档数据库中也不存在携带有所述ID标识的kafka消息,所述第二kafka消息有可能是错误消息,为保证数据处理的可靠性,丢弃所述第二kafka消息。
在上述实施例的基础上,本发明实施例通过在归档数据库中不存在携带有相应ID标识的第二kafka消息时,则丢弃相应主体的第二kafka消息,进一步提高了数据处理的可靠性。
进一步地,基于上述实施例,所述上游系统为合同系统,所述下游系统为交易系统,所述第一流程节点为签署合同节点。
进一步地,基于上述实施例,所述ID标识包括城市标识。
在将某个城市接入交易系统之前,对应于这个城市,交易系统接收合同系统发送的第二kafka消息,所述第二kafka消息携带有所述ID标识,所述ID标识包括城市标识,如所述ID标识可以为城市编码,用于区分不同城市的数据。交易系统可以包含不同城市的数据,如对不用城市的房产交易数据进行评估、解抵押、银行面签、银行贷款、银行放款、过户、物业交割、户口交割等复杂流程的操作。随着交易系统应用范围的逐步扩大,在拓城后,相应的城市会接入交易系统,实现利用交易系统进行房产交易的线上处理。所述第二kafka消息是拓城前所接收的相应城市的kafka消息。
判断所述第二kafka消息是否为所述合同系统中的签署合同节点对应的kafka消息;若是,则将所述第二kafka消息存储入所述归档数据库;若否,则查询所述归档数据库中是否存在携带有所述ID标识的kafka消息,若是,则将所述第二kafka消息存储入所述归档数据库。
在将某个城市接入交易系统之后,对应于这个城市,交易系统接收合同系统发送的第一kafka消息,所述第一kafka消息携带有ID标识,所述ID标识用于区分不同城市的数据;其中,与所述ID标识对应的城市已接入交易系统;判断所述第一kafka消息是否为合同系统中的签署合同节点对应的kafka消息;若是,则直接消费所述第一kafka消息;若否,则查询归档数据库中是否存在携带有所述ID标识的kafka消息,若是,则按照归档顺序依次消费所述归档数据库中存储的所述kafka消息,比如,根据已存储的签署合同节点对应的kafka消息执行交易流程新建,根据已存储的合同变更kafka消息进行相应内容的修改等,若否,则查询已消费的数据中是否存在所述ID标识,若是,则直接消费所述第一kafka消息;其中,所述归档数据库用于存储来自于合同系统的未被消费的kafka消息。
在上述实施例的基础上,本发明实施例通过将上游系统设为合同系统,将下游系统设为交易系统,将第一流程节点定义为签署合同节点,令ID标识包括城市标识,可以实现交易系统拓城前后相应城市在途单的线上处理,并且不需区分归档数据和实时数据,提高了房产交易的数据处理效率,节省了人力成本。
图2是本发明一实施例提供的kafka消息处理方法中交易系统拓城前的处理流程图。图3是本发明一实施例提供的kafka消息处理方法中交易系统拓城后的处理流程图。下面结合图2和图3进一步详细介绍本发明实施例提供的kafka消息处理方法的流程。
本发明实施例提供的kafka消息处理方法的具体步骤如下:
1、接收未开城城市数据,并归档,且从签署合同开始进行归档。
1)交易系统接收来自合同系统的全部合同操作的kafka消息。
2)交易系统收到kafka消息后,会查一下该消息是否可正常消费,如果可正常消费会直接消费;如果不能消费,则将kafka消息存入交易系统的数据库中归档。
交易系统归档操作如图2所示,交易系统接收带有合同编号的合同系统发送的kafka消息,判断kafka消息是否为合同签署对应的消息,若是,直接进行交易系统归档;若否,则查看归档信息是否有该合同编号,若有,则将kafka消息归档,否则,丢弃消息。
2、拓城后,可以根据合同数据状态,优先去归档数据中找出该城市未被消费的数据,并按照归档顺序依次执行,以保证数据的有序性。
1)拓城后,接到合同系统的kafka消息后,先去归档数据中查一下该合同编码数据;如果查到,则说明该数据为拓城前的在途单,需要按照数据归档顺序依次取出消费掉,消费完毕后,从归档数据中删除。
2)如果归档数据中,未查到,则按照交易流程实际状况处理交易流程。
3、为了保证代码层面上的逻辑处理一致,不区分归档数据和实时处理数据,需要根据交易单信息,先查一下归档数据,依次触发归档数据再次处理模式后,当无归档数据后,再直接处理该实时数据,以保证合同数据可以按照顺序依次执行。从而实现用通用的数据处理模式,来解决合同数据无法按照生产顺序执行的问题。
具体执行流程如图3所示,交易系统接收带有合同编号的合同系统发送的kafka消息,判断kafka消息是否是对应于合同签署节点的kafka消息,若是,则直接消费数据;若否,则查询归档数据是否具有该合同编号,若有,则按照归档先后顺序消费数据。若归档数据无该合同编号,则进一步判断交易系统中已消费数据中是否具有该合同编号,若有,则直接消费数据,若无,则丢弃消息,不处理,转由业务跟进。
本发明实施例通过统一的数据处理器,可以将合同系统的数据统一处理,无需针对拓城前的在途单和拓城后的新交易单做特殊处理。
本发明实施例提供的kafka消息处理方法中,包括以下技术点:
1)接收未开城城市数据,并归档,且从签署合同开始进行归档
2)拓城后,可以根据合同数据状态,优先去归档数据中找出该城市未被消费的数据,并按照归档顺序依次执行,以保证数据的有序性
3)为了保证代码层面上的逻辑处理一致,不区分归档数据和实时处理数据,需要根据交易单信息,先查一下归档数据,依次触发归档数据再次处理模式后,当无归档数据后,再直接处理该实时数据,以保证合同数据可以按照顺序依次执行。从而实现用通用的数据处理模式,来解决合同数据无法按照生产顺序执行的问题。
图4是本发明一实施例提供的kafka消息处理系统的结构示意图。如图4所示,所述系统包括消息接收模块10和消息处理模块20,其中:消息接收模块10用于:接收上游系统发送的第一kafka消息;其中,所述上游系统发送的kafka消息均携带有ID标识,所述ID标识用于区分不同主体的数据,且与所述ID标识对应的主体已接入所述kafka消息处理系统;消息处理模块20用于:判断所述第一kafka消息是否为所述上游系统中的第一流程节点对应的kafka消息;若是,则直接消费所述第一kafka消息;若否,则查询归档数据库中是否存在携带有所述ID标识的kafka消息,若存在,则按照归档顺序依次消费所述归档数据库中存储的所述kafka消息,然后再消费所述第一kafka消息,若不存在,则查询已消费的数据中是否存在所述ID标识,若已消费的数据中存在所述ID标识,则直接消费所述第一kafka消息;其中,所述归档数据库用于存储来自于所述上游系统的未被消费的kafka消息。
本发明实施例通过将上游系统发送的kafka数据在下游系统的归档数据库中预先存储,在相应主体接入下游系统后再顺次取出消费,针对需要顺序处理的、带有过期时间的不可重复消费的数据,提供了一种可重复消费的解决方案,并且可以不用区分实时数据和归档数据,实现用一个处理系统进行处理,提高了数据处理效率,节省了人力成本。
进一步地,基于上述实施例,在所述按照归档顺序依次消费所述归档数据库中存储的所述kafka消息之后,所述消息处理模块20还用于:将所述归档数据库中存储的所述kafka消息删除。
在上述实施例的基础上,本发明实施例通过在按照归档顺序依次消费归档数据库中存储的所述kafka消息之后,将归档数据库中存储的kafka消息删除,有利于节省系统资源,提高数据处理效率。
进一步地,基于上述实施例,所述消息处理模块20还用于:若所述已消费的数据中不存在所述ID标识,则丢弃所述第一kafka消息。
在上述实施例的基础上,本发明实施例通过在已消费的数据中不存在相应的ID标识时,则丢弃相应的第一kafka消息,从而提高了数据处理的可靠性。
进一步地,基于上述实施例,在所述ID标识对应的主体接入所述下游系统之前,消息接收模块10还用于接收所述上游系统发送的第二kafka消息,所述第二kafka消息携带有所述ID标识。消息处理模块20还用于判断所述第二kafka消息是否为所述上游系统中的所述第一流程节点对应的kafka消息;若是,则将所述第二kafka消息存储入所述归档数据库;若否,则查询所述归档数据库中是否存在携带有所述ID标识的kafka消息,若是,则将所述第二kafka消息存储入所述归档数据库。
在上述实施例的基础上,本发明实施例通过在主体接入下游系统前,在下游系统的归档数据库中存储相应主体的kafka消息,为重复消费存储的kafka消息提供了前提。
进一步地,基于上述实施例,消息处理模块20还用于若所述归档数据库中不存在携带有所述ID标识的kafka消息,则丢弃所述第二kafka消息。
在上述实施例的基础上,本发明实施例通过在归档数据库中不存在携带有相应ID标识的第二kafka消息时,则丢弃相应主体的第二kafka消息,进一步提高了数据处理的可靠性。
进一步地,基于上述实施例,所述上游系统为合同系统,所述下游系统为交易系统,所述第一流程节点为签署合同节点。
进一步地,基于上述实施例,所述ID标识包括城市标识。
在上述实施例的基础上,本发明实施例通过将上游系统设为合同系统,将下游系统设为交易系统,将第一流程节点定义为签署合同节点,令ID标识包括城市标识,可以实现交易系统拓城前后相应城市在途单的线上处理,并且不需区分归档数据和实时数据,提高了房产交易的数据处理效率,节省了人力成本。
本发明实施例提供的系统是用于上述方法的,具体功能可参照上述方法流程,此处不再赘述。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行kafka消息处理方法,该方法包括:下游系统接收上游系统发送的第一kafka消息;其中,所述上游系统发送的kafka消息均携带有ID标识,所述ID标识用于区分不同主体的数据,且与所述ID标识对应的主体已接入所述下游系统;判断所述第一kafka消息是否为所述上游系统中的第一流程节点对应的kafka消息;若是,则直接消费所述第一kafka消息;若否,则查询归档数据库中是否存在携带有所述ID标识的kafka消息,若存在,则按照归档顺序依次消费所述归档数据库中存储的所述kafka消息,然后再消费所述第一kafka消息,若不存在,则查询已消费的数据中是否存在所述ID标识,若已消费的数据中存在所述ID标识,则直接消费所述第一kafka消息;其中,所述归档数据库用于存储来自于所述上游系统的未被消费的kafka消息。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的kafka消息处理方法,该方法包括:下游系统接收上游系统发送的第一kafka消息;其中,所述上游系统发送的kafka消息均携带有ID标识,所述ID标识用于区分不同主体的数据,且与所述ID标识对应的主体已接入所述下游系统;判断所述第一kafka消息是否为所述上游系统中的第一流程节点对应的kafka消息;若是,则直接消费所述第一kafka消息;若否,则查询归档数据库中是否存在携带有所述ID标识的kafka消息,若存在,则按照归档顺序依次消费所述归档数据库中存储的所述kafka消息,然后再消费所述第一kafka消息,若不存在,则查询已消费的数据中是否存在所述ID标识,若已消费的数据中存在所述ID标识,则直接消费所述第一kafka消息;其中,所述归档数据库用于存储来自于所述上游系统的未被消费的kafka消息。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的kafka消息处理方法,该方法包括:下游系统接收上游系统发送的第一kafka消息;其中,所述上游系统发送的kafka消息均携带有ID标识,所述ID标识用于区分不同主体的数据,且与所述ID标识对应的主体已接入所述下游系统;判断所述第一kafka消息是否为所述上游系统中的第一流程节点对应的kafka消息;若是,则直接消费所述第一kafka消息;若否,则查询归档数据库中是否存在携带有所述ID标识的kafka消息,若存在,则按照归档顺序依次消费所述归档数据库中存储的所述kafka消息,然后再消费所述第一kafka消息,若不存在,则查询已消费的数据中是否存在所述ID标识,若已消费的数据中存在所述ID标识,则直接消费所述第一kafka消息;其中,所述归档数据库用于存储来自于所述上游系统的未被消费的kafka消息。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种kafka消息处理方法,其特征在于,包括:
下游系统接收上游系统发送的第一kafka消息;其中,所述上游系统发送的kafka消息均携带有ID标识,所述ID标识用于区分不同主体的数据,且与所述ID标识对应的主体已接入所述下游系统;
判断所述第一kafka消息是否为所述上游系统中的第一流程节点对应的kafka消息;若是,则直接消费所述第一kafka消息;若否,则查询归档数据库中是否存在携带有所述ID标识的kafka消息,若存在,则按照归档顺序依次消费所述归档数据库中存储的所述kafka消息,然后再消费所述第一kafka消息,若不存在,则查询已消费的数据中是否存在所述ID标识,若已消费的数据中存在所述ID标识,则直接消费所述第一kafka消息;其中,所述归档数据库用于存储来自于所述上游系统的未被消费的kafka消息。
2.根据权利要求1所述的kafka消息处理方法,其特征在于,在所述按照归档顺序依次消费所述归档数据库中存储的所述kafka消息之后,所述方法还包括:将所述归档数据库中存储的所述kafka消息删除。
3.根据权利要求1所述的kafka消息处理方法,其特征在于,所述方法还包括:
若所述已消费的数据中不存在所述ID标识,则丢弃所述第一kafka消息。
4.根据权利要求1所述的kafka消息处理方法,其特征在于,在所述ID标识对应的主体接入所述下游系统之前,所述方法还包括:
所述下游系统接收所述上游系统发送的第二kafka消息,所述第二kafka消息携带有所述ID标识;
判断所述第二kafka消息是否为所述上游系统中的所述第一流程节点对应的kafka消息;若是,则将所述第二kafka消息存储入所述归档数据库;若否,则查询所述归档数据库中是否存在携带有所述ID标识的kafka消息,若是,则将所述第二kafka消息存储入所述归档数据库。
5.根据权利要求4所述的kafka消息处理方法,其特征在于,所述方法还包括:
若所述归档数据库中不存在携带有所述ID标识的kafka消息,则丢弃所述第二kafka消息。
6.根据权利要求1所述的kafka消息处理方法,其特征在于,所述上游系统为合同系统,所述下游系统为交易系统,所述第一流程节点为签署合同节点。
7.根据权利要求5所述的kafka消息处理方法,其特征在于,所述ID标识包括城市标识。
8.一种kafka消息处理系统,其特征在于,包括:
消息接收模块,用于:接收上游系统发送的第一kafka消息;其中,所述上游系统发送的kafka消息均携带有ID标识,所述ID标识用于区分不同主体的数据,且与所述ID标识对应的主体已接入所述kafka消息处理系统;
消息处理模块,用于:判断所述第一kafka消息是否为所述上游系统中的第一流程节点对应的kafka消息;若是,则直接消费所述第一kafka消息;若否,则查询归档数据库中是否存在携带有所述ID标识的kafka消息,若存在,则按照归档顺序依次消费所述归档数据库中存储的所述kafka消息,然后再消费所述第一kafka消息,若不存在,则查询已消费的数据中是否存在所述ID标识,若已消费的数据中存在所述ID标识,则直接消费所述第一kafka消息;其中,所述归档数据库用于存储来自于所述上游系统的未被消费的kafka消息。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述kafka消息处理方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述kafka消息处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011341933.9A CN112671825B (zh) | 2020-11-24 | 2020-11-24 | 一种kafka消息处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011341933.9A CN112671825B (zh) | 2020-11-24 | 2020-11-24 | 一种kafka消息处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112671825A true CN112671825A (zh) | 2021-04-16 |
CN112671825B CN112671825B (zh) | 2022-08-16 |
Family
ID=75403677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011341933.9A Active CN112671825B (zh) | 2020-11-24 | 2020-11-24 | 一种kafka消息处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112671825B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109493076A (zh) * | 2018-11-09 | 2019-03-19 | 武汉斗鱼网络科技有限公司 | 一种Kafka消息唯一消费方法、系统、服务器及存储介质 |
CN110737710A (zh) * | 2019-10-14 | 2020-01-31 | 神州数码融信软件有限公司 | 分布式数据自动结构化入库方法及系统 |
CN110908956A (zh) * | 2019-11-19 | 2020-03-24 | 许继集团有限公司 | 一种保信主站系统及其故障信息归档方法 |
CN111314422A (zh) * | 2020-01-17 | 2020-06-19 | 平安医疗健康管理股份有限公司 | 基于kafka的消息处理方法、系统、存储介质及计算机设备 |
-
2020
- 2020-11-24 CN CN202011341933.9A patent/CN112671825B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109493076A (zh) * | 2018-11-09 | 2019-03-19 | 武汉斗鱼网络科技有限公司 | 一种Kafka消息唯一消费方法、系统、服务器及存储介质 |
CN110737710A (zh) * | 2019-10-14 | 2020-01-31 | 神州数码融信软件有限公司 | 分布式数据自动结构化入库方法及系统 |
CN110908956A (zh) * | 2019-11-19 | 2020-03-24 | 许继集团有限公司 | 一种保信主站系统及其故障信息归档方法 |
CN111314422A (zh) * | 2020-01-17 | 2020-06-19 | 平安医疗健康管理股份有限公司 | 基于kafka的消息处理方法、系统、存储介质及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112671825B (zh) | 2022-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111667267B (zh) | 一种区块链交易风险识别方法及装置 | |
CN111262868B (zh) | 一种基于智能网卡的消息发送方法以及接收方法 | |
CN110347593B (zh) | 流程测试方法及装置 | |
CN111124917B (zh) | 公共测试用例的管控方法、装置、设备及存储介质 | |
CN110363663B (zh) | 基于区块链的数据批量处理方法、装置、设备及存储介质 | |
CN111698310B (zh) | 基于swift网络的多测试环境调度方法及装置 | |
CN112671825B (zh) | 一种kafka消息处理方法及系统 | |
CN111831682B (zh) | 处理公积金业务的方法、装置、设备和计算机可读介质 | |
CN112969198A (zh) | 数据传输方法、终端及存储介质 | |
CN112433757A (zh) | 一种确定接口调用关系的方法和装置 | |
CN111475388A (zh) | 数据推送的测试方法、装置、计算机设备及存储介质 | |
CN115858345A (zh) | 应用服务模块的校验方法、装置、电子设备和存储介质 | |
CN115242839A (zh) | 物联网级联数据传输方法、装置、电子设备和存储介质 | |
CN114186976A (zh) | 工作流程流转方法、装置、计算机设备及存储介质 | |
CN110266610B (zh) | 流量识别方法、装置、电子设备 | |
CN115529271B (zh) | 业务请求分发方法、装置、设备及介质 | |
CN112651772B (zh) | 事件触达方法、装置、设备和存储介质 | |
CN117131071B (zh) | 一种数据处理方法、装置、电子设备及计算机可读介质 | |
CN114924806B (zh) | 一种配置信息的动态同步方法、装置、设备及介质 | |
CN111581446B (zh) | 一种图关系生成方法、装置、系统、设备及存储介质 | |
CN109547290B (zh) | 云平台垃圾数据检测处理方法、装置、设备及存储介质 | |
CN111967960A (zh) | 账户数据的批量调整方法及装置 | |
CN109656519B (zh) | 一种业务数据自动化接入方法和装置 | |
CN114996242A (zh) | 一种数据处理方法及装置 | |
CN115187336A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |