CN113472690A - 一种业务报文处理方法及装置 - Google Patents
一种业务报文处理方法及装置 Download PDFInfo
- Publication number
- CN113472690A CN113472690A CN202110732538.1A CN202110732538A CN113472690A CN 113472690 A CN113472690 A CN 113472690A CN 202110732538 A CN202110732538 A CN 202110732538A CN 113472690 A CN113472690 A CN 113472690A
- Authority
- CN
- China
- Prior art keywords
- service
- processing
- thread pool
- service message
- message
- 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 description 17
- 238000000034 method Methods 0.000 claims abstract description 57
- 230000008713 feedback mechanism Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 23
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Abstract
本申请提供一种业务报文处理方法及装置,该方法包括:接收业务处理系统发送的业务报文,业务报文中携带有业务报文的类型,类型用于指示业务报文的处理时间和/或处理顺序;根据业务报文的类型确定业务报文对应的线程池,线程池满足业务报文的处理时间和/或处理顺序的要求;根据业务报文对应的线程池对业务报文进行处理,得到处理结果,并将处理结果反馈给业务处理系统。这样可以保证不同业务类型的业务报文得到及时、高效的处理,提高处理业务报文的灵活性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种业务报文处理方法及装置。
背景技术
银行业务系统是一个综合处理银行各柜面业务的应用系统,该银行业务系统是银行构建经营管理和金融服务体系的基础应用平台,在银行业务系统中所要处理的业务中,有各式各样的业务需要进行数据处理,并且每个业务对应不同的业务处理要求。
现有技术中,采用的是信息产业(information technology,IT)行业中单一的生产者-消费者模型(即线程池模型)来进行业务的统一处理。
但是,由于对业务报文进行业务的统一处理,可能出现某些业务因数据量过大,不能及时得到处理的现象,效率和灵活性较低。
发明内容
本申请提供一种业务报文处理方法及装置,用以解决现有技术中业务报文的处理效率和灵活性较低的问题。
第一方面,本申请提供一种业务报文处理方法,包括:接收业务处理系统发送的业务报文,所述业务报文中携带有业务报文的类型,所述类型用于指示业务报文的处理时间和/或处理顺序;根据所述业务报文的类型确定所述业务报文对应的线程池,所述线程池满足所述业务报文的处理时间和/或处理顺序的要求;根据所述业务报文对应的所述线程池对所述业务报文进行处理,得到处理结果,并将所述处理结果反馈给所述业务处理系统。
一种可能的实现方式中,所述业务报文的类型包括下述至少一项:实时业务报文、非实时业务报文和时序业务报文;所述实时业务报文为处理时间小于预设阈值的业务报文;所述非实时业务报文为不限制处理时间的业务报文;所述时序业务报文按照接收的时间和/或接收的顺序依次处理的业务报文;根据所述业务报文的类型确定所述业务报文对应的线程池,包括:若所述业务报文的类型为实时业务报文,则确定所述业务报文对应第一线程池,所述第一线程池中包括至少一个线程,且所述第一线程池禁止业务报文缓存排队;若所述业务报文的类型为非实时业务报文,则确定所述业务报文对应第二线程池,所述第二线程池中包括至少一个线程,且所述第二线程池允许业务报文缓存排队;若所述业务报文的类型为时序业务报文,则确定所述业务报文对应第三线程池,所述第三线程池中包括单个线程,且所述第三线程池允许业务报文缓存排队。
一种可能的实现方式中,根据所述业务报文对应的所述线程池对所述业务报文进行处理,包括:若所述线程池不满足限流处理的触发条件,则根据所述业务报文对应的所述线程池对所述业务报文进行处理。
一种可能的实现方式中,若所述线程池满足限流处理的触发条件,则触发线程池中的负反馈机制,对业务报文进行限流处理。
一种可能的实现方式中若所述线程池满足限流处理的触发条件,则触发线程池中的负反馈机制,对业务报文进行限流处理,包括:若所述第一线程池中的所有线程均处于工作状态,则触发所述第一线程池中的负反馈机制,对业务报文进行限流处理;若所述第二线程池中的所有线程均处于工作状态,且所述第二线程池中排队的业务报文数量满足第一预设条件,则触发所述第二线程池中的负反馈机制,对业务报文进行限流处理;若所述第三线程池中的线程处于工作状态,且所述第三线程池中排队的业务报文数量满足第二预设条件,则触发所述第三线程池中的负反馈机制,对业务报文进行限流处理。
一种可能的实现方式中,对业务报文进行限流处理,包括:通过报文接收线程对所述业务报文进行处理,并控制报文接收线程停止接收业务报文;其中,所述报文接收线程为用于接收业务报文并为业务报文分配线程池的线程;在所述报文接收线程完成对业务报文的处理后,控制所述报文接收线程进入非处理状态;相应的,接收业务处理系统发送的业务报文,包括:在所述报文接收线程处于非处理状态时,通过所述报文接收线程接收业务处理系统发送的业务报文。
一种可能的实现方式中,若检测到所述线程池出现异常,则将所述线程池处理的业务报文存储于数据库中;在所述线程池恢复正常后,从所述数据库中取出存储的业务报文,通过所述线程池对所述业务报文进行处理。
第二方面,本申请实施例提供一种业务报文处理装置,包括:接收模块,用于接收业务处理系统发送的业务报文,所述业务报文中携带有业务报文的类型,所述类型用于指示业务报文的处理时间和/或处理顺序;确定模块,用于根据所述业务报文的类型确定所述业务报文对应的线程池,所述线程池满足所述业务报文的处理时间和/或处理顺序的要求;处理模块,用于根据所述业务报文对应的所述线程池对所述业务报文进行处理,得到处理结果,并将所述处理结果反馈给所述业务处理系统。
第三方面,本申请实施例提供一种电子设备,包括:处理器,存储器以及计算机程序;其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如第一方面任一项所述的业务报文处理方法的指令。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面任一项所述的业务报文处理方法的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面任一项所述的业务报文处理方法的方法。
综上所述,本申请实施例提供的业务报文处理方法及装置,可以针对不同类型的业务报文,选择不同类型的业务报文对应的线程池进行业务报文的处理,可以保证不同业务类型的业务报文得到及时、高效的处理,提高处理业务报文的效率和灵活性。
附图说明
图1为本申请实施例提供的场景示意图;
图2为本申请实施例提供的单一的线程池模型处理业务的流程图;
图3为本申请实施例提供的一种业务报文处理方法的流程示意图;
图4为本申请实施例提供的一种对业务报文进行限流处理的流程示意图;
图5为本申请实施例提供的一种业务报文处理方法的原理示意图;
图6为本申请实施例提供的一种业务报文处理装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一线程池和第二线程池仅仅是为了区分不同的线程池,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
为便于理解本申请实施例,下面对本申请实施例中涉及到的一些词汇作简单说明。
1、业务报文:可以指的是业务传输的数据单元,可以包括发送的业务的数据信息。
2、生产者-消费者模型:也可以称为线程池模型,将报文接收线程和报文处理线程,定义为模型中的生产者和消费者,该报文接收线程用于接收业务报文,该报文处理线程用于处理业务报文;具体的,该模型可以指的是报文接收线程接收一定量的业务报文放到缓冲区中,该缓冲区可以用于存放业务报文,报文处理线程在缓冲区处理上述报文接收线程接收的一定量的业务报文。其中,报文接收线程和报文处理线程在处理业务报文时保持同步,可以保证在缓冲区存放业务报文已满时报文接收线程不再接收业务报文,在缓冲区没有业务报文时报文处理线程也不再处理业务报文。
3、多线程:可以指的是具有多线程能力的计算机因有硬件支持而可以在同一时间执行多于一个线程。
4、线程池:指的是一种多线程处理形式,可以创建线程用于对业务报文的处理,也可以用于在处理业务报文的过程中将业务报文添加到任务队列等待线程的处理。
5、负反馈机制:通过业务处理系统的输出来决定业务处理系统未来业务报文的输入,可以用于减缓业务处理系统处理业务报文的压力,维持业务处理系统的稳定。
6、空闲线程:可以用于处理业务报文的线程。
7、任务列队:可以指的是对线程池中待处理业务报文,进行队列的缓存排队。
下面结合附图对本申请实施例进行介绍。图1为本申请实施例提供的场景示意图,本申请提供的业务报文处理方法可以应用于如图1所示的应用场景中,该应用场景包括网络连接的终端设备以及业务处理端103,该终端设备可以包括笔记本电脑101和手机102。其中,笔记本电脑101可以将业务报文发送给业务处理端103,同样的,手机102也可以将业务报文发送给业务处理端103,进一步的,业务处理端103接收笔记本电脑101和手机102发送的业务报文,并对接收的业务报文进行处理,在业务处理端103将业务报文处理完毕后,可以将处理后的业务报文返回给笔记本电脑101和手机102,完成业务报文的处理。可以理解的是,服务器的数据库104可以对业务处理端103接收和处理的笔记本电脑101和手机102发送的业务报文进行存储。
其中,终端设备也可以被称为终端(terminal)、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。终端设备可以是手机(mobile phone)、智能电视、穿戴式设备、智能音箱、智能安防设备、智能网关、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
需要说明的是,本实施例中对终端设备的个数和类型不作具体限定,图1中所示的终端设备的个数仅作为举例说明。
一种可能的实现方式中,银行间的业务处理端在处理业务报文时,采用单一的线程池模型来进行业务的统一处理,即当服务器接收到多个业务报文的请求之后,服务器会创建多个线程,由该多个线程执行多个业务报文的请求任务,当任务执行完毕之后,退出线程。
示例性的,图2为单一的线程池模型处理业务的流程图,如图2所示,当业务报文的请求任务提交到线程池时,线程池可以判断当前线程数量是否小于线程池的核心线程数,该核心线程数可以指的是任务队列没满时,线程池中线程的最大并发数;如果当前线程数量小于线程池的核心线程数,则创建线程来处理提交的业务报文,否则将业务报文放入任务列队等待线程处理,进一步的,如果任务列队已满,则线程池判断当前线程数量是否小于最大线程数,该最大线程数可以指的是任务队列已满时,线程池中可以线程可以达到的最大并发数,如果当前线程数量小于最大线程数,则线程池创建非核心线程处理业务报文,非核心线程可以指的是线程池临时创建的空闲线程,否则线程池执行饱和策略,用于表示线程池拒绝接收业务报文的请求任务。
但是,采用单一的线程池模型进行业务统一处理时,没有区分业务报文的类型,不可以针对不同业务类型的报文进行灵活性的处理,可能出现某些业务因为数据量过大,被阻塞在任务队列中,产生逾期,导致失败的情况;或者可能导致某些业务因为数据量过大,服务器没有按照既定顺序进行切换处理,从而失败的情况。
另一种可能的实现方式中,在业务处理端处理业务报文时,服务器会对业务报文进行限流,采用预测模型的方式,通过业务报文的请求对应的历史访问数据预测服务器的处理能力,该历史访问数据可以指的是业务报文的访问数目及对应的业务报文的访问时间,如果预测结果是超过服务器可以处理的业务报文的数量,则服务器对业务报文的接收进行限流。
但是,通过探测方式预测服务器在出现瓶颈时对业务报文进行限流,属于正向处理机制,有可能业务处理系统存在空闲线程时,但是预测模型没有及时发现,导致业务报文的处理出现滞后的情况,降低业务处理系统处理能力。
因此,本申请提出了一种业务报文处理方法,该方法为一种多生产者-消费者模型并存的多线程处理机制,可以针对不同类型的业务报文,选择与之相适应的线程池,并通过业务报文类型来进行分发处理,得到处理结果。本申请实施例提供的方法可以保证不同业务类型的业务报文得到及时、高效的处理,提高灵活性。
示例性的,图3为本申请实施例提供的一种业务报文处理方法的流程示意图,如图3所示,本申请实施例的方法包括:
S301、接收业务处理系统发送的业务报文,业务报文中携带有业务报文的类型,类型用于指示业务报文的处理时间和/或处理顺序。
本申请实施例中,业务报文的类型可以包括下述至少一项:实时业务报文,非实时业务报文和时序业务报文,其中,实时业务报文为处理时间小于预设阈值的业务报文;非实时业务报文为不限制处理时间的业务报文;时序业务报文按照接收的时间和/或接收的顺序依次处理的业务报文。
例如,111报文是实时业务报文,该预设阈值可以根据实际需要来设置,例如10s,则要求处理完成该111报文的处理时间小于10s;其中,处理时间可以是指业务报文从接收到反馈处理结果所花费的时间;114报文是非实时业务报文,因为该114报文对处理时间没有要求,则在一定时间内将该114报文处理完成即可;112报文和113报文是时序业务报文,则要求按照接收该112报文和该113报文的时间和/或接收的顺序依次处理的上述的业务报文。
需要说明的是,接收该112报文和该113报文的时间和/或接收的顺序,表示可以存在三种关系,例如,接收的时间和/或接收的顺序,可以表示:单独存在接收的时间,同时存在接收的时间和接收的顺序,单独存在接收的顺序这三种情况。
示例性的,以图1所示的应用场景为例,接收业务处理端103(即业务处理系统)发送的有关笔记本电脑101和手机102的业务报文,该业务报文中携带有业务报文的类型可以为时序业务报文,可选的,该笔记本电脑101和手机102的业务报文可以携带有相应的时间戳,则可以按照接收该笔记本电脑101的业务报文和该手机102的业务报文的时间戳依次处理的上述的业务报文。
可选的,该笔记本电脑101和手机102的业务报文可以有先后发送的顺序,则可以按照接收该笔记本电脑101的业务报文和该手机102的业务报文的发送的顺序依次处理的上述的业务报文。
可选的,该笔记本电脑101和手机102的业务报文可以携带有相应的时间戳,也可以有先后发送的顺序,则可以按照接收该笔记本电脑101的业务报文和该手机102的业务报文的时间戳和发送的顺序依次处理的上述的业务报文,可以理解的是,若该笔记本电脑101和手机102的业务报文同时发送给接收业务处理端103,则可以按照接收该笔记本电脑101的业务报文和该手机102的业务报文的发送的顺序依次处理的上述的业务报文。
S302、根据业务报文的类型确定业务报文对应的线程池,线程池满足业务报文的处理时间和/或处理顺序的要求。
示例性的,根据业务报文中携带有业务报文的类型,进一步的确认该业务报文对应的线程池,例如,实时业务报文可以对应的线程池为实时线程池,该实时线程池满足实时业务报文处理时间小于预设阈值的要求。
S303、根据业务报文对应的线程池对业务报文进行处理,得到处理结果,并将处理结果反馈给业务处理系统。
示例性的,以实时业务报文为例,则可以根据实时业务报文对应的实时线程池对实时业务报文在预设阈值的时间段内进行处理,得到实时业务报文的处理结果,并将该处理结果反馈给业务处理系统。
综上,本申请实施例提供的业务报文处理方法,可以针对不同类型的业务报文,选择不同类型的业务报文对应的线程池进行业务报文的处理,可以保证不同业务类型的业务报文得到及时、高效的处理,提高处理业务报文的效率和灵活性。
一种可能的实现方式中,根据业务报文的类型确定业务报文对应的线程池,包括:若业务报文的类型为实时业务报文,则确定业务报文对应第一线程池,第一线程池中包括至少一个线程,且第一线程池禁止业务报文缓存排队;若业务报文的类型为非实时业务报文,则确定业务报文对应第二线程池,第二线程池中包括至少一个线程,且第二线程池允许业务报文缓存排队;若业务报文的类型为时序业务报文,则确定业务报文对应第三线程池,第三线程池中包括单个线程,且第三线程池允许业务报文缓存排队。
本申请实施例中,第一线程池可以指的是实时线程池,该实时线程池中包括至少一个线程,且线程数可以设定为工作值,该工作值可以提前预设,也可以根据工作人员指定更改,本申请实施例在此不做具体限定,在实时线程池中禁止业务报文缓存排队,其中,禁止业务报文缓存排队,可以是指第一线程池中不存在用于实现业务报文缓存排队的任务队列,禁止有其他业务报文等待线程的处理。
第二线程池可以指的是非实时线程池,该非实时线程池中包括至少一个线程,且该非实时线程池中允许业务报文缓存排队,其中,允许业务报文缓存排队,可以是指第二线程池中存在用于实现业务报文缓存排队的任务队列,即在非实时线程池中创建的线程均处于工作状态时,允许有其他业务报文等待线程的处理。
第三线程池可以指的是时序线程池,该时序线程池中包括单个线程,该单个线程可以指的是将时序线程池中的一个或多个业务报文压降成一个工作线程,即该工作线程中可以按次序排列多个业务报文,进一步的对业务报文的处理,且该时序线程池中允许业务报文缓存排队,即在时序线程池中创建的单个线程处于工作已满的状态时,允许有其他业务报文等待单个线程的处理。
示例性的,以第三线程池为例,如果业务报文的类型为时序业务报文,该时序业务报文有业务报文1,业务报文2,业务报文3,业务报文4,业务报文5和业务报文6,则确定业务报文1-6对应第三线程池,其中,第三线程池中包括单个线程,可以将业务报文1-6按照接收的时间和接收顺序压降成一个工作线程进行处理。
可以理解的是,若此时的时序线程池中创建的单个线程按照接收的时间和接收顺序处理业务报文1时,该单个线程处于工作已满的状态,则业务报文2-6可以等待单个线程的处理。
因此,本申请实施例根据不同业务报文对应的不同线程池对不同业务报文进行处理,使不同类型的业务报文在相应的线程池中得到及时的处理,也可以保证业务报文可以按照顺序进行切换处理,提高效率和灵活性。
一种可能的实现方式中,根据业务报文对应的线程池对业务报文进行处理,包括:若线程池不满足限流处理的触发条件,则根据业务报文对应的线程池对业务报文进行处理。
本申请实施例中,限流处理的触发条件可以是人为预先设定的。示例性的,限流处理的触发条件可以为线程池中创建的M个线程均处于工作状态,且该线程池中的任务列队已满,其中,M大于等于1,即表示的意思为,若线程池中创建的M个线程还有空闲线程,则可以根据业务报文对应的线程池对业务报文进行处理。
这样,可以保证线程池处理的业务报文在一定的数量范围内,避免出现线程池因为业务报文数量过大,无法快速得到处理的现象。
一种可能的实现方式中,若线程池满足限流处理的触发条件,则触发线程池中的负反馈机制,对业务报文进行限流处理。
示例性的,如果第一线程池满足限流处理的触发条件,该限流处理的触发条件可以为第一线程池中的创建的线程均处于工作状态,则可以触发第一线程池中的负反馈机制,对实时业务报文进行限流处理,禁止接收业务报文。
这样,可以减少单位时间内报文接收数量,以便让业务处理系统尽快完成存量业务报文的处理,防止出现宕机,导致存量报文处理异常,甚至报文丢失无法重新处理的极端情况。
一种可能的实现方式中,在线程池满足报文业务类型对应的触发条件时,触发线程池中的负反馈机制,对业务报文进行限流处理,包括:
若第一线程池中的所有线程均处于工作状态,则触发第一线程池中的负反馈机制,对业务报文进行限流处理;若第二线程池中的所有线程均处于工作状态,且第二线程池中排队的业务报文数量满足第一预设条件,则触发第二线程池中的负反馈机制,对业务报文进行限流处理;若第三线程池中的线程处于工作状态,且第三线程池中排队的业务报文数量满足第二预设条件,则触发第三线程池中的负反馈机制,对业务报文进行限流处理。
本申请实施例中,第一预设条件可以指的是任务列队已满,第二线程池中不再可以接收待处理的非实时业务报文,其中,该任务列队可以容纳的业务报文数量可以是人为预先设定的,本申请实施例不作具体限定。
第二预设条件可以指的是任务列队已满,第三线程池中不再可以接收待处理的时序业务报文,其中,该任务列队可以容纳的业务报文数量可以是人为预先设定的,本申请实施例不作具体限定。
需要说明的是第一预设条件和第二预设条件中任务列队可以容纳的业务报文数量可以相同,也可以不同,本申请实施例对此不作具体限定。
因此,针对不同业务报文对应的线程池,设计了一种对业务报文接收进行限流的负反馈机制,可以对业务报文接收数量进行限制,便于业务处理系统完成对业务报文的处理,防止业务报文数量过多导致的处理异常。
一种可能的实现方式中,对业务报文进行限流处理,如图4所示,图4为本申请实施例提供的一种对业务报文进行限流处理的流程示意图,可以包括如下流程:
S401、通过报文接收线程对业务报文进行处理,并控制报文接收线程停止接收业务报文。
本申请实施例中,报文接收线程为用于接收业务报文并为业务报文分配线程池的线程。
示例性的,在触发负反馈机制时,报文接收线程可以进入处理状态,具体的,可以将报文接收线程临时转变成报文处理线程,同步完成对业务报文的处理,并且接收线程在此时间段内停止接收不同类型的业务报文。
S402、在报文接收线程完成对业务报文的处理后,控制报文接收线程进入非处理状态。
本申请实施例中,非处理状态可以指的是接收业务报文的状态。
示例性的,如果报文接收线程在完成对业务报文的处理后,进一步的,可以控制报文接收线程继续接收下一个业务报文。
相应的,接收业务处理系统发送的业务报文,可以包括:在报文接收线程处于非处理状态时,通过报文接收线程接收业务处理系统发送的业务报文。
示例性的,如果报文接收线程处于非处理状态时,则该报文接收线程可以继续接收业务处理系统发送的业务报文。在报文接收线程处于处理状态时,可以停止接收业务报文。
因此,可以通过使用报文接收进程,同步完成后续的报文处理,等报文接收进程处理完毕再继续进行业务报文的接收,这样可以保证在业务处理系统过载时,业务处理系统不再接收报文,而在业务处理系统有空闲线程时,业务处理系统可以迅速接收下一个业务报文进行处理,提高效率。
一种可能的实现方式中,若检测到线程池出现异常,则将线程池处理的业务报文存储于数据库中;在线程池恢复正常后,从数据库中取出存储的业务报文,通过线程池对业务报文进行处理。
示例性的,如果某个线程池出现异常,相应的,可以把出现异常的某个线程池中的业务报文存储于业务处理系统的数据库中,在该某个线程池恢复正常后,可以从数据库中将之前存储的业务报文的恢复,进一步的,该某个线程池可以对业务报文进行处理。
因此,本申请实施例可以避免因线程池出现异常导致业务报文丢失无法重新处理的极端情况,提高业务处理系统的处理能力。
结合上述实施例,图5为本申请实施例提供的一种业务报文处理方法的原理示意图。如图5所示,本申请实施例的执行方法步骤包括:
步骤A:报文接收线程接收业务处理系统发送的业务报文。
步骤B:通过报文类型将接收的业务报文进行处理分发,分发给实时线程池、非实时线程池和时序线程池。
步骤C:实时线程池、非实时线程池和时序线程池分别接收与线程池类型相对应业务报文,其中,实时线程池中可以包括负反馈器,非实时线程池中可以包括负反馈器和任务列队,时序线程池中可以包括负反馈器和任务列队,负反馈器可以用于触发负反馈机制,负反馈机制下可以利用报文接收线程对业务报文进行处理。
步骤D:实时线程池、非实时线程池和时序线程池中的报文处理线程分别对业务报文进行处理,其中,报文处理线程可以指的是用于对业务报文进行处理的线程。
因此,本申请实施例提供的方法设计了三种与业务报文类型相适用的线程池来处理不同种类的业务报文,保证了业务报文可以及时、高效的处理,可以避免出现业务报文处理超时和业务报文处理顺序错乱等异常情况,而且还设计了一种对报文接收进行限流的负反馈机制,可以减少单位时间内报文接收数量,以便让业务处理系统尽快完成存量业务的处理,防止出现宕机,导致存量报文处理异常,甚至报文丢失无法重新处理的极端情况。
在前述实施例中,对本申请实施例提供的业务报文处理方法进行了介绍,而为了实现上述本申请实施例提供的方法中的各功能,作为执行主体的电子设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
例如,图6为本申请实施例提供的业务报文处理装置的结构示意图,如图6所示,该装置600包括:接收模块601,确定模块602和处理模块603;其中,接收模块601,用于接收业务处理系统发送的业务报文,该业务报文中携带有业务报文的类型,该类型用于指示业务报文的处理时间和/或处理顺序;确定模块602,用于根据业务报文的类型确定业务报文对应的线程池,线程池满足业务报文的处理时间和/或处理顺序的要求;处理模块603,用于根据业务报文对应的线程池对业务报文进行处理,得到处理结果,并将处理结果反馈给业务处理系统。
一种可能的实现方式中,业务报文的类型包括下述至少一项:实时业务报文、非实时业务报文和时序业务报文;实时业务报文为处理时间小于预设阈值的业务报文;非实时业务报文为不限制处理时间的业务报文;时序业务报文按照接收的时间和/或接收的顺序依次处理的业务报文;确定模块602具体用于,若业务报文的类型为实时业务报文,则确定业务报文对应第一线程池,第一线程池中包括至少一个线程,且第一线程池禁止业务报文缓存排队;若业务报文的类型为非实时业务报文,则确定业务报文对应第二线程池,第二线程池中包括至少一个线程,且第二线程池允许业务报文缓存排队;若业务报文的类型为时序业务报文,则确定业务报文对应第三线程池,第三线程池中包括单个线程,且第三线程池允许业务报文缓存排队。
一种可能的实现方式中,处理模块603具体用于,若线程池不满足限流处理的触发条件,则根据业务报文对应的线程池对业务报文进行处理。
一种可能的实现方式中,处理模块603具体还用于,若线程池满足限流处理的触发条件,则触发线程池中的负反馈机制,对业务报文进行限流处理。
一种可能的实现方式中,处理模块603具体还用于,若第一线程池中的所有线程均处于工作状态,则触发第一线程池中的负反馈机制,对业务报文进行限流处理;若第二线程池中的所有线程均处于工作状态,且第二线程池中排队的业务报文数量满足第一预设条件,则触发第二线程池中的负反馈机制,对业务报文进行限流处理;若第三线程池中的线程处于工作状态,且第三线程池中排队的业务报文数量满足第二预设条件,则触发第三线程池中的负反馈机制,对业务报文进行限流处理。
一种可能的实现方式中,处理模块603具体还用于,通过报文接收线程对业务报文进行处理,并控制报文接收线程停止接收业务报文;其中,报文接收线程为用于接收业务报文并为业务报文分配线程池的线程;在报文接收线程完成对业务报文的处理后,控制报文接收线程进入非处理状态;相应的,接收模块601具体用于,在报文接收线程处于非处理状态时,通过报文接收线程接收业务处理系统发送的业务报文。
一种可能的实现方式中,处理模块603具体还用于,若检测到线程池出现异常,则将线程池处理的业务报文存储于数据库中;在线程池恢复正常后,从数据库中取出存储的业务报文,通过线程池对业务报文进行处理。
本申请实施例还提供一种电子设备的结构示意图,如图7所示,该电子设备可以包括:处理器701和存储器702;该存储器702存储计算机程序;该处理器701执行该存储器702存储的计算机程序,使得该处理器701执行上述任一实施例所述的方法。
其中,存储器702和处理器701可以通过总线703连接。
本申请实施例提供的业务报文处理装置的具体实现原理和效果可以参见上述实施例对应的相关描述和效果,此处不做过多赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序执行指令,计算机执行指令被处理器执行时用于实现计算机程序使得服务器执行如本申请前述实施例中任一的业务报文处理方法。
本申请实施例还提供一种运行指令的芯片,该芯片用于执行如本申请前述任一实施例中由电子设备所执行的业务报文处理方法。
本申请实施例还提供一种计算机程序产品,该程序产品包括计算机程序,该计算机程序存储在存储介质中,至少一个处理器可以从该存储介质读取该计算机程序,该至少一个处理器执行该计算机程序时可实现如本申请前述任一实施例中由电子设备所执行的业务报文处理方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本发明各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(central processing unit,CPU),还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速随机存取存储器(random access memory,RAM),也可能还包括非不稳定的存储器(non-volatile memory,NVM),例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本发明附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(application specific integrated circuits,ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种业务报文处理方法,其特征在于,包括:
接收业务处理系统发送的业务报文,所述业务报文中携带有业务报文的类型,所述类型用于指示业务报文的处理时间和/或处理顺序;
根据所述业务报文的类型确定所述业务报文对应的线程池,所述线程池满足所述业务报文的处理时间和/或处理顺序的要求;
根据所述业务报文对应的所述线程池对所述业务报文进行处理,得到处理结果,并将所述处理结果反馈给所述业务处理系统。
2.根据权利要求1所述的方法,其特征在于,所述业务报文的类型包括下述至少一项:实时业务报文、非实时业务报文和时序业务报文;所述实时业务报文为处理时间小于预设阈值的业务报文;所述非实时业务报文为不限制处理时间的业务报文;所述时序业务报文按照接收的时间和/或接收的顺序依次处理的业务报文;根据所述业务报文的类型确定所述业务报文对应的线程池,包括:
若所述业务报文的类型为实时业务报文,则确定所述业务报文对应第一线程池,所述第一线程池中包括至少一个线程,且所述第一线程池禁止业务报文缓存排队;
若所述业务报文的类型为非实时业务报文,则确定所述业务报文对应第二线程池,所述第二线程池中包括至少一个线程,且所述第二线程池允许业务报文缓存排队;
若所述业务报文的类型为时序业务报文,则确定所述业务报文对应第三线程池,所述第三线程池中包括单个线程,且所述第三线程池允许业务报文缓存排队。
3.根据权利要求2所述的方法,其特征在于,根据所述业务报文对应的所述线程池对所述业务报文进行处理,包括:
若所述线程池不满足限流处理的触发条件,则根据所述业务报文对应的所述线程池对所述业务报文进行处理。
4.根据权利要求3所述的方法,其特征在于,还包括:
若所述线程池满足限流处理的触发条件,则触发线程池中的负反馈机制,对业务报文进行限流处理。
5.根据权利要求4所述的方法,其特征在于,若所述线程池满足限流处理的触发条件,则触发线程池中的负反馈机制,对业务报文进行限流处理,包括:
若所述第一线程池中的所有线程均处于工作状态,则触发所述第一线程池中的负反馈机制,对业务报文进行限流处理;
若所述第二线程池中的所有线程均处于工作状态,且所述第二线程池中排队的业务报文数量满足第一预设条件,则触发所述第二线程池中的负反馈机制,对业务报文进行限流处理;
若所述第三线程池中的线程处于工作状态,且所述第三线程池中排队的业务报文数量满足第二预设条件,则触发所述第三线程池中的负反馈机制,对业务报文进行限流处理。
6.根据权利要求5所述的方法,其特征在于,对业务报文进行限流处理,包括:
通过报文接收线程对所述业务报文进行处理,并控制报文接收线程停止接收业务报文;其中,所述报文接收线程为用于接收业务报文并为业务报文分配线程池的线程;
在所述报文接收线程完成对业务报文的处理后,控制所述报文接收线程进入非处理状态;
相应的,接收业务处理系统发送的业务报文,包括:
在所述报文接收线程处于非处理状态时,通过所述报文接收线程接收业务处理系统发送的业务报文。
7.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
若检测到所述线程池出现异常,则将所述线程池处理的业务报文存储于数据库中;
在所述线程池恢复正常后,从所述数据库中取出存储的业务报文,通过所述线程池对所述业务报文进行处理。
8.一种业务报文处理装置,其特征在于,包括:
接收模块,用于接收业务处理系统发送的业务报文,所述业务报文中携带有业务报文的类型,所述类型用于指示业务报文的处理时间和/或处理顺序;
确定模块,用于根据所述业务报文的类型确定所述业务报文对应的线程池,所述线程池满足所述业务报文的处理时间和/或处理顺序的要求;
处理模块,用于根据所述业务报文对应的所述线程池对所述业务报文进行处理,得到处理结果,并将所述处理结果反馈给所述业务处理系统。
9.一种电子设备,其特征在于,包括:处理器,存储器以及计算机程序;其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如权利要求1-7任一项所述的业务报文处理方法的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7任一项所述的业务报文处理方法。
11.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110732538.1A CN113472690A (zh) | 2021-06-29 | 2021-06-29 | 一种业务报文处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110732538.1A CN113472690A (zh) | 2021-06-29 | 2021-06-29 | 一种业务报文处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113472690A true CN113472690A (zh) | 2021-10-01 |
Family
ID=77874060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110732538.1A Pending CN113472690A (zh) | 2021-06-29 | 2021-06-29 | 一种业务报文处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113472690A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037702A (zh) * | 2022-05-23 | 2022-09-09 | 北京梧桐车联科技有限责任公司 | 报文分发、数据发送方法及设备 |
CN115665042A (zh) * | 2022-12-12 | 2023-01-31 | 深圳艾灵网络有限公司 | 数据处理方法、装置、用户平面功能实体及存储介质 |
CN115996197A (zh) * | 2023-03-17 | 2023-04-21 | 之江实验室 | 一种流量拥塞前置的分布式计算流量仿真系统与方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102447628A (zh) * | 2011-12-22 | 2012-05-09 | 苏州阔地网络科技有限公司 | 一种数据包传输处理方法及系统 |
CN102868600A (zh) * | 2012-09-10 | 2013-01-09 | 北京用友政务软件有限公司 | 一种多线程报文转发方法及系统 |
CN103455377A (zh) * | 2013-08-06 | 2013-12-18 | 北京京东尚科信息技术有限公司 | 用于管理业务线程池的系统和方法 |
CN107273190A (zh) * | 2017-05-19 | 2017-10-20 | 武汉票据交易中心有限公司 | 一种批量定时业务处理方法和系统 |
-
2021
- 2021-06-29 CN CN202110732538.1A patent/CN113472690A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102447628A (zh) * | 2011-12-22 | 2012-05-09 | 苏州阔地网络科技有限公司 | 一种数据包传输处理方法及系统 |
CN102868600A (zh) * | 2012-09-10 | 2013-01-09 | 北京用友政务软件有限公司 | 一种多线程报文转发方法及系统 |
CN103455377A (zh) * | 2013-08-06 | 2013-12-18 | 北京京东尚科信息技术有限公司 | 用于管理业务线程池的系统和方法 |
CN107273190A (zh) * | 2017-05-19 | 2017-10-20 | 武汉票据交易中心有限公司 | 一种批量定时业务处理方法和系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037702A (zh) * | 2022-05-23 | 2022-09-09 | 北京梧桐车联科技有限责任公司 | 报文分发、数据发送方法及设备 |
CN115037702B (zh) * | 2022-05-23 | 2024-04-12 | 北京梧桐车联科技有限责任公司 | 报文分发、数据发送方法及设备 |
CN115665042A (zh) * | 2022-12-12 | 2023-01-31 | 深圳艾灵网络有限公司 | 数据处理方法、装置、用户平面功能实体及存储介质 |
CN115665042B (zh) * | 2022-12-12 | 2023-02-28 | 深圳艾灵网络有限公司 | 数据处理方法、装置、用户平面功能实体及存储介质 |
CN115996197A (zh) * | 2023-03-17 | 2023-04-21 | 之江实验室 | 一种流量拥塞前置的分布式计算流量仿真系统与方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113472690A (zh) | 一种业务报文处理方法及装置 | |
EP2701074B1 (en) | Method, device, and system for performing scheduling in multi-processor core system | |
US8554968B1 (en) | Interrupt technique for a nonvolatile memory controller | |
US7418576B1 (en) | Prioritized issuing of operation dedicated execution unit tagged instructions from multiple different type threads performing different set of operations | |
CN107818056B (zh) | 一种队列管理方法及装置 | |
US8838863B2 (en) | Resource controlling with dynamic priority adjustment | |
CN110532205B (zh) | 数据传输方法、装置、计算机设备和计算机可读存储介质 | |
CN109408243B (zh) | 一种基于rdma的数据处理方法、装置和介质 | |
CN111061570B (zh) | 一种图像计算请求处理方法、装置及终端设备 | |
CN102449611A (zh) | 用于在弱排序存储系统中发布存储器障碍命令的方法与设备 | |
US6944730B2 (en) | Read/write scheduling apparatus of controller chip and method for the same | |
US8645960B2 (en) | Method and apparatus for data processing using queuing | |
CN110557432B (zh) | 一种缓存池均衡优化方法、系统、终端及存储介质 | |
US20210141751A1 (en) | Packet Processing Device and Packet Processing Method | |
CN114064316A (zh) | 一种多路采集数据的同步方法及系统 | |
US20120060169A1 (en) | Systems and methods for resource controlling | |
US9891840B2 (en) | Method and arrangement for controlling requests to a shared electronic resource | |
EP1966705A2 (en) | Apparatus and method for dynamic cache management | |
CN109670932B (zh) | 信贷数据核算方法、装置、系统和计算机存储介质 | |
CN105224258B (zh) | 一种数据缓冲区的复用方法与系统 | |
CN112817516A (zh) | 数据读写控制方法、装置、设备和存储介质 | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
CN102473149B (zh) | 包括缓冲器控制逻辑的信号处理系统、集成电路及其方法 | |
CN111427673B (zh) | 一种负载均衡方法、装置及设备 | |
JP2009251652A (ja) | マルチコアシステム |
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 |