CN107391281A - 一种服务器的数据处理方法、装置和存储介质 - Google Patents
一种服务器的数据处理方法、装置和存储介质 Download PDFInfo
- Publication number
- CN107391281A CN107391281A CN201710673634.7A CN201710673634A CN107391281A CN 107391281 A CN107391281 A CN 107391281A CN 201710673634 A CN201710673634 A CN 201710673634A CN 107391281 A CN107391281 A CN 107391281A
- Authority
- CN
- China
- Prior art keywords
- data processing
- thread
- service logic
- internal memory
- processing request
- 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 abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 299
- 238000000034 method Methods 0.000 claims abstract description 136
- 230000008569 process Effects 0.000 claims abstract description 122
- 230000006870 function Effects 0.000 description 18
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 8
- 230000009471 action Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003362 replicative effect Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 235000011464 Pachycereus pringlei Nutrition 0.000 description 1
- 240000006939 Pachycereus weberi Species 0.000 description 1
- 235000011466 Pachycereus weberi Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/544—Remote
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种服务器的数据处理方法、装置和存储介质;本发明实施例采用将接入层和业务逻辑层分别以线程的形式设置在同一数据处理进程中,然后,在需要进行数据处理时,调用该数据处理进程,通过其中的接入线程接收数据处理请求,并写入该数据处理进程对应的内存中,此后,再由业务逻辑线程从该内存中对该数据处理请求进行读取和处理;该方案不仅实现简单,而且,可以大大提高处理效率,有利于改善网络服务器的性能。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种服务器的数据处理方法、装置和存储介质。
背景技术
网络技术的高速发展、以及用户需求的持续增多,使得网络服务器所面对的数据量也越来越为庞大,而如何提高网络服务器的性能,使其能够更好地处理数据,也成为人们近年来尤为关注的一个问题。
在现有技术中,网络服务器一般分为网络接入层和业务逻辑层,网络接入层是一个进程,主要用于接收各种数据处理请求,而业务逻辑层是一组进程,可以根据该数据处理请求对数据进行具体的处理。其中,网络接入层与业务逻辑层主要通过共享内存进行通信。例如,当网络接入层接收到数据处理请求后,可以将该数据处理请求从自身内存复制至第一共享内存,然后,由业务逻辑层中的多个进程进行争抢,并从该第一共享内存中进行读取后,保存至该业务逻辑进程对应的内存中以进行处理;而业务逻辑层需要传送给网络接入层的数据,也同样需要先复制至第二共享内存,然后,由网络接入层从该第二共享内存中进行读取,以复制至该网络接入层对应的内存中。
在对现有技术的研究和实践过程中,本发明的发明人发现,现有方案至少需要开辟两块共享内存,而且,在处理数据时,需要进行多次的复制,因此,不仅实现较为复杂,而且,处理效率也较低,大大影响网络服务器的性能。
发明内容
本发明实施例提供一种服务器的数据处理方法、装置和存储介质;不仅实现简单,而且,可以大大提高处理效率,有利于改善网络服务器的性能。
本发明实施例提供一种服务器的数据处理方法,包括:
调用数据处理进程,所述数据处理进程包括接入线程和业务逻辑线程(Worker);
通过所述接入线程接收数据处理请求,并将所述数据处理请求写入所述数据处理进程对应的内存中;
通过所述业务逻辑线程从所述内存中读取数据处理请求;
采用所述业务逻辑线程对读取到的数据处理请求进行处理。
相应的,本发明实施例还提供一种服务器的数据处理装置,包括:
调用单元,用于调用数据处理进程,所述数据处理进程包括接入线程和业务逻辑线程;
接入单元,用于通过所述接入线程接收数据处理请求,并将所述数据处理请求写入所述数据处理进程对应的内存中;
读取单元,用于通过所述业务逻辑线程从所述内存中读取数据处理请求;
处理单元,用于采用所述业务逻辑线程对读取到的数据处理请求进行处理。
在一些实施例中,所述接入单元可以包括接收子单元和写入子单元,其中:
所述接收子单元,用于通过所述接入线程接收数据处理请求;
所述写入子单元,用于通过所述接入线程获取所述数据处理进程对应的写指针,由所述接入线程根据所述写指针将所述数据处理请求写入所述数据处理进程对应的内存中。
在一些实施例中,所述写入子单元,还可以用于通过所述接入线程对写指针进行更新。
在一些实施例中,所述读取单元,具体可以用于通过所述业务逻辑线程获取所述数据处理进程对应的读指针,由所述业务逻辑线程根据所述读指针从所述内存中读取数据处理请求。
在一些实施例中,所述读取单元,还可以用于通过所述业务逻辑线程对读指针进行更新。
在一些实施例中,所述处理单元,具体可以用于通过所述业务逻辑线程,根据读取到的数据处理请求确定操作对象和操作内容,以及通过所述业务逻辑线程对所述操作对象执行所述操作内容。
在一些实施例中,所述处理单元,所述调用单元,具体可以用于启动数据处理进程,根据所述数据处理进程调用相应的接入线程和动态库,加载所述动态库,以启动相应的业务逻辑线程。
在一些实施例中,该数据处理装置还可以包括建立单元,其中:
所述建立单元,用于获取业务逻辑配置信息,根据该业务逻辑配置信息建立动态库。
在一些实施例中,该数据处理装置还可以包括更新单元,其中:
更新单元,用于获取业务逻辑更新信息,根据该业务逻辑更新信息对该动态库进行更新。
此外,本发明实施例还提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例提供的任一种服务器的数据处理方法中的步骤。
本发明实施例采用将接入层和业务逻辑层分别以线程的形式设置在同一数据处理进程中,然后,在需要进行数据处理时,调用该数据处理进程,通过其中的接入线程接收数据处理请求,并写入该数据处理进程对应的内存中,此后,再由业务逻辑线程从该内存中对该数据处理请求进行读取和处理,从而达到对数据进行处理的目的;由于该方案可以将接入层和业务逻辑层合为一个进程,因此,接入层和业务逻辑层可以共用一个内存,而无需额外开辟共享内存,而且,也省略了将数据从内存复制至共享内存,以及从共享内存复制至内存的操作,所以,该方案相对于现有技术需要进行4次复制操作的方案而言,可以大大简化其操作,提高处理效率,有利于改善网络服务器的性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的服务器的数据处理方法的场景示意图;
图1b是本发明实施例提供的数据处理进程中各线程的关系示意图;
图1c是本发明实施例提供的服务器的数据处理方法的流程图;
图2a是本发明实施例提供的服务器的数据处理方法的另一流程图;
图2b是本发明实施例提供的数据处理进程处理方法中写数据的示意图;
图2c是本发明实施例提供的数据处理进程处理方法中读数据的示意图;
图3a是本发明实施例提供的服务器的数据处理装置的结构示意图;
图3b是本发明实施例提供的服务器的数据处理装置的另一结构示意图;
图4是本发明实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种服务器的数据处理方法、装置和存储介质。
其中,该服务器的数据处理装置具体可以集成在服务器,比如网络服务器等设备中。例如,以集成在网络服务器中为例,参见图1a,该网络服务器可以包括至少一个数据处理进程,比如数据处理进程1、数据处理进程2,……数据处理进程n,等等,每个数据处理进程具有相应的内存资源,为了描述方便,在本发明实施例中,将内存资源简称为内存(Buffer)。该数据处理进程可以对其他设备(比如设备A、设备B、……设备K,等等)发送的数据处理请求、或自身触发的数据处理请求进行处理。
参见图1b,在该网络服务器中,每个数据处理进程可以包括接入线程和多个业务逻辑线程(Worker)。接入线程,主要承担接入层的功能,具体可以用于接收各种数据处理请求,并将数据处理请求写入该数据处理进程对应的内存中;而业务逻辑线程则承担业务逻辑层的功能,可以用于从该内存中读取数据处理请求,并根据该数据处理请求对数据进行具体的处理。由于该方案将接入层和业务逻辑层合为一个进程,所以,接入层和业务逻辑层可以共用一个内存,而无需额外开辟共享内存;与此同时,由于接入层和业务逻辑层无需通过共享内存进行通信,因此,也省略了将数据从内存复制至共享内存,以及从共享内存复制至内存的操作,所以,不仅操作更为简化,而且,处理效率也可以得到提高。
以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
实施例一、
本实施将从服务器的数据处理装置(简称数据处理装置)的角度进行描述,该数据处理装置具体可以集成在服务器,比如网络服务器等设备中。
一种服务器的数据处理方法,包括:调用数据处理进程,该数据处理进程包括接入线程和业务逻辑线程;通过该接入线程接收数据处理请求,并将该数据处理请求写入该数据处理进程对应的内存中;通过该业务逻辑线程从该内存中读取数据处理请求;采用该业务逻辑线程对读取到的数据处理请求进行处理。
如图1c所示,该服务器的数据处理方法的具体流程可以如下:
101、调用数据处理进程,该数据处理进程包括接入线程和业务逻辑线程。
例如,具体可以启动数据处理进程,根据该数据处理进程调用相应的接入线程和动态库,然后,加载该动态库,以启动相应的业务逻辑线程。
其中,接入线程,主要承担接入层的功能,具体可以用于接收各种数据处理请求,并将数据处理请求写入该数据处理进程对应的内存中。而业务逻辑线程则承担业务逻辑层的功能,可以用于从该内存中读取数据处理请求,并根据该数据处理请求对数据进行具体的处理。
其中,动态库保存有业务逻辑代码,具体可以由运维人员预先进行设置,也可以由该数据处理装置自行进行建立,即在步骤“根据该数据处理进程调用相应的接入线程和动态库”之前,该服务器的数据处理方法还可以包括:
获取业务逻辑配置信息,根据该业务逻辑配置信息建立动态库。
其中,该业务逻辑配置信息具体可以根据实际应用的需求进行设置,所谓业务逻辑,指的是处理数据的逻辑,该处理数据的逻辑具体可以通过业务逻辑代码来体现,因此,可以在该业务逻辑配置信息中携带业务逻辑代码,进而将该业务逻辑代码保存在动态库中。这样,当加载该动态库时,便可以加载该业务逻辑代码,从而启动相应的业务逻辑线程,以对数据进行相应的处理。
可选的,还可以根据实际应用的需求对该动态库进行更新,即该服务器的数据处理方法还可以包括:
获取业务逻辑更新信息,根据该业务逻辑更新信息对该动态库进行更新。
102、通过该接入线程接收数据处理请求,并将该数据处理请求写入该数据处理进程对应的内存中。
例如,在通过该接入线程接收数据处理请求后,可以通过接入线程获取该数据处理进程对应的写指针,然后,由接入线程根据该写指针将该数据处理请求写入该数据处理进程对应的内存中。
其中,接入线程每写入一个数据处理请求,便会对写指针进行一次更新,即在步骤“根据该写指针将该数据处理请求写入该数据处理进程对应的内存中”之后,该服务器的数据处理方法还可以包括:
通过接入线程对写指针进行更新。
需说明的是,每一个数据处理进程均具有相应的内存资源,为了描述方便,在本发明实施例中,将内存资源简称为内存(Buffer),即每个数据处理进程均具有相应的内存,比如,数据处理进程1对应内存1,数据处理进程2对应内存2,数据处理进程3对应内存3,以此类推,等等。
103、通过该业务逻辑线程从该内存中读取数据处理请求。
例如,具体可通过该业务逻辑线程获取该数据处理进程对应的读指针,然后,由业务逻辑线程根据该读指针从该内存中读取数据处理请求。
其中,业务逻辑线程每读取一个数据处理请求,便可以对该读指针进行一次更新,即在步骤“根据该读指针从该内存中读取数据处理请求”之后,该服务器的数据处理方法还可以包括:
通过业务逻辑线程对读指针进行更新。
104、采用该业务逻辑线程对读取到的数据处理请求进行处理。
例如,具体可以由该业务逻辑线程根据读取到的数据处理请求确定操作对象和操作内容,然后,由该业务逻辑线程对该操作对象执行该操作内容。
比如,若操作对象为数据D,操作内容为“删除”,则此时,业务逻辑线程可以对数据D执行删除操作。
又比如,若操作对象为数据D,操作内容为“更新”,则此时,业务逻辑线程可以对数据D执行更新操作,以此类推,等等。
由上可知,本实施例采用将接入层和业务逻辑层分别以线程的形式设置在同一数据处理进程中,然后,在需要进行数据处理时,调用该数据处理进程,通过其中的接入线程接收数据处理请求,并写入该数据处理进程对应的内存中,此后,再由业务逻辑线程从该内存中对该数据处理请求进行读取和处理,从而达到对数据进行处理的目的;由于该方案可以将接入层和业务逻辑层合为一个进程,因此,接入层和业务逻辑层可以共用一个内存,而无需额外开辟共享内存,而且,也省略了将数据从内存复制至共享内存,以及从共享内存复制至内存的操作,所以,该方案相对于现有技术需要进行4次复制操作的方案而言,可以大大简化其操作,提高处理效率,有利于改善网络服务器的性能。
实施例二、
根据实施例一所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该数据处理装置具体集成在网络服务器中为例进行说明。
如图2a所示,一种服务器的数据处理方法,具体流程可以如下:
201、网络服务器启动本地(即网络服务器)的数据处理进程。
例如,网络服务器具体可以在接收到指示启动数据处理进程的指令时,根据该指令启动本地(即网络服务器)的数据处理进程。
其中,在网络服务器中,可以保存有多个数据处理进程,比如,数据处理进程1、数据处理进程2、……数据处理进程n,等等,每个数据处理进程具有相应的内存资源(即内存),比如,参见图1a,数据处理进程1对应内存资源1(即内存1),数据处理进程2对应内存资源2(即内存2)、数据处理进程n对应内存资源n(即内存n),以此类推,等等。其中,n为正整数,具体取值可根据实际应用的需求而定。
需说明的是,在该网络服务器中,不同的数据处理进程可以用于处理不同的事务,也可以处理同一事务,具体可以根据实际应用的需求而定,在此不再赘述。
202、网络服务器根据该数据处理进程调用相应的接入线程。
其中,接入线程,主要承担接入层的功能,具体可以用于接收各种数据处理请求,并将数据处理请求写入该数据处理进程对应的内存中。
例如,以启动的数据处理进程为“数据处理进程1”为例,则此时,网络服务器可以调用该“数据处理进程1”对应的接入线程。
又例如,若启动的数据处理进程为“数据处理进程2”,则此时,网络服务器可以调用该“数据处理进程2”对应的接入线程,以此类推,等等。
203、网络服务器根据该数据处理进程调用相应的动态库,并加载该动态库,以启动相应的业务逻辑线程。
例如,若启动的数据处理进程为“数据处理进程1”,则此时,网络服务器可以调用该“数据处理进程1”对应的动态库,比如调用动态库1,并加载该动态库1,以启动相应的业务逻辑线程。
又例如,若启动的数据处理进程为“数据处理进程2”,则此时,网络服务器可以调用该“数据处理进程2”对应的动态库,比如调用动态库2,并加载该动态库2,以启动相应的业务逻辑线程。
其中,动态库保存有业务逻辑代码,该动态库具体可以由运维人员预先进行设置,也可以由该网络服务器(即数据处理装置)自行进行建立,例如,该网络服务器可以获取业务逻辑配置信息,根据该业务逻辑配置信息建立业务逻辑的动态库,比如,具体可以构建该业务逻辑配置信息与业务逻辑线程的对应关系,然后,将该对应关系和业务逻辑配置信息保存在动图库中,等等。
其中,该业务逻辑配置信息可以携带业务逻辑代码,即可以将该业务逻辑代码保存在动态库中,这样,当加载该动态库时,便可以根据该对应关系确定需要启动的业务逻辑线程所对应的业务逻辑配置信息,进而加载该业务逻辑配置信息所携带的业务逻辑代码,以启动相应的业务逻辑线程。
可选的,还可以根据实际应用的需求对该动态库进行更新,比如,网络服务器可以获取业务逻辑更新信息,然后,根据该业务逻辑更新信息对该动态库进行更新,等等,在此不再赘述。
203、网络服务器通过接入线程接收数据处理请求,然后执行步骤204。
204、网络服务器通过接入线程获取该数据处理进程对应的写指针,并由接入线程根据该写指针将该数据处理请求写入该数据处理进程对应的内存中。
此后,该网络服务器还可以通过接入线程对写指针进行更新。
例如,以当前的数据处理请求为“数据处理请求a”,写指针指向的存储地址为“00000001”为例,则如图2b所示,接入线程可以根据该存储地址“00000001”将“数据处理请求a”写入至该数据处理进程对应的内存中,然后,对该写指针进行更新,比如,将该写指针指向的存储地址更新为“00000010”,这样,若后续接收到下一个数据处理请求,如“数据处理请求b”,接入线程便可以将该“数据处理请求b”保存至“00000010”所对应的内存存储空间,以此类推,等等。
可选的,接入线程在写入当前的数据处理请求后,还可以接收下一个数据处理请求,并获取更新后的写指针,以进行写入(即执行步骤203和204),其中,该接收下一个数据处理请求的步骤与步骤205的执行可以不分先后。
205、网络服务器通过业务逻辑线程获取该数据处理进程对应的读指针,并由业务逻辑线程根据该读指针从该内存中读取数据处理请求。
其中,业务逻辑线程每读取一个数据处理请求,便可以对该读指针进行一次更新,比如,如图2c所示,若当前的读指针指向的存储地址为“00000001”,则此时,业务逻辑线程可以根据该存储地址“00000001”从内存中读取相应的数据,比如“数据处理请求a”,然后,执行步骤205,并对该读指针进行更新,比如将该读指针指向的存储地址更新为“00000010”,这样,若需要对下个数据进行处理,便可以由业务逻辑线程根据该更新后的读指针“00000010”获取下一个数据,如获取“数据处理请求b”,以进行处理,以此类推,在此不再列举。
206、业务逻辑线程根据读取到的数据处理请求确定操作对象和操作内容。例如,具体可以如下:
若数据处理请求指示删除数据D,则此时,可以确定操作对象为数据D,操作内容为删除。
若数据处理请求指示修改数据D,则此时,可以确定操作对象为数据D,操作内容为修改。
若数据处理请求指示更新数据D,则此时,可以确定操作对象为数据D,操作内容为更新。
若数据处理请求指示添加数据D,则此时,可以确定操作对象为数据D,操作内容为添加。
依次类推,在此不再列举。
207、业务逻辑线程对该操作对象执行该操作内容。例如,具体可以如下:
若操作对象为数据D,操作内容为删除,则此时,可以对数据D执行删除操作。
若操作对象为数据D,操作内容为修改,则此时,可以对数据D执行修改操作。
若操作对象为数据D,操作内容为更新,则此时,可以对数据D执行更新操作。
若操作对象为数据D,操作内容为添加,则此时,可以对数据D执行添加操作。
可选的,业务逻辑线程在执行完当前的数据处理请求后,还可以进一步判断内存中是否还存在数据处理请求尚未处理,若是,则还可以采用步骤205至207的方式从该内存中读取下一个数据处理请求,以进行处理,否则,若内存中所有的数据处理请求均处理完毕,则可以结束该流程;此外,若接收到指示结束当前数据处理进程的指令,也需要结束更该流程。即在步骤207之后,该服务器的数据处理方法还可以包括步骤208,如下:
208、业务逻辑线程判断该内存(即该数据处理进程对应的内存)中是否还存在尚未处理的数据处理请求,以及判断是否接收到指示结束当前数据处理进程的指令,若内存中还存在尚未处理的数据处理请求,且未收到指示结束当前数据处理进程的指令,则返回执行步骤205,否则,若内存中所有的数据处理请求均处理完毕,或接收到指示结束当前数据处理进程的指令,则流程结束。
需说明的是,为了描述方便,在图2a中,仅以“判断内存中还存在尚未处理的数据处理请求”的步骤在前,“判断是否收到指示结束当前数据处理进程的指令”的步骤在后为例进行说明,应当理解的是,“判断内存中还存在尚未处理的数据处理请求”的步骤、以及“判断是否收到指示结束当前数据处理进程的指令”的步骤的执行可以不分先后,在此不再赘述。
由上可知,本实施例采用将接入层和业务逻辑层分别以线程的形式设置在同一数据处理进程中,然后,在需要进行数据处理时,调用该数据处理进程,通过其中的接入线程接收数据处理请求,并写入该数据处理进程对应的内存中,此后,再由业务逻辑线程从该内存中对该数据处理请求进行读取和处理,从而达到对数据进行处理的目的;由于该方案可以将接入层和业务逻辑层合为一个进程,因此,接入层和业务逻辑层可以共用一个内存,而无需额外开辟共享内存,而且,也省略了将数据从内存复制至共享内存,以及从共享内存复制至内存的操作,所以,该方案相对于现有技术需要进行4次复制操作的方案而言,可以大大简化其操作,提高处理效率,有利于改善网络服务器的性能。
此外,由于该方案可以通过加载动态库来启动业务逻辑线程,因此,只需设置动态库中的逻辑代码即可,而无需考虑数据收发的问题,大大降低开发和维护的难度和便利性。
实施例三、
为了更好地实施以上方法,本发明实施例还可以提供一种服务器的数据处理装置,简称数据处理装置,该数据处理装置具体可以集成在服务器,比如网络服务器等设备中。
例如,如图3a所示,该数据处理装置可以包括调用单元301、接入单元302、读取单元303和处理单元304,如下:
(1)调用单元301;
调用单元301,用于调用数据处理进程,该数据处理进程包括接入线程和业务逻辑线程。
例如,该调用单元301,具体可以用于启动数据处理进程,根据该数据处理进程调用相应的接入线程和动态库,加载该动态库,以启动相应的业务逻辑线程。
其中,接入线程,主要承担接入层的功能,具体可以用于接收各种数据处理请求,并将数据处理请求写入该数据处理进程对应的内存中。而业务逻辑线程则承担业务逻辑层的功能,可以用于从该内存中读取数据处理请求,并根据该数据处理请求对数据进行具体的处理。
其中,动态库保存有业务逻辑代码,具体可以由运维人员预先进行设置,也可以由该数据处理装置自行进行建立,即如图3b所示,该数据处理装置还可以包括建立单元305,如下:
建立单元305,用于获取业务逻辑配置信息,根据该配置信息建立动态库。
其中,该业务逻辑配置信息可以携带业务逻辑代码,即可以将该业务逻辑代码保存在动态库中。当调用单元301加载该动态库时,便可以加载该业务逻辑代码,从而启动相应的业务逻辑线程。
可选的,还可以根据实际应用的需求对该动态库进行更新,即该数据处理装置还可以包括更新单元306,如下:
更新单元306,用于获取业务逻辑更新信息,根据该业务逻辑更新信息对该动态库进行更新。
(2)接入单元302;
接入单元302,用于通过该接入线程接收数据处理请求,并将该数据处理请求写入该数据处理进程对应的内存中。
例如,该接入单元302可以包括接收子单元和写入子单元,如下:
该接收子单元,用于通过该接入线程接收数据处理请求。
该写入子单元,用于通过该接入线程获取该数据处理进程对应的写指针,由该接入线程根据该写指针将该数据处理请求写入该数据处理进程对应的内存中。
其中,该接入线程每写入一个数据处理请求,便会对写指针进行一次更新,即:
该写入子单元,还可以用于在接入线程写入数据处理请求后,对写指针进行更新。
(3)读取单元303;
读取单元303,用于通过该业务逻辑线程从该内存中读取数据处理请求;
例如,该读取单元303,具体可以用于通过该业务逻辑线程获取该数据处理进程对应的读指针,由该业务逻辑线程根据该读指针从该内存中读取数据处理请求。
其中,业务逻辑线程每读取一个数据处理请求,便可以对该读指针进行一次更新,即:
该读取单元303,还可以用于在业务逻辑线程读取数据处理请求后,通过对读指针进行更新。
(4)处理单元304;
处理单元304,用于采用该业务逻辑线程对读取到的数据处理请求进行处理。
例如,该处理单元304,具体可以用于通过该业务逻辑线程,根据读取到的数据处理请求确定操作对象和操作内容,以及通过该业务逻辑线程对该操作对象执行该操作内容。
比如,若操作对象为数据D,操作内容为“删除”,则此时,处理单元304可以通过业务逻辑线程对数据D执行删除操作。
又比如,若操作对象为数据D,操作内容为“更新”,则此时,处理单元304可以通过业务逻辑线程对数据D执行更新操作,以此类推,等等。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例采用将接入层和业务逻辑层分别以线程的形式设置在同一数据处理进程中,然后,在需要进行数据处理时,由调用单元301调用该数据处理进程,由接入单元302通过其中的接入线程接收数据处理请求,并写入至该数据处理进程对应的内存中,此后,再由读取单元303和处理单元304通过业务逻辑线程从该内存中对该数据处理请求进行读取和处理,从而达到对数据进行处理的目的;由于该方案可以将接入层和业务逻辑层合为一个进程,因此,接入层和业务逻辑层可以共用一个内存,而无需额外开辟共享内存,而且,也省略了将数据从内存复制至共享内存,以及从共享内存复制至内存的操作,所以,该方案相对于现有技术需要进行4次复制操作的方案而言,可以大大简化其操作,提高处理效率,有利于改善网络服务器的性能。
实施例四、
相应的,本发明实施例还提供一种服务器,具体可以作为本发明实施例所提供的网络服务器。如图4所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
服务器还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
调用数据处理进程,该数据处理进程包括接入线程和业务逻辑线程;通过该接入线程接收数据处理请求,并将该数据处理请求写入该数据处理进程对应的内存中;通过该业务逻辑线程从该内存中读取数据处理请求;采用该业务逻辑线程对读取到的数据处理请求进行处理。
其中,接入线程,主要承担接入层的功能,具体可以用于接收各种数据处理请求,并将数据处理请求写入该数据处理进程对应的内存中。而业务逻辑线程则承担业务逻辑层的功能,可以用于从该内存中读取数据处理请求,并根据该数据处理请求对数据进行具体的处理,即处理器401具体可以通过运行存储在存储器402中的应用程序,从而实现如下功能:
启动数据处理进程,根据该数据处理进程调用相应的接入线程和动态库,然后,加载该动态库,以启动相应的业务逻辑线程,此后,可以通过该接入线程接收数据处理请求,并通过接入线程获取该数据处理进程对应的写指针,由接入线程根据该写指针将该数据处理请求写入该数据处理进程对应的内存中,这样,后续便可以通过该业务逻辑线程获取该数据处理进程对应的读指针,然后,由业务逻辑线程根据该读指针从该内存中读取数据处理请求,并由业务逻辑线程对读取到的数据处理请求进行处理,比如,可以由该业务逻辑线程根据读取到的数据处理请求确定操作对象和操作内容,然后,由该业务逻辑线程对该操作对象执行该操作内容,等等。
其中,动态库保存有业务逻辑代码,具体可以由运维人员预先进行设置,也可以由该数据处理装置自行进行建立,即该处理器401还可以通过运行存储在存储器402中的应用程序,来实现如下功能:
获取业务逻辑配置信息,根据该业务逻辑配置信息建立动态库。
可选的,还可以根据实际应用的需求对该动态库进行更新,即该处理器401还可以通过运行存储在存储器402中的应用程序,来实现如下功能:
获取业务逻辑更新信息,根据该业务逻辑更新信息对该动态库进行更新。
以上各个操作具体可参见前面的实施例,在此不再赘述。
由上可知,本实施例的服务器采用将接入层和业务逻辑层分别以线程的形式设置在同一数据处理进程中,然后,在需要进行数据处理时,调用该数据处理进程,通过其中的接入线程接收数据处理请求,并写入该数据处理进程对应的内存中,此后,再由业务逻辑线程从该内存中对该数据处理请求进行读取和处理,从而达到对数据进行处理的目的;由于该方案可以将接入层和业务逻辑层合为一个进程,因此,接入层和业务逻辑层可以共用一个内存,而无需额外开辟共享内存,而且,也省略了将数据从内存复制至共享内存,以及从共享内存复制至内存的操作,所以,该方案相对于现有技术需要进行4次复制操作的方案而言,可以大大简化其操作,提高处理效率,有利于改善网络服务器的性能。
实施例五、
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
因此,本发明实施例还提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种数据处理方法中的步骤。例如,该指令可以如下步骤:
调用数据处理进程,该数据处理进程包括接入线程和业务逻辑线程;通过该接入线程接收数据处理请求,并将该数据处理请求写入该数据处理进程对应的内存中;通过该业务逻辑线程从该内存中读取数据处理请求;采用该业务逻辑线程对读取到的数据处理请求进行处理。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种数据处理方法中的步骤,因此,可以实现本发明实施例所提供的任一种数据处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种服务器的数据处理方法、装置和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种服务器的数据处理方法,其特征在于,包括:
调用数据处理进程,所述数据处理进程包括接入线程和业务逻辑线程;
通过所述接入线程接收数据处理请求,并将所述数据处理请求写入所述数据处理进程对应的内存中;
通过所述业务逻辑线程从所述内存中读取数据处理请求;
采用所述业务逻辑线程对读取到的数据处理请求进行处理。
2.根据权利要求1所述的方法,其特征在于,所述将所述数据处理请求写入所述数据处理进程对应的内存中,包括:
通过所述接入线程获取所述数据处理进程对应的写指针;
由所述接入线程根据所述写指针将所述数据处理请求写入所述数据处理进程对应的内存中;
所述由所述接入线程根据所述写指针将所述数据处理请求写入所述数据处理进程对应的内存中之后,还包括:由所述接入线程对写指针进行更新。
3.根据权利要求1所述的方法,其特征在于,所述通过所述业务逻辑线程从所述内存中读取数据处理请求,包括:
通过所述业务逻辑线程获取所述数据处理进程对应的读指针;
由所述业务逻辑线程根据所述读指针从所述内存中读取数据处理请求;
所述由所述业务逻辑线程根据所述读指针从所述内存中读取数据处理请求之后,还包括:由所述业务逻辑线程对读指针进行更新。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述调用数据处理进程,所述数据处理进程包括接入线程和业务逻辑线程,包括:
启动数据处理进程;
根据所述数据处理进程调用相应的接入线程和动态库;
加载所述动态库,以启动相应的业务逻辑线程。
5.根据权利要求4所述的方法,其特征在于,所述根据所述数据处理进程调用相应的接入线程和动态库之前,还包括:
获取业务逻辑配置信息;
根据所述业务逻辑配置信息建立动态库。
6.根据权利要求5所述的方法,其特征在于,还包括:
获取业务逻辑更新信息;
根据所述业务逻辑更新信息对所述动态库进行更新。
7.一种服务器的数据处理装置,其特征在于,包括:
调用单元,用于调用数据处理进程,所述数据处理进程包括接入线程和业务逻辑线程;
接入单元,用于通过所述接入线程接收数据处理请求,并将所述数据处理请求写入所述数据处理进程对应的内存中;
读取单元,用于通过所述业务逻辑线程从所述内存中读取数据处理请求;
处理单元,用于采用所述业务逻辑线程对读取到的数据处理请求进行处理。
8.根据权利要求7所述的装置,其特征在于,所述接入单元包括接收子单元和写入子单元;
所述接收子单元,用于通过所述接入线程接收数据处理请求;
所述写入子单元,用于通过所述接入线程获取所述数据处理进程对应的写指针,由所述接入线程根据所述写指针将所述数据处理请求写入所述数据处理进程对应的内存中。
9.根据权利要求7所述的装置,其特征在于,
所述读取单元,具体用于通过所述业务逻辑线程获取所述数据处理进程对应的读指针,由所述业务逻辑线程根据所述读指针从所述内存中读取数据处理请求。
10.根据权利要求7至9任一项所述的装置,其特征在于,
所述调用单元,具体用于启动数据处理进程,根据所述数据处理进程调用相应的接入线程和动态库,加载所述动态库,以启动相应的业务逻辑线程。
11.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至6任一项所述的服务器的数据处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710673634.7A CN107391281A (zh) | 2017-08-09 | 2017-08-09 | 一种服务器的数据处理方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710673634.7A CN107391281A (zh) | 2017-08-09 | 2017-08-09 | 一种服务器的数据处理方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107391281A true CN107391281A (zh) | 2017-11-24 |
Family
ID=60355033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710673634.7A Pending CN107391281A (zh) | 2017-08-09 | 2017-08-09 | 一种服务器的数据处理方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391281A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229908A (zh) * | 2017-12-08 | 2018-06-29 | 泰康保险集团股份有限公司 | 薪资考核方法和装置 |
CN109271193A (zh) * | 2018-10-08 | 2019-01-25 | 广州市百果园信息技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN115190124A (zh) * | 2022-06-24 | 2022-10-14 | 远光软件股份有限公司 | 基于分布式工业控制系统的消息传输方法、装置、存储介质及调度服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1928825A (zh) * | 2005-09-09 | 2007-03-14 | 腾讯科技(深圳)有限公司 | 一种服务器的实现方法以及服务器系统 |
CN104216768A (zh) * | 2014-09-22 | 2014-12-17 | 北京金山安全软件有限公司 | 一种数据处理方法及装置 |
CN106302240A (zh) * | 2016-08-19 | 2017-01-04 | 山东智洋电气股份有限公司 | 服务器端接收客户端并发连接和数据处理方法 |
CN106844041A (zh) * | 2016-12-29 | 2017-06-13 | 华为技术有限公司 | 内存管理的方法及内存管理系统 |
-
2017
- 2017-08-09 CN CN201710673634.7A patent/CN107391281A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1928825A (zh) * | 2005-09-09 | 2007-03-14 | 腾讯科技(深圳)有限公司 | 一种服务器的实现方法以及服务器系统 |
CN104216768A (zh) * | 2014-09-22 | 2014-12-17 | 北京金山安全软件有限公司 | 一种数据处理方法及装置 |
CN106302240A (zh) * | 2016-08-19 | 2017-01-04 | 山东智洋电气股份有限公司 | 服务器端接收客户端并发连接和数据处理方法 |
CN106844041A (zh) * | 2016-12-29 | 2017-06-13 | 华为技术有限公司 | 内存管理的方法及内存管理系统 |
Non-Patent Citations (2)
Title |
---|
刘晓建 等: "一种用于并行系统的非阻塞消息队列机制", 《计算机工程与科学》 * |
张慧翔 等: "《网络控制与应用》", 31 August 2013, 西北工业大学出版社 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229908A (zh) * | 2017-12-08 | 2018-06-29 | 泰康保险集团股份有限公司 | 薪资考核方法和装置 |
CN108229908B (zh) * | 2017-12-08 | 2021-10-08 | 泰康保险集团股份有限公司 | 薪资考核方法和装置 |
CN109271193A (zh) * | 2018-10-08 | 2019-01-25 | 广州市百果园信息技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN109271193B (zh) * | 2018-10-08 | 2023-01-13 | 广州市百果园信息技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN115190124A (zh) * | 2022-06-24 | 2022-10-14 | 远光软件股份有限公司 | 基于分布式工业控制系统的消息传输方法、装置、存储介质及调度服务器 |
CN115190124B (zh) * | 2022-06-24 | 2023-12-26 | 远光软件股份有限公司 | 基于分布式工业控制系统的消息传输方法、装置、存储介质及调度服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107632842B (zh) | 规则配置和发布方法、系统、设备及存储介质 | |
CN104021145B (zh) | 一种混合业务并发访问的方法和装置 | |
CN102063302B (zh) | 窗口管理方法、系统及终端 | |
CN108494703A (zh) | 一种访问频率控制方法、装置及存储介质 | |
CN107391281A (zh) | 一种服务器的数据处理方法、装置和存储介质 | |
CN108183947A (zh) | 分布式缓存方法及系统 | |
CN109491928A (zh) | 缓存控制方法、装置、终端及存储介质 | |
CN102231693A (zh) | 访问权限的管理方法及装置 | |
CN103080903A (zh) | 调度器、多核处理器系统以及调度方法 | |
CN106357791A (zh) | 业务处理方法、装置及系统 | |
CN105516117A (zh) | 一种基于云计算的电力数据安全存储方法 | |
CN110489407A (zh) | 数据补采方法、装置、计算机设备及存储介质 | |
CN107656776A (zh) | 一种fpga加速卡的固件更新方法、装置及介质 | |
CN107729570A (zh) | 用于服务器的数据迁移方法和装置 | |
CN102006297B (zh) | 一种基于两级策略决策的访问控制方法及其系统 | |
CN103019964B (zh) | 一种缓存数据访问方法及数据缓存系统 | |
CN103036855A (zh) | 一种权限管理的实现设备和方法 | |
CN107958018A (zh) | 缓存中的数据更新方法、装置及计算机可读介质 | |
CN103324679B (zh) | 一种缓存服务器中数据更新的控制方法和设备 | |
CN108694083A (zh) | 一种服务器的数据处理方法和装置 | |
CN103544151B (zh) | linux系统中数据处理的方法及系统 | |
CN112288397A (zh) | 流程模板配置方法、流程执行方法、装置和电子设备 | |
CN104636260B (zh) | 一种用于计费业务的数据管理方法及系统 | |
CN108287760A (zh) | 终端设备控制方法及装置、终端设备及计算机可读存储介质 | |
CN108763517A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171124 |
|
RJ01 | Rejection of invention patent application after publication |