一种检查核对消费系统消费消息的方法、装置及设备与流程
未命名
08-07
阅读:124
评论:0

1.本发明涉及软件开发领域,尤其涉及一种检查核对消费系统消费消息的方法、装置及设备。
背景技术:
2.消息中间件适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。
3.消息中间件在拥有解耦、削峰等优势的同时带来了一些不可避免的劣势,比如系统稳定性降低、分布式一致性、消息重复消费、消息丢失、消息传递顺序不能保证、多个系统消费存在部分成功部分失败、数据不一致等问题。为了保证数据消费的一致性,需要核对消费条数和业务处理条数,目前往往都是在相关人员提出问题后基于日志和业务单号进行一个补救的排查,所以需要一种核对方案来代替人工排查。
4.评价核对机制方案的优劣,主要依据该方案是否可以及时主动的发现问题,并在发现问题后方便快捷的使用告警信息进行后续的排查和重新消费等补救措施。常规的核对方案存在如下缺点:
5.1、存在问题排查人员在接到相关问题后,需要的日志已经被删除,无法定位的可能;
6.2、不支持定期化、例行化的核对行为;
7.3、不支持消息丢失主动告警功能,只有被动的补救行排查,被动补救存在一定的滞后性;
8.4、未记录已消费到消息的元数据相关信息(偏移量、分区等),在发现问题时无法快速的进行相关消息重新消费等补救措施;
9.5、不支持基于现有日志信息做一些基础的统计分析工作。
技术实现要素:
10.本发明提供了一种检查核对消费系统消费消息的方法、装置及设备,解决了上述问题。
11.一种检查核对消费系统消费消息的方法,包括:
12.启动消费程序,初始化相关变量,从消息中间件中拉取消息,根据拉取到的所述消息进行业务处理,根据业务处理结果对所述相关变量进行相应计算;
13.判断所述业务处理过程中是否发生异常;
14.若未发生异常,则判断当前检查周期是否结束,若所述当前检查周期未结束,继续从所述消息中间件中拉取消息进行业务处理;
15.若当前检查周期结束,根据所述相关变量判断当前检查周期内处理的消息数量和从所述消息中间件拉取的消息数量的一致性,若不一致则进行告警处理;
16.告警处理完成后,结束当前检查周期,更新所述相关变量并进入下一检查周期。
17.在本发明的一种实施例中,启动消费程序后,所述方法还包括:记录当前检查周期内从消息中间件中拉取到的第一条消息的偏移量作为初始消息偏移量;初始化业务处理条数数组,确定所述业务处理条数数组中每个元素对应的业务场景;所述业务处理条数数组为一维数组;初始化检查计数器;初始化预设的检查周期步长。
18.在本发明的一种实施例中,所述根据业务处理结果对所述相关变量进行相应计算,具体包括:确定当前处理的消息所属的业务场景,根据当前消息的处理结果累加所述业务处理条数数组中与所述业务场景对应的数组元素的值;累加所述检查计数器。
19.在本发明的一种实施例中,所述根据所述相关变量判断当前检查周期内处理的消息数量和从所述消息中间件拉取的数量的一致性,具体包括:获取当前消息偏移量,计算所述当前消息偏移量与所述初始消息偏移量的偏移量差值;计算所述业务处理条数数组中各个元素值的和,作为当前检查周期内已处理消息累计值;将所述偏移量差值与所述已处理消息累计值进行比较,若二者相等则确定当前检查周期内已处理的消息数量和从所述消息中间件拉取的消息数量一致。
20.在本发明的一种实施例中,所述判断所述业务处理过程中是否发生异常,具体包括:若发生异常,则启动告警处理;将告警信息发送至相关责任人,所述告警信息包括初始消息偏移量、当前消息偏移量和业务处理条数数组;结束当前检查周期,将所述告警信息记录至日志后进入下一检查周期。
21.在本发明的一种实施例中,所述判断当前检查周期是否结束,具体包括:确定当前检查周期中检查计数器的值,将所述检查计数器的值与预设的检查周期步长进行比较;若所述检查计数器的值与所述检查周期步长相等,则确定当前检查周期结束。
22.在本发明的一种实施例中,所述结束当前检查周期,更新相关变量并进入下一检查周期,具体包括:在告警处理结束或在判断当前检查周期内处理的消息数量和从所述消息中间件拉取的消息数量一致时,结束当前检查周期,并将告警信息或与所述告警信息相同的信息记录到日志中;更新初始消息偏移量和当前消息偏移量;将所述业务处理条数数组和所述检查计数器清零;进入下一检查周期。
23.一种检查核对消费系统消费消息的装置,包括:
24.业务处理模块,用于启动消费程序,初始化相关变量,从消息中间件中拉取消息,根据拉取到的所述消息进行业务处理,根据业务处理结果对所述相关变量进行相应计算;
25.判断模块,用于判断所述业务处理过程中是否发生异常;若未发生异常,则判断当前检查周期是否结束,若所述当前检查周期未结束,继续从所述消息中间件中拉取消息进行业务处理;若当前检查周期结束,根据所述相关变量判断当前检查周期内处理的消息数量和从所述消息中间件拉取的消息数量的一致性,若不一致则进行告警处理;
26.更新模块,用于告警处理完成后,结束当前检查周期,更新所述相关变量并进入下一检查周期。
27.一种检查核对消费系统消费消息的设备,包括:
28.至少一个处理器;以及,
29.与所述至少一个处理器通过总线通信连接的存储器;其中,
30.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被执行,以实现:
31.启动消费程序,初始化相关变量,从消息中间件中拉取消息,根据拉取到的所述消息进行业务处理,根据业务处理结果对所述相关变量进行相应计算;
32.判断所述业务处理过程中是否发生异常;
33.若未发生异常,则判断当前检查周期是否结束,若所述当前检查周期未结束,继续从所述消息中间件中拉取消息进行业务处理;
34.若当前检查周期结束,根据所述相关变量判断当前检查周期内处理的消息数量和从所述消息中间件拉取的消息数量的一致性,若不一致则进行告警处理;
35.告警处理完成后,结束当前检查周期,更新所述相关变量并进入下一检查周期。
36.一种非易失性存储介质,存储有计算机可执行指令,所述计算机可执行指令由处理器执行,以实现下述步骤:
37.启动消费程序,初始化相关变量,从消息中间件中拉取消息,根据拉取到的所述消息进行业务处理,根据业务处理结果对所述相关变量进行相应计算;
38.判断所述业务处理过程中是否发生异常;
39.若未发生异常,则判断当前检查周期是否结束,若所述当前检查周期未结束,继续从所述消息中间件中拉取消息进行业务处理;
40.若当前检查周期结束,根据所述相关变量判断当前检查周期内处理的消息数量和从所述消息中间件拉取的消息数量的一致性,若不一致则进行告警处理;
41.告警处理完成后,结束当前检查周期,更新所述相关变量并进入下一检查周期。
42.本发明提供了一种检查核对消费系统消费消息的方法、装置及设备,至少包括以下有益效果:
43.1、主动发现。通过定期主动核对拉取到的消息和业务处理的消息,而非被动等待的方式发现问题可以大大的减少日志被删,无法定位的情况出现,缩短问题出现到排查人员介入中间的时间间隔。
44.2、问题发现时效可控。通过修改检查周期步长steplength可以控制问题发现的时效性,对于时效不敏感的系统可以适当的加大steplength,减少整体检查次数;对于时效敏感的系统可以适当减小steplength,极端情况下steplength为1,即每次消息处理都进行检查。
45.3、记录消息中间件元数据。通过记录消息中间件元数据的方式在发生消息业务处理异常或丢失的情况下为后续的重新消费提供了便捷的基础(消息中间件支持指定偏移量的消费模式)。
46.4、记录业务处理元数据。通过记录业务处理元数据的方式可以定期分段的分析从消息中间件消费到的消息在流经业务处理后的去向分布,可以支持时间维度+业务维度的统计和分析。
47.5、减少日志打印。只有在特殊的时间节点(检查周期结束、消费程序异常等)进行日志打印,可以大大的减少消费程序的日志量,减少磁盘占用和i/o(输入输出)压力。
附图说明
48.此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
49.图1为本发明实施例提供的一种检查核对消费系统消费消息的方法步骤示意图;
50.图2为本发明实施例提供的一种检查核对消费系统消费消息的流程示意图;
51.图3为本发明实施例提供的一种检查核对消费系统消费消息的装置示意图;
52.图4为本发明实施例提供的一种检查核对消费系统消费消息的设备示意图。
具体实施方式
53.为了使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例对本发明进行清楚、完整的描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
54.需要说明的是,本领域普通技术人员显式地和隐式地理解的是,本发明所描述的实施例在不冲突的情况下,可以与其它实施例相结合。除非另作定义,本发明所涉及的技术术语或者科学术语应当为本发明所属技术领域内具有一般技能的人士所理解的通常意义。本发明所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本发明所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;本发明所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
55.目前没有一种方案可以支撑整体性的动态实时核对消费条数和业务处理条数的行为,往往都是在相关人员提出问题后基于日志和业务单号进行一个补救的排查,此种方案并非一种统筹的主动核对方案,此种依赖下游系统上报的排查和定位方式存在一定的数据延迟,在特定的业务场景下此种延迟不被允许。
56.本发明提供了一种检查核对消费系统消费消息的方法、装置及设备,核心点是通过记录消息中间件消息中间件元数据和业务处理元数据加定期(检查周期步长可配置)对比的方式实现主动及时发现消息不相等问题从而通过告警等方式通知到相关责任人,并基于此记录信息可进行简单的统计分析。下面进行具体说明。
57.图1为本发明实施例提供的一种检查核对消费系统消费消息的方法的步骤示意图,可以包括以下步骤:
58.s110:启动消费程序,初始化相关变量,从消息中间件中拉取消息,根据拉取到的消息进行业务处理,根据业务处理结果对相关变量进行相应计算。
59.在本发明的一种实施例中,启动消费程序后,初始化相关变量,具体包括:记录当前检查周期内从消息中间件中拉取到的第一条消息的偏移量作为初始消息偏移量;初始化业务处理条数数组,确定业务处理条数数组中每个元素对应的业务场景;业务处理条数数组为一维数组;初始化检查计数器;初始化预设的检查周期步长。
60.具体地,如图2所示为本发明实施例提供的一种检查核对消费系统消费消息的方案流程图。消费程序启动时记录第一条从消息中间件拉取到消息的初始消息偏移量(initialoffset);初始化业务处理条数数组processedcount[],该业务处理条数数组长度为消费应用处理每条消息所对应的业务场景个数,方便记录当前检查周期(检查周期步长steplength)内每个业务场景对应了多少条消息;确定processedcount[]数组元素之和为当前检查周期内已处理消息累计值(processedsum);确定检查计数器(stepcount)用于
记录当前检查周期内已经迭代处理消息的条数;预设检查周期步长steplength,通过stepcount和steplength进行比较,控制检查周期,支持定期化、例行化的核对行为。
[0061]
在本发明的一种实施例中,根据业务处理结果对相关变量进行相应计算,具体包括:确定当前处理的消息所属的业务场景,根据当前消息的处理结果累加业务处理条数数组中与业务场景对应的数组元素的值;累加检查计数器。
[0062]
具体地,从消息中间件拉取消息并进行对应的业务处理,依据当前消息处理结果及该消息所属业务场景将processedcount[]中对应的数组元素进行累加;每一次业务处理完成后将检查计数器(stepcount)累加。
[0063]
s120:判断业务处理过程中是否发生异常。
[0064]
在本发明的一种实施例中,判断业务处理过程中是否发生异常,具体包括:若发生异常,则启动告警处理;将告警信息发送至相关责任人,告警信息包括初始消息偏移量、当前消息偏移量和业务处理条数数组;结束当前检查周期,将告警信息记录至日志后进入下一检查周期。
[0065]
具体地,在业务处理过程中需判断从消息中间件拉取回来的消息在当前业务处理过程中是否发生异常,如果发生异常,则进行告警处理,将消息中间件元数据(比如initialoffset、currentoffset等)、业务处理元数据(比如processedcount[]、processedsum等)等信息发送到运维及项目组相关工作人员及时介入。
[0066]
通过主动及时告警处理,支持消息丢失主动告警功能,避免了只有被动的补救性排查存在一定的滞后性问题。
[0067]
通过记录消息中间件元数据(比如偏移量、分区等)的方式,在发生消息业务处理异常或丢失的情况下能够快速的进行相关消息重新消费等补救措施,为后续的重新消费提供了便捷的基础(消息中间件支持指定偏移量的消费模式)。
[0068]
通过记录业务处理元数据的方式可以定期分段的分析从消息中间件消费到的消息在流经业务处理后的去向分布,可以支持时间维度和业务维度等维度的统计分析。
[0069]
s130:若未发生异常,则判断当前检查周期是否结束,若当前检查周期未结束,继续从消息中间件中拉取消息进行业务处理。
[0070]
在本发明的一种实施例中,判断当前检查周期是否结束,具体包括:确定当前检查周期中检查计数器的值,将检查计数器的值与预设的检查周期步长进行比较;若检查计数器的值与检查周期步长相等,则确定当前检查周期结束。
[0071]
具体地,如果未发生异常,检查stepcount是否等于steplength,用以判断当前检查周期是否已满。在当前检查周期结束后,需要对当前已处理消息条数和从消息中间件中拉取到的消息进行核对,以确保消息消费过程无误,并将日志进行记录。
[0072]
通过设定检查周期步长steplength定期主动对比而非被动等待的方式发现问题可以大大的减少日志被删,无法定位的情况出现,缩短问题出现到排查人员介入中间的时间间隔。steplength可根据实际需求进行修改,通过修改steplength可以控制问题发现的时效性,对于时效不敏感的系统可以适当的加大steplength,减少整体检查核对次数;对于时效敏感的系统可以适当减小steplength,极端情况下steplength为1,即每次消息在进行业务处理后都进行检查核对。
[0073]
s140:若当前检查周期结束,根据相关变量判断当前检查周期内处理的消息数量
和从消息中间件拉取的消息数量的一致性,若不一致则进行告警处理。
[0074]
在本发明的一种实施例中,根据相关变量判断当前检查周期内处理的消息数量和从消息中间件拉取的数量的一致性,具体包括:获取当前消息偏移量,计算当前消息偏移量与初始消息偏移量的偏移量差值;计算业务处理条数数组中各个元素值的和,作为当前检查周期内已处理消息累计值;将偏移量差值与已处理消息累计值进行比较,若二者相等则确定当前检查周期内已处理的消息数量和从消息中间件拉取的消息数量一致。
[0075]
具体地,检查周期结束之后,将已处理消息累计值processedsum和currentoffset减去initialoffset的差值进行比较,用以判断当前检查周期内每条从消息中间件拉取到的消息是否都已经进行了相应的业务处理。
[0076]
如果确定当前检查周期内处理的消息数量和从消息中间件拉取的消息数量不一致,则进行告警处理,将消息中间件元数据、业务处理元数据等告警信息发送到运维及项目组相关工作人员及时介入。
[0077]
如果确定当前检查周期内处理的消息数量和从消息中间件拉取的消息数量一致,则不进行告警处理,但需将与上述告警信息相同的信息记录至日志。
[0078]
通过只有在特殊的时间节点(当前检查周期结束、消费程序异常等)进行日志记录,避免了每次在业务处理完成后进行日志记录占用的大量资源,大大减少了消费程序的日志量,减轻了磁盘占用和i/o(输入/输出)压力。
[0079]
s150:告警处理完成后,结束当前检查周期,更新相关变量并进入下一检查周期。
[0080]
在本发明的一种实施例中,结束当前检查周期,更新相关变量并进入下一检查周期,具体包括:在告警处理结束或判断当前检查周期内处理的消息数量和从消息中间件拉取的消息数量一致时,结束当前检查周期,并将告警信息或与告警信息相同的信息记录到日志中;更新初始消息偏移量和当前消息偏移量;将业务处理条数数组和检查计数器清零;进入下一检查周期。
[0081]
具体地,结束当前检查周期有三种途径:
[0082]
1、当前检查周期内业务处理过程中未发生异常且处理消息条数和从消息中间件中拉取的消息条数相等。
[0083]
2、当前检查周期内业务处理过程中未发生异常但处理消息条数和从消息中间件中拉取的消息条数不相等,则进行告警处理后进入下一个周期。
[0084]
3、当前检查周期内业务处理过程中发生异常,则进行告警处理后进入下一个周期。
[0085]
当前检查周期结束时相应的检查核对动作或业务处理发生异常告警动作已完成,在进入下一个检查周期前需要将相关变量信息(也就是即将结束的检查周期内的执行情况)记录在日志中,方便后续基于现有日志信息做一些基础的统计和分析;将新检查周期的初始消息偏移量initialoffset赋值为上一检查周期的最后一条消息的偏移量currentoffset,将processedount[]数组和stepcount清零。以上动作完成后进入下一轮的新检查周期。
[0086]
以上为本发明实施例提供的一种检查核对消费系统消费消息的方法,基于同样的发明思路,本发明实施例还提供了相应的一种检查核对消费系统消费消息的装置,如图3所示。
[0087]
业务处理模块302,用于启动消费程序,初始化相关变量,从消息中间件中拉取消息,根据拉取到的消息进行业务处理,根据业务处理结果对相关变量进行相应计算;判断模块304,用于判断业务处理过程中是否发生异常;若未发生异常,则判断当前检查周期是否结束,若当前检查周期未结束,继续从消息中间件中拉取消息进行业务处理;若当前检查周期结束,根据相关变量判断当前检查周期内处理的消息数量和从消息中间件拉取的消息数量的一致性,若不一致则进行告警处理;更新模块306,用于告警处理完成后,结束当前检查周期,更新相关变量并进入下一检查周期。
[0088]
本发明实施例还提供了相应的一种检查核对消费系统消费消息的设备,如图4所示,包括:
[0089]
至少一个处理器(processor)402、通信接口(communications interface)404、存储器(memory)406和通信总线408;其中,处理器402,通信接口404,存储器406通过通信总线408完成相互间的通信;处理器402可以调用存储器406中存储的逻辑指令,以使至少一个处理器402执行:
[0090]
启动消费程序,初始化相关变量,从消息中间件中拉取消息,根据拉取到的消息进行业务处理,根据业务处理结果对相关变量进行相应计算;判断业务处理过程中是否发生异常;若未发生异常,则判断当前检查周期是否结束,若当前检查周期未结束,继续从消息中间件中拉取消息进行业务处理;若当前检查周期结束,根据相关变量判断当前检查周期内处理的消息数量和从消息中间件拉取的消息数量的一致性,若不一致则进行告警处理;告警处理完成后,结束当前检查周期,更新相关变量并进入下一检查周期。
[0091]
基于同样的思路,本发明的一些实施例还提供了上述方法对应的介质。
[0092]
本发明的一些实施例提供的一种存储介质,存储有计算机可执行指令,计算机可执行指令由处理器执行,以实现下述步骤:
[0093]
启动消费程序,初始化相关变量,从消息中间件中拉取消息,根据拉取到的消息进行业务处理,根据业务处理结果对相关变量进行相应计算;判断业务处理过程中是否发生异常;若未发生异常,则判断当前检查周期是否结束,若当前检查周期未结束,继续从消息中间件中拉取消息进行业务处理;若当前检查周期结束,根据相关变量判断当前检查周期内处理的消息数量和从消息中间件拉取的消息数量的一致性,若不一致则进行告警处理;告警处理完成后,结束当前检查周期,更新相关变量并进入下一检查周期。
[0094]
本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0095]
本发明实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
[0096]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程方法商品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程方法商品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程
方法商品或者方法中还存在另外的相同要素。
[0097]
以上仅为本发明的实施例而已,并不用于限制本发明。虽然,上文中已经用一般性说明及具体实施方案对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
技术特征:
1.一种检查核对消费系统消费消息的方法,其特征在于,包括:启动消费程序,初始化相关变量,从消息中间件中拉取消息,根据拉取到的所述消息进行业务处理,根据业务处理结果对所述相关变量进行相应计算;判断所述业务处理过程中是否发生异常;若未发生异常,则判断当前检查周期是否结束,若所述当前检查周期未结束,继续从所述消息中间件中拉取消息进行业务处理;若当前检查周期结束,根据所述相关变量判断当前检查周期内处理的消息数量和从所述消息中间件拉取的消息数量的一致性,若不一致则进行告警处理;告警处理完成后,结束当前检查周期,更新所述相关变量并进入下一检查周期。2.根据权利要求1所述的方法,其特征在于,所述初始化相关变量,具体包括:记录当前检查周期内从消息中间件中拉取到的第一条消息的偏移量作为初始消息偏移量;初始化业务处理条数数组,确定所述业务处理条数数组中每个元素对应的业务场景;所述业务处理条数数组为一维数组;初始化检查计数器;初始化预设的检查周期步长。3.根据权利要求2所述的方法,其特征在于,所述根据业务处理结果对所述相关变量进行相应计算,具体包括:确定当前处理的消息所属的业务场景,根据当前消息的处理结果累加所述业务处理条数数组中与所述业务场景对应的数组元素的值;累加所述检查计数器。4.根据权利要求3所述的方法,其特征在于,所述根据所述相关变量判断当前检查周期内处理的消息数量和从所述消息中间件拉取的数量的一致性,具体包括:获取当前消息偏移量,计算所述当前消息偏移量与所述初始消息偏移量的偏移量差值;计算所述业务处理条数数组中各个元素值的和,作为当前检查周期内已处理消息累计值;将所述偏移量差值与所述已处理消息累计值进行比较,若二者相等则确定当前检查周期内已处理的消息数量和从所述消息中间件拉取的消息数量一致。5.根据权利要求1所述的方法,其特征在于,所述判断所述业务处理过程中是否发生异常,具体包括:若发生异常,则启动告警处理;将告警信息发送至相关责任人,所述告警信息包括初始消息偏移量、当前消息偏移量和业务处理条数数组;结束当前检查周期,将所述告警信息记录至日志后进入下一检查周期。6.根据权利要求2所述的方法,其特征在于,所述判断当前检查周期是否结束,具体包括:确定当前检查周期中检查计数器的值,将所述检查计数器的值与预设的检查周期步长进行比较;
若所述检查计数器的值与所述检查周期步长相等,则确定当前检查周期结束。7.根据权利要求2所述的方法,其特征在于,所述结束当前检查周期,更新相关变量并进入下一检查周期,具体包括:在告警处理结束或在判断当前检查周期内处理的消息数量和从所述消息中间件拉取的消息数量一致时,结束当前检查周期,并将告警信息或与所述告警信息相同的信息记录到日志中;更新初始消息偏移量和当前消息偏移量;将所述业务处理条数数组和所述检查计数器清零;进入下一检查周期。8.一种检查核对消费系统消费消息的装置,其特征在于,包括:业务处理模块,用于启动消费程序,初始化相关变量,从消息中间件中拉取消息,根据拉取到的所述消息进行业务处理,根据业务处理结果对所述相关变量进行相应计算;判断模块,用于判断所述业务处理过程中是否发生异常;若未发生异常,则判断当前检查周期是否结束,若所述当前检查周期未结束,继续从所述消息中间件中拉取消息进行业务处理;若当前检查周期结束,根据所述相关变量判断当前检查周期内处理的消息数量和从所述消息中间件拉取的消息数量的一致性,若不一致则进行告警处理;更新模块,用于告警处理完成后,结束当前检查周期,更新所述相关变量并进入下一检查周期。9.一种检查核对消费系统消费消息的设备,其特征在于,包括:至少一个处理器;以及,与所述至少一个处理器通过总线通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被执行,以实现:启动消费程序,初始化相关变量,从消息中间件中拉取消息,根据拉取到的所述消息进行业务处理,根据业务处理结果对所述相关变量进行相应计算;判断所述业务处理过程中是否发生异常;若未发生异常,则判断当前检查周期是否结束,若所述当前检查周期未结束,继续从所述消息中间件中拉取消息进行业务处理;若当前检查周期结束,根据所述相关变量判断当前检查周期内处理的消息数量和从所述消息中间件拉取的消息数量的一致性,若不一致则进行告警处理;告警处理完成后,结束当前检查周期,更新所述相关变量并进入下一检查周期。10.一种非易失性存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令由处理器执行,以实现下述步骤:启动消费程序,初始化相关变量,从消息中间件中拉取消息,根据拉取到的所述消息进行业务处理,根据业务处理结果对所述相关变量进行相应计算;判断所述业务处理过程中是否发生异常;若未发生异常,则判断当前检查周期是否结束,若所述当前检查周期未结束,继续从所述消息中间件中拉取消息进行业务处理;若当前检查周期结束,根据所述相关变量判断当前检查周期内处理的消息数量和从所述消息中间件拉取的消息数量的一致性,若不一致则进行告警处理;
告警处理完成后,结束当前检查周期,更新所述相关变量并进入下一检查周期。
技术总结
本发明公开了一种检查核对消费系统消费消息的方法、装置及设备,该方法包括:启动消费程序,初始化相关变量,从消息中间件中拉取消息,根据拉取到的消息进行业务处理,根据业务处理结果对相关变量进行相应计算;判断业务处理过程中是否发生异常;若未发生异常,则判断当前检查周期是否结束,若当前检查周期未结束,继续从消息中间件中拉取消息进行业务处理;若当前检查周期结束,根据相关变量判断当前检查周期内处理的消息数量和从消息中间件拉取的消息数量的一致性,若不一致则进行告警处理;告警处理完成后,结束当前检查周期,更新相关变量并进入下一检查周期。相关变量并进入下一检查周期。相关变量并进入下一检查周期。
技术研发人员:解翔宇 何新宇
受保护的技术使用者:中国人民财产保险股份有限公司
技术研发日:2023.02.23
技术公布日:2023/8/5
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/