CN112019452B - 一种业务需求的处理方法、系统及相关装置 - Google Patents
一种业务需求的处理方法、系统及相关装置 Download PDFInfo
- Publication number
- CN112019452B CN112019452B CN202010850183.1A CN202010850183A CN112019452B CN 112019452 B CN112019452 B CN 112019452B CN 202010850183 A CN202010850183 A CN 202010850183A CN 112019452 B CN112019452 B CN 112019452B
- Authority
- CN
- China
- Prior art keywords
- thread
- communication channel
- service
- service requirement
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000004891 communication Methods 0.000 claims abstract description 94
- 230000006870 function Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 8
- 238000003672 processing method Methods 0.000 claims description 6
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000002457 bidirectional effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种业务需求的处理方法,包括:获取所述业务需求;根据所述业务需求确定待创建线程的线程数,并基于所述线程数创建第一线程;根据所述业务需求将所述第一线程关联至对应业务类型的通信信道的第一端;利用所述通信信道第二端的第二线程执行所述第一线程发送的消息请求。本申请解耦线程与通信信道,使得业务处理架构更灵活,同时在业务执行完毕后通信信道可用于其他相同类型的消息请求,提高通信信道的利用率,从而提高业务需求在高并发情况下的处理效率。本申请还提供一种业务需求的处理系统、计算机可读存储介质和电子设备,具有上述有益效果。
Description
技术领域
本申请涉及数据处理领域,特别涉及一种业务需求的处理方法、系统及相关装置。
背景技术
当前,采用了Actor模型实现消息的收发,其使用消息模型,每个actor在同一时间处理最多一个消息,可以发送消息给其他actors,保证了单独写原则。但为了保证单独写原则,其包含多种复杂的锁机制,以及Actor模型的潜在死锁以及Actor模型执行实体频繁变动情况下带来的业务需求处理效率损失,使得Actor模型执行业务需求处理时效率较低,不利于针对高并发业务需求的高效处理。
发明内容
本申请的目的是提供一种业务需求的处理方法、系统、计算机可读存储介质和电子设备,能够实现高并发业务需求的高效处理。
为解决上述技术问题,本申请提供一种业务需求的处理方法,具体技术方案如下:
获取所述业务需求;
根据所述业务需求确定待创建线程的线程数,并基于所述线程数创建第一线程;
根据所述业务需求将所述第一线程关联至对应业务类型的通信信道的第一端;
利用所述通信信道第二端的第二线程执行所述第一线程发送的消息请求。
可选的,还包括:
利用信道创建函数创建所述通信信道;
配置所述通信信道对应的业务类型。
可选的,基于所述线程数创建第一线程时,还包括:
为所述第一线程配置发送函数,以便所述第一线程调用所述发送函数向所述通信信道发送所述业务需求对应的消息请求。
可选的,还包括:
为所述第二线程配置接收函数,以便所述第二线程调用所述接收函数从所述通信信道接收所述消息请求并处理。
可选的,若所述第二线程的数量无法满足所述消息请求处理需求,还包括:
建立与所述通信信道相同业务类型的第二通信信道;
和/或,
向处理器发送第二线程创建请求,以便所述处理器创建新的第二线程并关联至所述通信信道的第二端。
可选的,若所述通信信道中包含双向消息队列,且所述第一线程利用所述双向消息队列中的第一消息队列发送消息请求至所述第二线程时,还包括:
接收第二业务需求;
所述第二线程通过所述双向消息队列中的第二消息队列发送所述第二业务需求对应的消息请求至所述第一线程。
本申请还提供一种业务需求的处理系统,包括:
获取模块,用于获取所述业务需求;
线程创建模块,用于根据所述业务需求确定待创建线程的线程数,并基于所述线程数创建第一线程;
线程关联模块,用于根据所述业务需求将所述第一线程关联至对应业务类型的通信信道的第一端;
消息处理模块,用于利用所述通信信道第二端的第二线程执行所述第一线程发送的消息请求。
可选的,还包括:
信道创建模块,用于利用信道创建函数创建所述通信信道;配置所述通信信道对应的业务类型。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
本申请还提供一种电子设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
本申请提供一种业务需求的处理方法,包括:获取所述业务需求;根据所述业务需求确定待创建线程的线程数,并基于所述线程数创建第一线程;根据所述业务需求将所述第一线程关联至对应业务类型的通信信道的第一端;利用所述通信信道第二端的第二线程执行所述第一线程发送的消息请求。
本申请在根据业务需求创建对应的第一线程后,将第一线程关联至对应业务类型的通信信道,使得每个业务需求在执行时均实现将对应的第一线程关联至相应类型的通信信道,使得业务需求处理过程中重点关注线程与对应的通信信道,而不再执着于线程与线程之间的通信,从而解耦线程与通信信道,即线程和通信信道不必再绑定,使得业务处理架构更灵活,同时在业务执行完毕后通信信道可用于其他相同类型的消息请求,提高通信信道的利用率,从而提高业务需求在高并发情况下的处理效率。本申请还提供一种业务需求的处理系统、计算机可读存储介质和电子设备,具有上述有益效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种业务需求的处理方法的流程图;
图2为本申请实施例所提供的一种业务需求的处理系统结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种业务需求的处理方法的流程图,该方法包括:
S101:获取所述业务需求;
S102:根据所述业务需求确定待创建线程的线程数,并基于所述线程数创建第一线程;
容易理解的是,任意一个业务需求其可以由相对应的进程实现,而一个进程可以包括若干线程,且不同类型的业务需求其所需要线程数量可能并不相同,甚至相同类型的业务需求也可能存在需求线程量差异。本步骤旨在确定获取到的业务需求对应待创建线程的线程数。具体的,可以根据业务需求的业务类型和业务目标直接确定对应的线程数,并创建相应的第一线程。
容易理解的是,根据业务需求创建的所有线程均为第一线程,其用于承载业务需求对应的消息请求。
作为本步骤一种优选的执行方式,还可以在执行本步骤创建第一线程后,为所述第一线程配置发送函数,以便在后续步骤中第一线程可以调用发送函数向通信信道发送业务需求对应的消息请求。
S103:根据所述业务需求将所述第一线程关联至对应业务类型的通信信道的第一端;
在得到第一线程后,将第一线程关联至对应业务类型的通信信道的第一端。本实施例默认在执行本步骤前,该通信信道已经存在。而该通信信道在本实施例执行前创建,或是在本实施例执行后、本步骤之前创建均可。在此对于如何创建通信信道不作具体限定,可以利用信道创建函数创建通信信道,并配置通信信道对应的业务类型。利用可以利用make函数作为信道创建函数创建通信信道,或者利用其它信道创建函数创建通信信道均应在本申请的保护范围内。
其次,每个通信信道具有其对应的业务类型,其也仅允许相同业务类型的第一线程关联。需要注意的是,同一业务类型可以对应由多条通信信道,但每个通信信道只能对应一种业务类型。在此对于业务需求所包含的业务类型种类不作具体限定,例如可以包括注册、登录、数据变更等等,均可以作为业务类型。
因此,本步骤需要将第一线程关联至对应业务类型的通信信道,且需要关联至第一端。在本实施例中,第一线程用于承载业务需求对应的消息请求,并利用通信信道第二端的第二线程加以执行,而实际上,对于通信信道而言,其第一端和第二端并无任何区别,仅分别作为消息请求的发送方和接收方加以区分。
特别需要说明的是,业务需求中可能涉及多种业务类型,此时第一线程中也包含多种业务类型的线程,此时需要分别将每个线程关联至对应类型的通信信道。
S104:利用所述通信信道第二端的第二线程执行所述第一线程发送的消息请求。
在第一线程关联至第一端后,即可利用位于通信信道另一端的第二线程执行对应业务需求对应的消息请求。类似于步骤S103,本步骤默认第二线程也关联至通信信道。此时也可以为第二线程配置接收函数,以便第二线程调用接收函数从通信信道接收消息请求并处理。需要注意的是,第二线程用于处理该业务类型相关的消息请求,即电子设备中可以执行该业务类型对应消息请求的线程均可以作为第二线程关联至通信信道。
还需要注意的是,通信信道第二端的第二线程均可以接收到通信信道中存在的消息请求,且每个消息请求具备唯一性,即同一消息请求被某一个第二线程接收后,其他第二线程无法再次接收到该消息请求,这样可以保证同一消息请求不被重复执行。同样的,通信信道第一端的第一线程若由多个线程组成,则多个线程均可以向通信信道中发送消息请求,则此时通信信道第二端的第二线程可以按照消息请求的顺序依次接收,但具体的接收顺序可以按照第二线程中各线程之间的顺序决定,若第二线程中不存在线程执行顺序,则针对每一个消息请求可以随机选择当前空闲的线程执行。
本实施例中,每个线程仅与通信信道建立直接关联,而不再关注线程之间的通信,不再出现线程间通信结束后信道依旧与线程绑定,造成信道空占的浪费。本申请实施例在根据业务需求创建对应的第一线程后,将第一线程关联至对应业务类型的通信信道,使得每个业务需求在执行时均实现将对应的第一线程关联至相应类型的通信信道,使得业务需求处理过程中重点关注线程与对应的通信信道,而不再执着于线程与线程之间的通信,从而解耦线程与通信信道,即线程和通信信道不必再绑定,使得业务处理架构更灵活,同时在业务执行完毕后通信信道可用于其他相同类型的消息请求,提高通信信道的利用率,从而提高业务需求在高并发情况下的处理效率。
基于上述实施例,作为优选的实施例,若第二线程的数量无法满足消息请求处理需求,还可以包括:
建立与通信信道相同业务类型的第二通信信道,和/或,向处理器发送第二线程创建请求,以便处理器创建新的第二线程并关联至通信信道的第二端。
由于同一通信信道中,第一线程中的线程数量可能超过第二线程中的线程数,使得第二线程中的线程无法及时处理第一线程发出的消息请求,即不满足第一线程的消息处理需求,此时可以建立另一个相同业务类型的第二通信信道,并配置第二通信信道对应的第二线程加以处理消息请求。或者向处理反馈,以便生成更多的第二线程用于该通信信道中第一线程发出的消息请求。
基于上述实施例,作为优选的实施例,若通信信道中包含双向消息队列,且第一线程利用双向消息队列中的第一消息队列发送消息请求至第二线程时,还可以接收第二业务需求,第二线程通过双向消息队列中的第二消息队列发送第二业务需求对应的消息请求至第一线程。
当通信信道包含双向消息队列时,此时第一线程和第二线程可以同时为消息请求的发送方和接收方。通常情况下,任一时间点,第一线程和第二线程中的任一线程仅可存在发送方和接收方中的一种身份,即任何一个线程不能同时为发送方和接收方,但可以在发送消息请求后成为接收方,也可以在处理完消息请求后成为发送方。通信信道的第一端和第二端中均可以同时存在发送方和接收方,此时消息请求的发送依靠双向消息队列实现。双向消息队列中的任一条消息队列均为单向消息队列。
下面对本申请实施例提供的一种业务需求的处理系统进行介绍,下文描述的业务需求的处理系统与上文描述的一种业务需求的处理方法可相互对应参照。
参见图2,本申请还提供一种业务需求的处理系统,包括:
获取模块100,用于获取所述业务需求;
线程创建模块200,用于根据所述业务需求确定待创建线程的线程数,并基于所述线程数创建第一线程;
线程关联模块300,用于根据所述业务需求将所述第一线程关联至对应业务类型的通信信道的第一端;
消息处理模块400,用于利用所述通信信道第二端的第二线程执行所述第一线程发送的消息请求。
基于上述实施例,作为优选的实施例,还可以包括:
信道创建模块,用于利用信道创建函数创建所述通信信道;配置所述通信信道对应的业务类型。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种业务需求的处理方法,其特征在于,包括:
获取所述业务需求;
根据所述业务需求确定待创建线程的线程数,并基于所述线程数创建第一线程;
根据所述业务需求将所述第一线程关联至对应业务类型的通信信道的第一端;
利用所述通信信道第二端的第二线程执行所述第一线程发送的消息请求。
2.根据权利要求1所述的处理方法,其特征在于,还包括:
利用信道创建函数创建所述通信信道;
配置所述通信信道对应的业务类型。
3.根据权利要求1所述的处理方法,其特征在于,基于所述线程数创建第一线程时,还包括:
为所述第一线程配置发送函数,以便所述第一线程调用所述发送函数向所述通信信道发送所述业务需求对应的消息请求。
4.根据权利要求3所述的处理方法,其特征在于,还包括:
为所述第二线程配置接收函数,以便所述第二线程调用所述接收函数从所述通信信道接收所述消息请求并处理。
5.根据权利要求3所述的处理方法,其特征在于,若所述第二线程的数量无法满足所述消息请求处理需求,还包括:
建立与所述通信信道相同业务类型的第二通信信道;
和/或,
向处理器发送第二线程创建请求,以便所述处理器创建新的第二线程并关联至所述通信信道的第二端。
6.根据权利要求1所述的处理方法,其特征在于,若所述通信信道中包含双向消息队列,且所述第一线程利用所述双向消息队列中的第一消息队列发送消息请求至所述第二线程时,还包括:
接收第二业务需求;
所述第二线程通过所述双向消息队列中的第二消息队列发送所述第二业务需求对应的消息请求至所述第一线程。
7.一种业务需求的处理系统,其特征在于,包括:
获取模块,用于获取所述业务需求;
线程创建模块,用于根据所述业务需求确定待创建线程的线程数,并基于所述线程数创建第一线程;
线程关联模块,用于根据所述业务需求将所述第一线程关联至对应业务类型的通信信道的第一端;
消息处理模块,用于利用所述通信信道第二端的第二线程执行所述第一线程发送的消息请求。
8.根据权利要求7所述的处理系统,其特征在于,还包括:
信道创建模块,用于利用信道创建函数创建所述通信信道;配置所述通信信道对应的业务类型。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的方法的步骤。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1-6任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010850183.1A CN112019452B (zh) | 2020-08-21 | 2020-08-21 | 一种业务需求的处理方法、系统及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010850183.1A CN112019452B (zh) | 2020-08-21 | 2020-08-21 | 一种业务需求的处理方法、系统及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112019452A CN112019452A (zh) | 2020-12-01 |
CN112019452B true CN112019452B (zh) | 2022-06-17 |
Family
ID=73505410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010850183.1A Active CN112019452B (zh) | 2020-08-21 | 2020-08-21 | 一种业务需求的处理方法、系统及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112019452B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834506B (zh) * | 2015-05-15 | 2017-08-01 | 北京北信源软件股份有限公司 | 一种采用多线程处理业务应用的方法 |
CN110187985B (zh) * | 2019-05-30 | 2021-10-15 | 苏州浪潮智能科技有限公司 | 一种通信方法、系统及装置 |
CN110532076A (zh) * | 2019-08-09 | 2019-12-03 | 济南浪潮数据技术有限公司 | 一种云资源创建的方法、系统、设备及可读存储介质 |
CN111124702B (zh) * | 2019-11-22 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 性能数据采集方法、装置和计算机可读存储介质 |
-
2020
- 2020-08-21 CN CN202010850183.1A patent/CN112019452B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112019452A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766129B (zh) | 一种任务处理方法、装置及系统 | |
CN103780679A (zh) | 基于http协议的长延时远程调用方法 | |
CN101771723A (zh) | 数据同步方法 | |
CN109451020B (zh) | 超时管理方法、设备及计算机可读存储介质 | |
CN112465615B (zh) | 账单数据的处理方法、装置及系统 | |
CN112416625B (zh) | 免拷贝的进程间通信系统及方法 | |
CN114338063B (zh) | 消息队列系统、业务处理方法及计算机可读存储介质 | |
CN110912972A (zh) | 一种业务处理方法、系统、电子设备及可读存储介质 | |
WO2023131058A1 (zh) | 一种企业数字中台中资源服务应用的调度系统和方法 | |
CN110727507B (zh) | 一种消息的处理方法、装置、计算机设备和存储介质 | |
US8751560B2 (en) | Method and device arrangement for managing a client/server environment | |
CN101778131A (zh) | 数据同步系统 | |
CN101789963A (zh) | 数据同步系统 | |
CN106790354B (zh) | 一种防数据拥堵的通信方法及其装置 | |
CN112019452B (zh) | 一种业务需求的处理方法、系统及相关装置 | |
CN110297707A (zh) | 一种消息传输方法及装置 | |
CN114598662A (zh) | 消息队列集群联邦管理系统以及方法 | |
CN113687962A (zh) | 一种请求处理方法、装置、设备及存储介质 | |
CN114339637A (zh) | 一种短信拼接方法、装置、设备及存储介质 | |
CN112714181A (zh) | 一种数据传输方法及装置 | |
CN111724260B (zh) | 基于配置区块的多场景配置数据存储方法及系统 | |
CN113238859A (zh) | 一种基于数据存储的存储资源分配方法及系统 | |
CN115134167B (zh) | 一种漏洞扫描方法、装置、设备及存储介质 | |
CN114157566B (zh) | 一种基站性能文件解析方法及系统 | |
CN112052079A (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 |