CN109032767A - 异步多进程的业务处理系统、方法、装置及存储介质 - Google Patents
异步多进程的业务处理系统、方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109032767A CN109032767A CN201810832967.4A CN201810832967A CN109032767A CN 109032767 A CN109032767 A CN 109032767A CN 201810832967 A CN201810832967 A CN 201810832967A CN 109032767 A CN109032767 A CN 109032767A
- Authority
- CN
- China
- Prior art keywords
- separate traffic
- message
- business
- distribution unit
- business processing
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种异步多进程的业务处理系统、方法、装置及存储介质,属于计算机技术领域,该系统包括:主进程,用于启动业务分发进程和至少一个独立业务进程,每个独立业务进程对应一个业务逻辑,且所述至少一个独立业务进程订阅所述业务分发进程中的业务处理消息;所述业务分发进程,用于接收业务处理消息;将所述业务处理消息分发至至少一个独立业务进程中的目标独立业务进程;所述目标独立业务进程,用于获取所述业务分发进程分发的业务处理消息;对所述业务处理消息进行解析,得到所述业务处理消息指示业务内容;根据所述业务内容进行业务处理;可以解决已有的异步多进程架构中进程的安全性较低的问题;提高异步多进程架构中进程的安全性。
Description
技术领域
本申请涉及异步多进程的业务处理方法、装置及存储介质,属于计算机技术领域。
背景技术
异步多进程技术是指主进程将接收到的业务处理消息分发至多个其它进程进行异步处理的技术。在异步多进程架构中,主进程不需要在接收到一条业务处理消息的处理结果之后,才处理下一条业务处理消息,可以提高业务处理消息的处理速度。
目前,已有的异步多进程架构中,不同进程之间耦合性较强,在一个进程出现异常时,可能导致与其耦合的其他进程也无法继续处理业务处理消息。因此,设计一种能够保障进程安全的异步多进程架构是亟待解决问题。
发明内容
本申请提供了一种异步多进程的业务处理方法、装置及存储介质,可以解决已有的异步多进程架构中进程的安全性较低的问题。本申请提供如下技术方案:
第一方面,提供了一种异步多进程的业务处理系统,所述系统包括:
主进程,用于启动业务分发进程和至少一个独立业务进程,每个独立业务进程对应一个业务逻辑,且所述至少一个独立业务进程订阅所述业务分发进程中的业务处理消息;
所述业务分发进程,用于接收业务处理消息;将所述业务处理消息分发至所述至少一个独立业务进程中的目标独立业务进程;
所述目标独立业务进程,用于获取所述业务分发进程分发的业务处理消息;对所述业务处理消息进行解析,得到所述业务处理消息指示业务内容;根据所述业务内容进行业务处理。
可选地,所述主进程,还用于:
向所述业务分发进程发送第一检测消息;
在第一预设时长内未接收到所述业务分发进程发送的对所述第一检测消息的第一响应消息时,根据预存的第一配置信息重启所述业务分发进程,所述第一配置信息是在首次启动所述业务分发进程时存储的;
重启所述业务分发进程之后,向所述业务分发进程发送所述至少一个独立业务进程的相关信息,所述相关信息用于供所述业务分发进程与所述至少一个独立业务进程重新建立连接。
可选地,所述主进程,还用于:
通过所述业务分发进程向所述至少一个独立业务进程分别发送第二检测消息;
在第二预设时长内未接收到第n个独立业务进程反馈的对所述第二检测消息的第二响应消息时,根据预存的第二配置信息重启所述第n个独立业务进程,所述第二配置信息是在首次启动所述第n个独立业务进程时存储的,所述n为正整数;
在重启所述第n个独立业务进程后,重新触发所述第n个独立业务进程订阅所述业务分发进程中的业务处理消息。
可选地,所述业务分发进程,还用于:
在所述主进程重启所述第n个独立业务进程之后,确定是否清空所述业务分发进程中所述第n个独立业务进程对应的业务处理消息;
在确定清空所述业务分发进程中所述第n个独立业务进程对应的业务处理消息时,向上层调用进程发送通知消息,所述通知消息用于通知所述上层调用进程所述第n个独立业务进程已重启。
可选地,所述系统还包括监控进程,所述监控进程由所述主进程启动;
所述监控进程,用于监控所述主进程是否异常;在确定出所述主进程异常时,重启所述主进程。
可选地,所述至少一个独立业务进程支持分布式部署在不同的设备中。
第二方面,提供了一种异步多进程的业务处理方法,所述方法包括:
通过主进程启动业务分发进程和至少一个独立业务进程,每个独立业务进程对应一个业务逻辑,且所述至少一个独立业务进程订阅所述业务分发进程中的业务处理消息;
通过所述业务分发进程接收业务处理消息;将所述业务处理消息分发至所述至少一个独立业务进程中的目标独立业务进程;
通过所述目标独立业务进程获取所述业务分发进程分发的业务处理消息;对所述业务处理消息进行解析,得到所述业务处理消息指示业务内容;根据所述业务内容进行业务处理。
第三方面,提供了一种异步多进程的业务处理装置,所述装置包括:
进程启动模块,用于启动业务分发进程和至少一个独立业务进程,每个独立业务进程对应一个业务逻辑,且所述至少一个独立业务进程订阅所述业务分发进程中的业务处理消息;
消息分发模块,用于接收业务处理消息;将所述业务处理消息分发至所述至少一个独立业务进程中的目标独立业务进程;
消息处理模块,用于获取所述业务分发进程分发的业务处理消息;对所述业务处理消息进行解析,得到所述业务处理消息指示业务内容;根据所述业务内容进行业务处理。
第四方面,提供一种异步多进程的业务处理装置,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现第二方面所述的异步多进程的业务处理方法。
第五方面,提供一种计算机可读存储介质,所述存储介质中存储有程序,所述程序由所述处理器加载并执行以实现第二方面所述的异步多进程的业务处理方法。
本申请的有益效果在于:通过由主进程启动业务分发进程和至少一个独立业务进程,每个独立业务进程对应一个业务逻辑,且至少一个独立业务进程订阅业务分发进程中的业务处理消息;业务分发进程接收业务处理消息;将业务处理消息分发至目标独立业务进程;目标独立业务进程获取业务分发进程分发的业务处理消息;对业务处理消息进行解析,得到业务处理消息指示业务内容;根据业务内容进行业务处理;可以解决已有的异步多进程架构中进程的安全性较低的问题;由于每个独立业务进程对应一个业务逻辑,因此,即使某个业务逻辑对应的独立业务进程崩溃,也不会影响其他进程的安全,可以提高异步多进程架构中进程的安全性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
附图说明
图1是本申请一个实施例提供的异步多进程的业务处理系统的结构示意图;
图2是本申请一个实施例提供的异步多进程的业务处理方法的流程图;
图3是本申请一个实施例提供的监控业务分发进程的流程图;
图4是本申请另一个实施例提供监控独立业务进程的流程图;
图5是本申请一个实施例提供的异步多进程的业务处理装置的框图;
图6是本申请一个实施例提供的异步多进程的业务处理装置的框图。
具体实施方式
下面结合附图和实施例,对本申请的具体实施方式作进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
图1是本申请一个实施例提供的异步多进程的业务处理系统的结构示意图,如图1所示,该系统至少包括:主进程110、业务分发进程120和至少一个(一个或者至少两个)独立业务进程130。
主进程110是程序启动时第一个启动的进程。主进程110启动之后,会按照预设的启动规则根据配置文件依次启动业务分发进程120和至少一个独立业务进程130。本实施例不对主进程110启动业务分发进程120和至少一个独立业务进程130的顺序作限定,示意性地,主进程110先启动业务分发进程120,再启动至少一个独立业务进程130。业务分发进程120和至少一个独立业务进程130启动之后,会将自身的进程标识发送至主进程110。进程标识可以是随机字符串、进程名称等,本实施例不对进程标识的形式作限定。
其中,配置文件可以包括用于启动业务分发进程120的第一配置信息,以及,用于启动至少一个独立业务进程130的第二配置信息。第一配置信息可以在业务分发进程120启动之后被更新,比如:增加业务分发进程120的进程标识等信息;第二配置信息也可以在独立业务进程130启动之后被更新,比如:增加独立业务进程130的进程标识等信息。
可选地,异步多进程的业务处理系统还包括监控进程140,该监控进程140用于检测主进程110是否存在异常。监控进程140也由主进程110启动,本实施例不对主进程110启动监控进程140的时机作限定,示意性地,主进程110在启动业务分发进程120和至少一个独立业务进程130之前启动监控进程140。
业务分发进程120和至少一个独立业务进程130均为独立的模块,比如:业务分发进程120对应一个第一动态库,至少一个独立业务进程130中每个独立业务进程130对应一个第二动态库,这样,当业务分发进程120需要升级或者变更时,只需要更新第一动态库,而不需要更改、编译其它的进程;当独立业务进程130需要升级或者变更时,只需要更新第二动态库,而不需要更改、编译其它的进程,可以提高程序的可维护性、降低程序的升级难度。
业务分发进程120用于接收上层调用进程发送的业务处理消息,并确定处理每条业务处理消息的独立业务进程130,将业务处理消息分发至对应的目标独立业务进程130。其中,上层调用进程可以是其它程序中的进程;或者,也可以是主进程所属的程序中用于进行人机交互的其它进程,本实施例不对上层调用进程的类型作限定。
示意性地,业务处理消息包括消息标识和消息内容。消息标识可以是根据业务类型生成,每种业务类型对应一个消息标识,比如:有关登录业务的业务处理消息的消息标识为“msg_login”、有关注销业务的业务处理消息的消息标识为“msg_logout”。消息内容表示业务处理过程中需要传入、传出的数据,该消息内容可以序列化,比如:基于JSON、XML、Protocol Buffer等格式进行序列化。
可选地,业务分发进程120中还包括每个独立业务进程130对应的消息缓存池,该消息缓存池用于存储对应的独立业务进程130所需处理的业务请求消息。在实际实现时,消息缓存池可以实现为消息队列。
独立业务进程130是按照业务逻辑划分的,也即,每个独立业务进程对应一个业务逻辑。可选地,不同的独立业务进程可以对应不同的业务逻辑;或者,不同的独立业务进程可以对应同一业务逻辑。其中,业务逻辑是指一个实体单元为了向另一个实体单元提供服务所需具备的规则与流程。
可选地,至少一个独立业务进程130支持分布式部署在不同的设备中,这样,若存在一个独立业务进程130需要处理隐私性的业务处理消息,可以将该独立业务进程130设置在一个独立的设备中,可以提高该独立业务进程130处理隐私性的业务处理消息的安全性。当然,至少一个独立业务进程130也可以部署在同一设备中,本实施例对此不作限定。
每个独立业务进程130预先订阅业务分发进程120中的业务处理消息。在订阅时,独立业务进程130将自身的进程标识和消息标识发送至业务分发进程120,业务分发进程保存进程标识和消息标识之间的对应关系,在接收到具有该消息标识的业务处理消息时,将该业务处理消息发送至对应的进程标识指示的独立业务进程130。
至少一个独立业务进程130支持资源共享。在进行资源共享时,不同的独立业务进程130之间基于远程过程调用(Remote Procedure Call,RPC)进行不同独立业务进程之间的资源共享。
可选地,本实施例中,主进程110、业务分发进程120和至少一个独立业务进程130之间采用套接字(socket)技术进行进程间通信。
图2是本申请一个实施例提供的异步多进程的业务处理方法的流程图,本实施例以该的方法应用于图1所示的异步多进程的业务处理系统中为例进行说明。该方法至少包括以下几个步骤:
步骤201,主进程启动业务分发进程和至少一个独立业务进程。
每个独立业务进程对应一个业务逻辑,且至少一个独立业务进程订阅业务分发进程中的业务处理消息。
可选地,主进程所属的设备中存储有用于启动业务分发进程和至少一个独立业务进程的配置文件,主进程启动后读取该配置文件启动业务分发进程和至少一个独立业务进程。
示意性地,配置文件包括以下内容中的至少一种:进程的动态库、启动程序的入口地址。当然,配置文件还可以包括其它内容,本实施例在此不再一一列举。
可选地,业务分发进程和至少一个独立业务进程启动之后,可以将自身的进程标识发送至主进程,主进程保存各个进程(包括业务分发进程和至少一个独立业务进程)的进程标识,这样,在主进程检测到某一进程存在异常时,可以根据进程标识将对应的进程回收。
可选地,主进程可以同时启动业务分发进程和至少一个独立业务进程;或者,也可以先启动业务分发进程,再至少一个独立业务进程,本实施例不对业务分发进程和至少一个独立业务进程之间的启动顺序作限定。
步骤202,业务分发进程接收业务处理消息,将业务处理消息分发至至少一个独立业务进程中的目标独立业务进程。
目标独立业务进程是指至少一个独立业务进程中用于处理待分发的业务处理消息的独立业务进程。
可选地,业务处理消息是上层调用进程发送的,该业务处理消息包括消息标识和消息内容,而业务分发进程中存储有消息标识与进程标识之间的对应关系,因此,业务分发进程在获取到业务处理消息之后,可以根据该对应关系确定出业务处理消息中的消息标识所对应的进程标识,并将该业务处理消息分发至进程标识对应的目标独立业务进程。
其中,消息标识与进程标识之间的对应关系是独立业务进程在订阅业务分发进程中的业务处理消息时发送的。进程标识可以是随机字符串、进程名称等,本实施例不对进程标识的形式作限定;消息标识可以是根据独立业务进程所能处理的业务类型生成,每种业务类型对应一个消息标识。
可选地,业务分发进程包括消息缓存池,且每个独立业务进程对应一个消息缓存池,当某一业务逻辑对应一个独立业务进程时,该独立业务进程对应业务分发进程中的一个消息缓存池;当某一业务逻辑对应至少两个独立业务进程时,该至少两个独立业务进程对应业务分发进程中的同一个消息缓存池。在实际实现时,消息缓存池可以实现为消息队列。
业务分发进程还可以监控每个独立业务进程对应的消息缓存池中业务处理消息的数量;在业务处理消息的数量达到数量阈值时,业务分发进程可以将后续请求进入消息缓存池的业务处理消息删除。为了方便后续排查问题,可以将分发和删除的业务处理消息均记录在日志中。
步骤203,目标独立业务进程获取业务分发进程分发的业务处理消息;对业务处理消息进行解析,得到业务处理消息指示业务内容;根据业务内容进行业务处理。
目标独立业务进程获取到业务分发进程分发的业务处理消息之后,根据业务处理消息的格式对业务处理消息进行解析,得到业务处理消息中的消息内容,并将消息内容传递至对应的业务处理模块,由该业务处理模块根据消息内容进行业务处理,比如:进行登录处理、用户注册处理等。
可选地,目标独立业务进程处理业务完成之后,将处理结果返回至业务分发进程;业务分发进程会将该处理结果返回至对应的上层调用进程。其中,处理结果包括消息标识和处理结果内容,业务分发进程根据消息标识与上层调用进程的进程标识之间的对应关系,确定处理结果中的消息标识对应的上层调用进程的进程标识,并将处理结果发送至该进程标识指示的上层调用进程。
其中,消息标识与上层调用进程的进程标识之间的对应关系是上层调用进程在订阅业务分发进程中的返回消息时发送的。
综上所述,本实施例提供的异步多进程的业务处理方法,通过由主进程启动业务分发进程和至少一个独立业务进程,每个独立业务进程对应一个业务逻辑,且至少一个独立业务进程订阅业务分发进程中的业务处理消息;业务分发进程接收业务处理消息;将业务处理消息分发至目标独立业务进程;目标独立业务进程获取业务分发进程分发的业务处理消息;对业务处理消息进行解析,得到业务处理消息指示业务内容;根据业务内容进行业务处理;可以解决已有的异步多进程架构中进程的安全性较低的问题;由于每个独立业务进程对应一个业务逻辑,因此,即使某个业务逻辑对应的独立业务进程崩溃,也不会影响其他进程的安全,可以提高异步多进程架构中进程的安全性。
另外,为了保证各个业务逻辑对应的独立业务进程处理业务处理消息的速度,本申请中,主进程还可以监测业务分发进程和/或独立业务进程是否存在异常,并在业务分发进程和/或独立业务进程存在异常时及时重启。下面对主进程监测业务分发进程和/或独立业务进程是否存在异常的过程进行介绍。
图3是本申请一个实施例提供的异步多进程的业务处理方法的流程图,本实施例以该的方法应用于图1所示的异步多进程的业务处理系统中,且各个步骤的执行主体为主进程110为例进行说明。基于上述实施例,在步骤201之后,该方法至少还包括以下几个步骤:
步骤301,向业务分发进程发送第一检测消息。
第一检测消息可以包括业务分发进程的进程标识,当然,也可以包括其他内容,本实施例对此不作限定。
可选地,主进程每隔第一预设时长向业务分发进程发送第一检测消息。
步骤302,在第一预设时长内未接收到业务分发进程发送的对第一检测消息的第一响应消息时,根据预存的第一配置信息重启业务分发进程。
第一配置信息包括首次启动业务分发进程时存储的信息。可选地,第一配置信息还包括首次启动业务分发进程时读取的信息。示意性地,第一配置信息包括但不限于以下内容中的至少一种:业务分发进程的名称、业务分发进程的动态库的地址、启动程序的入口地址、业务分发进程的进程标识。当然,第一配置文件还可以包括其它内容,本实施例在此不再一一列举。
步骤303,在重启业务分发进程之后,向业务分发进程发送至少一个独立业务进程的相关信息。
其中,相关信息用于供业务分发进程与至少一个独立业务进程重新建立连接。相关信息可以包括至少一个独立业务进程的进程标识,当然,也可以包括其它内容,本实施例对此不作限定。
综上所述,本实施例中,通过由主进程检测业务分发进程是否存在异常;在业务分发进程存在异常时,重启该业务分发进程,可以保证业务分发进程能够正常分发业务处理消息,保证业务分发进程的安全性,提高业务处理消息的处理速度。
图4是本申请一个实施例提供的异步多进程的业务处理方法的流程图,本实施例以该的方法应用于图1所示的异步多进程的业务处理系统中,且各个步骤的执行主体为主进程110为例进行说明。基于上述实施例,在步骤201之后,该方法至少还包括以下几个步骤:
步骤401,通过业务分发进程向至少一个独立业务进程分别发送第二检测消息。
可选地,每个独立业务进程对应一条第二检测消息,第二检测消息可以包括独立业务进程的进程标识,当然,也可以包括其他内容,本实施例对此不作限定。
可选地,主进程可以通过业务分发进程同步向至少一个独立业务进程发送第二检测消息;或者,主进程可以通过业务分发进程异步地向至少一个独立业务进程发送第二检测消息。
可选地,主进程每隔第二预设时长通过业务分发进程向独立业务进程发送第二检测消息。其中,第二预设时长可以与第一预设时长相同;或者,也可以与第一预设时长不同,本实施例对此不作限定。
可选地,主进程可以同时发送第一检测消息和至少一个第二检测消息;或者,也可以先发送第一检测消息,再发送至少一个第二检测消息;或者,还可以先发送至少一个第二检测消息,再发送第一检测消息,本实施例不对第一检测消息和第二检测消息之间的发送顺序作限定。
步骤402,在第二预设时长内未接收到第n个独立业务进程反馈的对第二检测消息的第二响应消息时,根据预存的第二配置信息重启第n个独立业务进程。
第二配置信息包括首次启动第n个独立业务进程时存储的信息,n为正整数。可选地,第二配置信息还包括首次启动第n个独立业务进程时读取的信息。示意性地,第二配置信息包括但不限于以下内容中的至少一种:第n个独立业务进程的名称、第n个独立业务进程的动态库的地址、启动程序的入口地址、第n个独立业务进程的进程标识。当然,第二配置文件还可以包括其它内容,本实施例在此不再一一列举。
n的值小于订阅业务分发进程中的业务处理消息的独立业务进程的总数。
步骤403,在重启第n个独立业务进程后,重新触发第n个独立业务进程订阅业务分发进程中的业务处理消息。
可选地,主进程重新触发第n个独立业务进程订阅业务分发进程中的业务处理消息时,基于socket向第n个独立业务进程发送触发消息,该触发消息包括业务分发进程的进程标识,且该触发消息用于触发第n个独立业务进程订阅进程标识指示的业务分发进程中的业务处理消息。相应地,第n个独立业务进程重启之后,若接收到触发消息,则向该触发消息中的进程标识指示的业务分发进程发送自身的进程标识和支持的消息标识,业务分发进程接收到进程标识和消息标识之后,存储该到进程标识和消息标识之间的对应关系。
综上所述,本实施例中,通过由主进程检测独立业务进程是否存在异常;在存在一个独立业务进程存在异常时重启存在异常的独立业务进程,可以保证各个独立业务进程能够正常处理业务处理消息,保证独立业务进程的安全性,提高业务处理消息的处理速度。
另外,基于图4所示的实施例,在步骤403之后,业务分发进程还会在主进程重启第n个独立业务进程之后,确定是否清空业务分发进程中第n个独立业务进程对应的业务处理消息;在确定清空业务分发进程中第n个独立业务进程对应的业务处理消息时,向上层调用进程发送通知消息,该通知消息用于通知上层调用进程第n个独立业务进程已重启。相应地,上层调用进程接收到通知消息后,可以将第n个独立业务进程对应的业务处理消息再次发送至业务分发进程。
可选地,业务分发进程在向上层调用进程发送通知消息时,可以通过广播的形式发送。
综上所述,本实施例通过确定是否清空业务分发进程中第n个独立业务进程对应的业务处理消息;在确定清空业务分发进程中第n个独立业务进程对应的业务处理消息时,向上层调用进程发送通知消息,可以防止一些具有时效性的业务处理消息在第n个独立业务进程重启之后才能被处理,导致这些业务处理消息过期的问题;通过向上层调用进程发送通知消息,由上层调用进程再次发送第n个独立业务进程处理的业务处理消息,可以保证这些业务处理消息的时效性。
可选地,基于上述各个实施例,在步骤201中,主进程还可以启动监控进程。监控进程启动后用于监控主进程是否异常;在确定出主进程异常时,重启主进程。
可选地,监控进程可以在windows平台使用批处理(bat)脚本实现;在linux环境下可以使用壳(shell)脚本实现;或者写成一个独立的程序来实现。
在监控进程重启主进程时,监控进程获取主进程的可执行程序的入口,根据该入口来实现主程序的重启。
综上所述,本实施例通过监控程序监控主进程是否异常,在确定出主进程异常时重启主进程,可以避免由于主进程出现异常,从而导致无法对业务分发进程和独立业务进程的安全性进行监控的问题;可以保证业务分发进程和独立业务进程的安全性。
可选地,基于上述各个实施例,在步骤201之后,若不同的独立业务进程之间需要进行资源共享,则可以基于RPC的方式来共享资源。示意性地,基于RPC的方式来共享资源时可以通过第三方组件实现,例如通过xmlrpc等第三方组件实现。
本实施例中,在不同的独立业务进程布置在同一个设备时,通过使用RPC来共享资源直接本机访问,避免烦琐的打包和解包的过程,并且不依赖于某种特定的协议,可以提高共享资源的效率;在不同的独立业务进程布置在同一个设备时,便于独立业务进程分布式扩展。
图5是本申请一个实施例提供的异步多进程的业务处理装置的框图,本实施例以该的装置应用于图1所示的异步多进程的业务处理系统中为例进行说明。该装置至少包括以下几个模块:进程启动模块510、消息分发模块520和消息处理模块530。
进程启动模块510,用于启动业务分发进程和至少一个独立业务进程,每个独立业务进程对应一个业务逻辑,且所述至少一个独立业务进程订阅所述业务分发进程中的业务处理消息;
消息分发模块520,用于接收业务处理消息;将所述业务处理消息分发至所述至少一个独立业务进程中的目标独立业务进程;
消息处理模块530,用于获取所述业务分发进程分发的业务处理消息;对所述业务处理消息进行解析,得到所述业务处理消息指示业务内容;根据所述业务内容进行业务处理。
相关细节参考上述方法实施例。
需要说明的是:上述实施例中提供的异步多进程的业务处理装置在进行异步多进程的业务处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将异步多进程的业务处理装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的异步多进程的业务处理装置与异步多进程的业务处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本申请一个实施例提供的异步多进程的业务处理装置的框图,该装置可以是包含图1所示的异步多进程的业务处理系统的装置。该装置至少包括处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如:4核心处理器、6核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本申请中方法实施例提供的异步多进程的业务处理方法。
在一些实施例中,异步多进程的业务处理装置还可选包括有:外围设备接口和至少一个外围设备。处理器601、存储器602和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。
当然,异步多进程的业务处理装置还可以包括更少或更多的组件,本实施例对此不作限定。
可选地,本申请还提供有一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的异步多进程的业务处理方法。
可选地,本申请还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的异步多进程的业务处理方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种异步多进程的业务处理系统,其特征在于,所述系统包括:
主进程,用于启动业务分发进程和至少一个独立业务进程,每个独立业务进程对应一个业务逻辑,且所述至少一个独立业务进程订阅所述业务分发进程中的业务处理消息;
所述业务分发进程,用于接收业务处理消息;将所述业务处理消息分发至所述至少一个独立业务进程中的目标独立业务进程;
所述目标独立业务进程,用于获取所述业务分发进程分发的业务处理消息;对所述业务处理消息进行解析,得到所述业务处理消息指示业务内容;根据所述业务内容进行业务处理。
2.根据权利要求1所述的系统,其特征在于,所述主进程,还用于:
向所述业务分发进程发送第一检测消息;
在第一预设时长内未接收到所述业务分发进程发送的对所述第一检测消息的第一响应消息时,根据预存的第一配置信息重启所述业务分发进程,所述第一配置信息是在首次启动所述业务分发进程时存储的;
重启所述业务分发进程之后,向所述业务分发进程发送所述至少一个独立业务进程的相关信息,所述相关信息用于供所述业务分发进程与所述至少一个独立业务进程重新建立连接。
3.根据权利要求1所述的系统,其特征在于,所述主进程,还用于:
通过所述业务分发进程向所述至少一个独立业务进程分别发送第二检测消息;
在第二预设时长内未接收到第n个独立业务进程反馈的对所述第二检测消息的第二响应消息时,根据预存的第二配置信息重启所述第n个独立业务进程,所述第二配置信息是在首次启动所述第n个独立业务进程时存储的,所述n为正整数;
在重启所述第n个独立业务进程后,重新触发所述第n个独立业务进程订阅所述业务分发进程中的业务处理消息。
4.根据权利要求3所述的系统,其特征在于,所述业务分发进程,还用于:
在所述主进程重启所述第n个独立业务进程之后,确定是否清空所述业务分发进程中所述第n个独立业务进程对应的业务处理消息;
在确定清空所述业务分发进程中所述第n个独立业务进程对应的业务处理消息时,向上层调用进程发送通知消息,所述通知消息用于通知所述上层调用进程所述第n个独立业务进程已重启。
5.根据权利要求1所述的系统,其特征在于,所述系统还包括监控进程,所述监控进程由所述主进程启动;
所述监控进程,用于监控所述主进程是否异常;在确定出所述主进程异常时,重启所述主进程。
6.根据权利要求1至5任一所述的系统,其特征在于,所述至少一个独立业务进程支持分布式部署在不同的设备中。
7.一种异步多进程的业务处理方法,其特征在于,所述方法包括:
通过主进程启动业务分发进程和至少一个独立业务进程,每个独立业务进程对应一个业务逻辑,且所述至少一个独立业务进程订阅所述业务分发进程中的业务处理消息;
通过所述业务分发进程接收业务处理消息;将所述业务处理消息分发至所述至少一个独立业务进程中的目标独立业务进程;
通过所述目标独立业务进程获取所述业务分发进程分发的业务处理消息;对所述业务处理消息进行解析,得到所述业务处理消息指示业务内容;根据所述业务内容进行业务处理。
8.一种异步多进程的业务处理装置,其特征在于,所述装置包括:
进程启动模块,用于启动业务分发进程和至少一个独立业务进程,每个独立业务进程对应一个业务逻辑,且所述至少一个独立业务进程订阅所述业务分发进程中的业务处理消息;
消息分发模块,用于接收业务处理消息;将所述业务处理消息分发至所述至少一个独立业务进程中的目标独立业务进程;
消息处理模块,用于获取所述业务分发进程分发的业务处理消息;对所述业务处理消息进行解析,得到所述业务处理消息指示业务内容;根据所述业务内容进行业务处理。
9.一种异步多进程的业务处理装置,其特征在于,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如权利要求7所述的异步多进程的业务处理方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如权利要求7所述的异步多进程的业务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810832967.4A CN109032767B (zh) | 2018-07-26 | 2018-07-26 | 异步多进程的业务处理系统、方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810832967.4A CN109032767B (zh) | 2018-07-26 | 2018-07-26 | 异步多进程的业务处理系统、方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109032767A true CN109032767A (zh) | 2018-12-18 |
CN109032767B CN109032767B (zh) | 2021-04-02 |
Family
ID=64646522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810832967.4A Active CN109032767B (zh) | 2018-07-26 | 2018-07-26 | 异步多进程的业务处理系统、方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109032767B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131296A (zh) * | 2019-12-30 | 2020-05-08 | 杭州迪普科技股份有限公司 | 消息分发方法和装置 |
CN112799795A (zh) * | 2019-11-14 | 2021-05-14 | 阿里巴巴集团控股有限公司 | 业务实现方法、进程管理方法、装置、设备及存储介质 |
CN113590362A (zh) * | 2021-08-10 | 2021-11-02 | 中孚信息股份有限公司 | 进程间消息处理方法、装置、电子设备及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101482829A (zh) * | 2009-01-22 | 2009-07-15 | 华为技术有限公司 | 集群系统、处理装置及集群系统冗余方法 |
CN101826003A (zh) * | 2010-04-16 | 2010-09-08 | 中兴通讯股份有限公司 | 多线程处理方法和装置 |
CN101986593A (zh) * | 2010-10-22 | 2011-03-16 | 意法·爱立信半导体(北京)有限公司 | 终端上报调度信息的方法及终端 |
CN102055573A (zh) * | 2009-11-03 | 2011-05-11 | 大唐移动通信设备有限公司 | 一种harq进程的处理方法、设备和系统 |
CN102984500A (zh) * | 2012-10-26 | 2013-03-20 | 安科智慧城市技术(中国)有限公司 | 一种实现多种视频监控设备兼容的方法、装置和系统 |
CN104216765A (zh) * | 2014-08-15 | 2014-12-17 | 东软集团股份有限公司 | 一种多线程并发处理业务的方法和系统 |
CN104834506A (zh) * | 2015-05-15 | 2015-08-12 | 北京北信源软件股份有限公司 | 一种采用多线程处理业务应用的方法 |
CN105045651A (zh) * | 2015-06-26 | 2015-11-11 | 广州华多网络科技有限公司 | 业务处理系统及方法 |
CN105426231A (zh) * | 2014-09-04 | 2016-03-23 | 腾讯科技(深圳)有限公司 | 多进程处理装置和多进程处理方法 |
CN105528254A (zh) * | 2015-12-07 | 2016-04-27 | 贵阳朗玛信息技术股份有限公司 | 一种业务处理方法及装置 |
CN105827604A (zh) * | 2016-03-15 | 2016-08-03 | 深圳市游科互动科技有限公司 | 服务器业务处理方法及服务器 |
CN107436831A (zh) * | 2016-05-26 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 用于客户端服务器系统的监控方法和装置 |
-
2018
- 2018-07-26 CN CN201810832967.4A patent/CN109032767B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101482829A (zh) * | 2009-01-22 | 2009-07-15 | 华为技术有限公司 | 集群系统、处理装置及集群系统冗余方法 |
CN102055573A (zh) * | 2009-11-03 | 2011-05-11 | 大唐移动通信设备有限公司 | 一种harq进程的处理方法、设备和系统 |
CN101826003A (zh) * | 2010-04-16 | 2010-09-08 | 中兴通讯股份有限公司 | 多线程处理方法和装置 |
CN101986593A (zh) * | 2010-10-22 | 2011-03-16 | 意法·爱立信半导体(北京)有限公司 | 终端上报调度信息的方法及终端 |
CN102984500A (zh) * | 2012-10-26 | 2013-03-20 | 安科智慧城市技术(中国)有限公司 | 一种实现多种视频监控设备兼容的方法、装置和系统 |
CN104216765A (zh) * | 2014-08-15 | 2014-12-17 | 东软集团股份有限公司 | 一种多线程并发处理业务的方法和系统 |
CN105426231A (zh) * | 2014-09-04 | 2016-03-23 | 腾讯科技(深圳)有限公司 | 多进程处理装置和多进程处理方法 |
CN104834506A (zh) * | 2015-05-15 | 2015-08-12 | 北京北信源软件股份有限公司 | 一种采用多线程处理业务应用的方法 |
CN105045651A (zh) * | 2015-06-26 | 2015-11-11 | 广州华多网络科技有限公司 | 业务处理系统及方法 |
CN105528254A (zh) * | 2015-12-07 | 2016-04-27 | 贵阳朗玛信息技术股份有限公司 | 一种业务处理方法及装置 |
CN105827604A (zh) * | 2016-03-15 | 2016-08-03 | 深圳市游科互动科技有限公司 | 服务器业务处理方法及服务器 |
CN107436831A (zh) * | 2016-05-26 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 用于客户端服务器系统的监控方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799795A (zh) * | 2019-11-14 | 2021-05-14 | 阿里巴巴集团控股有限公司 | 业务实现方法、进程管理方法、装置、设备及存储介质 |
CN111131296A (zh) * | 2019-12-30 | 2020-05-08 | 杭州迪普科技股份有限公司 | 消息分发方法和装置 |
CN113590362A (zh) * | 2021-08-10 | 2021-11-02 | 中孚信息股份有限公司 | 进程间消息处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109032767B (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11316800B2 (en) | Method and system for managing applications | |
WO2019174473A1 (zh) | 用户界面渲染方法、装置及终端 | |
CN109831456A (zh) | 消息推送方法、装置、设备及存储介质 | |
CN109032767A (zh) | 异步多进程的业务处理系统、方法、装置及存储介质 | |
CN107688502B (zh) | 进程间通信方法及装置 | |
CN111694674B (zh) | 消息分发处理方法、装置、设备及存储介质 | |
CN110457038B (zh) | 附属应用端的卡片显示方法、装置、设备以及存储介质 | |
US10404568B2 (en) | Agent manager for distributed transaction monitoring system | |
US9727364B2 (en) | Virtual device hypervisor memory limited receive queuing | |
CN106648937B (zh) | 一种安卓应用的广播代理方法和装置 | |
WO2019201340A1 (zh) | 处理器核心调度方法、装置、终端及存储介质 | |
CN113312165B (zh) | 一种任务处理方法及装置 | |
WO2017020458A1 (zh) | 一种插件调用方法及装置 | |
WO2022017007A1 (zh) | 音频数据处理方法、服务器及存储介质 | |
EP4119207A1 (en) | Vibration control method and apparatus, and electronic device and computer-readable storage medium | |
US11785100B2 (en) | System and method for software services platform architecture for supporting standalone services or development environments | |
US20150236942A1 (en) | Remotely Controlling Devices and Proscessing Asynchronous Events for Testing | |
EP3750061A1 (en) | Event to serverless function workflow instance mapping mechanism | |
US20140304706A1 (en) | Method and device for setting status of application | |
CN114327087A (zh) | 输入事件处理方法、装置、电子设备和存储介质 | |
CN115996179A (zh) | 业务节点的测试方法、装置、可读介质和电子设备 | |
US9690748B1 (en) | Delivering notifications to background applications | |
WO2015192671A1 (zh) | 一种电视界面交互方法、装置及机顶盒 | |
CN113839828B (zh) | 一种网络质量探测方法、装置、终端设备及介质 | |
CN105279063B (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 |