CN113626011A - 基于php架构的数据请求处理方法、装置和设备 - Google Patents
基于php架构的数据请求处理方法、装置和设备 Download PDFInfo
- Publication number
- CN113626011A CN113626011A CN202110827834.XA CN202110827834A CN113626011A CN 113626011 A CN113626011 A CN 113626011A CN 202110827834 A CN202110827834 A CN 202110827834A CN 113626011 A CN113626011 A CN 113626011A
- Authority
- CN
- China
- Prior art keywords
- data
- client
- php
- pieces
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 78
- 230000008569 process Effects 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000010985 leather Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种基于PHP架构的数据请求处理方法、装置和设备。该方法包括:接收客户端发送的获取数据的请求;根据所述数据的内容将所述数据划分为N个子数据;调用多个php‑fpm并发进程分别获取所述N个子数据;将所述N个子数据进行合并后,发送给所述客户端。本申请中的服务器接收到来自客户端的http请求后,通过调用多个不同的进程同时并发执行获取不同的子数据,提高了数据获取的效率,减小了客户端等待的延时。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种基于PHP架构的数据请求处理方法、装置和设备。
背景技术
目前互联网web系统中的服务端,很多是基于PHP语言开发的系统,比较常见的架构是Nginx+php-fpm。随着客户端访问的增多以及业务逻辑越来越复杂的情况下,服务端的接口响应时间会大幅下降。如打开一个应用程序App的首页数据时,客户端增多后,接口的响应时间会逐渐变长,打开首页比较慢,进而影响用户体验。
发明内容
本申请的主要目的在于提供一种基于PHP架构的数据请求处理方法、装置和设备,以解决上述问题。
为了实现上述目的,根据本申请的一个方面,提供了一种基于PHP架构的数据请求处理方法,包括:
接收客户端发送的获取数据的请求;
根据所述数据的内容将所述数据划分为N个子数据;
调用多个php-fpm并发进程分别获取所述N个子数据;
将所述N个子数据进行合并后,发送给所述客户端;
N大于或者等于2。
在一种实施方式中,接收客户端发送的获取数据的请求,包括:采用第一服务器接收客户端发送的获取数据的请求;
调用并发进程分别获取所述N个子数据,包括:
采用第二服务器中的N个并发进程分别获取所述N个子数据。
在一种实施方式中,接收客户端发送的获取数据的请求,包括:采用第一服务器集群接收客户端发送的获取数据的请求;
调用并发进程分别获取所述N个子数据,包括:
采用第二服务器集群中的N个并发进程分别获取所述N个子数据。
在一种实施方式中,采用负载均衡机制,调用第二服务器集群中的N个并发进程分别获取所述N个子数据。
在一种实施方式中,采用第二服务器集群中的N个并发进程分别获取所述N个子数据,包括:
根据所述子数据的数量确定第二服务器集群中的服务器的数量;
每个服务器与每个子数据一一对应;
在所述第二服务器集群中,每个服务器对应获取一个子数据。
在一种实施方式中,将所述数据发送给所述客户端之前,所述方法还包括:对所述数据进行序列化处理。
第二方面,本申请还提出了一种基于PHP架构的数据请求处理装置,包括:
接收模块,用于接收客户端发送的获取数据的请求;
划分模块,用于根据所述数据的内容将所述数据划分为N个子数据;
获取数据模块,用于调用多个php-fpm并发进程分别获取所述N个子数据;将所述N个子数据进行合并后,发送给所述客户端;N大于或者等于2。
第三方面,本申请还提出了一种电子设备,包括:至少一个处理器和至少一个存储器;所述存储器用于存储一个或多个程序指令;所述处理器,用于运行一个或多个程序指令,用以执行如上述任一项所述的方法。
第四方面,本申请还提出了一种计算机可读存储介质,计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如上述任一项所述的方法。
在本申请实施例中,服务器接收到来自客户端的http请求后,通过调用多个不同的进程同时并发执行获取不同的子数据,提高了数据获取的效率,减小了客户端等待的延时。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据相关技术的一种进程串行执行获取数据的示意图;
图2是根据本申请实施例的一种基于PHP架构的数据请求处理方法的流程图;
图3是根据本申请实施例的一种并发执行获取数据的示意图;
图4是根据本申请实施例的另一种并发执行获取数据的示意图;
图5是根据本申请实施例的一种基于PHP架构的数据请求处理装置的结构示意图;
图6是根据本申请实施例的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
首先介绍一下本申请涉及到的专业术语。
PHP(超级文本预处理语言,Hypertext Preprocessor)是一种web主流开发语言,由于其语法较为简单易于编程,能够支持业务的发展和迭代升级,因此被广泛应用于各种系统或服务中。
线程,是程序执行流的最小单元,是CPU(中央处理器)调度和分派的基本单位。
参见附图1所示的现有技术中的一种进程串行执行获取数据的示意图。服务端接收到客户端的调用请求后,调用3个串行执行的进程,依次获取独立逻辑1的数据,独立逻辑2的数据和独立逻辑3的数据,增大了客户端等待的时间,降低了数据获取的效率。假设3个独立逻辑每个执行耗时200ms,整个接口调用为600ms,随着独立逻辑的增加,接口响应时间会越来越慢。
基于此,本申请提出了一种基于PHP架构的数据请求处理方法,参见附图2所示的一种基于PHP架构的数据请求处理方法的流程图;该方法包括:
步骤S202,接收客户端发送的获取数据的请求;
其中,数据获取请求为http请求。
步骤S204,根据所述数据的内容将所述数据划分为N个子数据;
步骤S206,调用多个php-fpm并发进程分别获取所述N个子数据;
其中,PHP-FPM是一个进程管理器。可以控制进程的开启和关闭。PHP-FPM可以控制多个进行并发执行,也可以控制多个进行串行执行。
具体的,可以预先为每个进行设置一个进程号。可以预先存储每个进程与对应的子数据的对应关系。根据该对应关系和子数据确定对应的进程。
参见附图3所示的一种并发执行获取数据的示意图;服务端接收到客户端的调用请求后,执行并发调用,调用3个并发执行的线程,分别获取独立逻辑1的数据、独立逻辑2的数据、独立逻辑3的数据。并发执行后,提高了数据获取的效率。
示例性的,客户端访问一个应用程序APP时,该APP的首页数据包括:文字、图片。文字为第一子数据;图片为第二子数据;可以调用第一php-fpm进程来获取文字,调用第二php-fpm进程来获取图片。
步骤S208,将所述N个子数据进行合并后,发送给所述客户端;
其中,N大于或者等于2。
上述的技术方案中,服务端为单台服务器的情况。结合图3,客户端发起请求,记作R1。在R1中,独立逻辑由原来普通函数调用,改为http请求,记作R2,相当于原有的接口上有N个独立逻辑就会增加N个http请求R2...RN。在R1执行到并发调用R2、R3、R4时,去请求了自身项目,因是单机单进程,php-fpm进程同时只能处理一个请求,在R1未处理完时,R2、R3、R4会等待R1执行完,然后在R1内部也在等待R2、R3、R4的结果返回,出现了死锁,最后客户端会收到超时的请求结果。主要是因为独立逻辑的http调用请求,在一定概率下,请求到了当前服务器的当前进程上,造成死循环。
通过代码部署来进行改进,参见附图4所示的另一种并发执行获取数据的示意图。与图3中的架构相比,图4对架构进行了改进,将服务器分为两组(G1,G2)。其中,G1和G2运行不同的负载均衡,一组服务器G1执行R1调用,另一组服务器G2执行R2、R3、R4的调用。在G1,G2两组每台服务器上对服务器进行标记,判断,如果是R1类型的请求全部发送到G1组;如果是独立逻辑R2、R3、R4...RN的请求全部发送到G2组,即可解决以上问题。原有的代码部署不需要发生变化,如果将G2改为新增服务器,只需要在代码部署时同时部署G1,G2服务器组即可。
所以,服务端可以设置至少两台服务器。在一种实施方式中,采用第一服务器接收客户端发送的获取数据的请求;采用第二服务器中的N个并发进程分别获取所述N个子数据。把并发进程获取数据的服务器和接收客户端请求的服务器分开,就可以避免死循环的情况发生。
还可以设置两组不同的服务器集群,在一种实施方式中,接收客户端发送的获取数据的请求,包括:采用第一服务器集群接收客户端发送的获取数据的请求;
调用并发进程分别获取所述N个子数据,包括:采用第二服务器集群中的N个并发进程分别获取所述N个子数据,具体包括:
根据所述子数据的数量N确定第二服务器集群中的服务器的数量为N;
每个服务器与每个子数据一一对应;
在所述第二服务器集群中,每个服务器对应获取一个子数据。
其中,第二服务器集群中,服务器的数量可以为N个,服务器与子数据一一对应。每个服务器获取对应的子数据。
具体的,可以采用负载均衡机制,调用第二服务器集群中的N个并发进程分别获取所述N个子数据。以实现更好的负载均衡。还可以实时统计每个服务器的IO利用率、CPU利用率、如果服务器的负担过重,超过了预定的警戒阈值,则加入新的服务器来分担该服务器的负载。或者服务器在获取数据的过程中,发生了故障,则调用新的服务器来代替执行数据获取任务。
在一种实施方式中,将所述数据发送给所述客户端之前,对所述数据进行序列化处理。
具体的,需要对参数进行序列化,可以是二进制,也可以是json格式,若参数为class类型,可以在服务端对类参数进行改造,使该class继承Serializable接口,由服务端编写序列化与反序列化的逻辑,在http传输过程中,传输序列化之后的参数,客户端接收到相应参数,再进行参数反序列化操作。
将独立逻辑的参数进行改造,统一成Protobuf Message的格式,返回值也统一成Protobuf Message。利用protobuf的序列化机制能够更好的简化业务端的处理。
本申请实施例的发明思想是,将每一段独立逻辑,拆在独立的http调用,多个逻辑在执行时,服务端内部并发调用自身项目的对应的独立逻辑的http接口,所有独立逻辑执行完后,将每一个独立逻辑的结果合并再返回给客户端。值得强调的是,调用自身项目,只需要在原项目增加相应的http路由,原有的逻辑代码仍保留在原有的代码位置,不需再再为独立逻辑拆分出来的http调用再维护一个新项目,业务端在代码编写上更加高效,且容易理解。开发人员仍按照原有的开发思维开发代码即可。
为了让原有的代码能保持最原始的写法,需要采用一套比较好的方案让原来的调用与改进后的调用尽可能达到高度的吻合,使业务端在编写业务逻辑时,不用去过多理解此方案的原理,更专注的去编写业务逻辑。
以下提出代码改进的最佳方案,主要利用了PHP语言的特性:
1.魔术函数_call,当调用一个不存在的函数时,会调用此勾子函数。
2.利用IDE的函数注释,让业务端编写代码时,和原有的逻辑一样方便快捷。
基于以上特性,对代码改进做出示例演示:
为了更清楚的说明代码逻辑,给出一个具体的调用场景:
客户端对服务端进行一次请求会执行SampleController->RenderAction()方法,RenderAction方法的逻辑中,需要获取3个独立逻辑(C1,C2,C3)的结果,C1,C2,C3有不同的输入参数和返回值。
下面为本申请的改进的并发模式的部分代码:
<?php
//编写独立的并发请求类来执行独立逻辑的请求;
class HttpClient{
/**
*当前的httpClient在调用的service名;
*@var string;
*/
private$_current_service=”;
private$_request=[];
/**
*调用结果,$requestKey=$serviceName.'_'.$function_name
*@var[$requestKey]$result;
*/
private$_result=[];
/**
注意此处的注释标记返回值,要写SampleService,以便在IDE中开发时,能使IDE能正确提示出service中的方法,提升开发人员的效率。
*因为要做多次调用,返回值其实是返回HttpClient,真正发起调用时,通过魔术函数_call来执行并发http调用。
*@return SampleService;
*/public function getSampleService(){
return$this;
}
public function__call($name,$arguments){
//将每个service的调用参数记录到数组中,可以理解成RPC调用,需要记录调用的方法名和该方法需要的参数。
$this->_request[$this->_current_service][]=[
'function_name'=>$name,
'args'=>$arguments,
];
}
/**
*执行并发调用;
*/
public function excute(){
//执行真正的http调用,此处给出伪代码;
$multiRequest=[];
foreach($this->_request as$service_name=>$reqArr){
foreach($reqArr as$req){
//requestKey标记了每一个独立逻辑的请求,业务端根据;
serviceName+function_name获取相应的请求结果;
$requestKey=$service_name.'_'.$req['function_name'];
$multiRequest[$requestKey]=$req['args'];
}
}
//逻辑实现,需要将以下函数改为并发的http调用,可以使用互联网上开源的http库。
//在进行http调用时,需要将函数的参数序列化成网络可传输的格式,如json,对方接收到该参数时再对参数进行反序列化。
$this->_result=fetchResult($multiRequest);
}
/**
*获取独立逻辑的结果;
*@param$service_name;
*@param$function_name;
*@return mixed;
*/
public function getResult($service_name,$function_name){
return$this->_result[$service_name.'_'.$function_name];
}
}
//业务端用代码;
$result=[
'C1'=>[],
'C2'=>[],
"C3"=>[],
];
$client=new HttpClient();
$service=$client->getSampleService();
//执行独立逻辑,皮代码的写法已经和原有的代码高度吻合,业务端更加高效;
$service->C1(1,'name',[1,2,3]);
$service->C2(1,2.34);
$service->C3(1,'name',[1,2,3],'foo');
//执行并发调用;
$client->excute();
/获取调用结果;
$result['C1']=$client->getResult('SampleService','C1');
$result['C2']=$client->getResult('SampleService','C2');
$result['C3']=$client->getResult('SampleService','C3');
var_dump($result)。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
与上述的方法对应,本申请还提出了一种基于PHP架构的数据请求处理装置,参见附图5所示的一种基于PHP架构的数据请求处理装置的结构示意图;该装置包括:
接收模块51,用于接收客户端发送的获取数据的请求;
划分模块52,用于根据所述数据的内容将所述数据划分为N个子数据;
获取数据模块53,用于调用多个php-fpm并发进程分别获取所述N个子数据;将所述N个子数据进行合并后,发送给所述客户端;N大于或者等于2。
在一种实施方式中,接收模块51位于第一服务器中,所示接收模块51接收客户端发送的获取数据的请求;
获取数据模块53位于第二服务器中,获取数据模块53用于,采用第二服务器中的N个并发进程分别获取所述N个子数据。
在一种实施方式中,接收模块51位于第一服务器集群中,接收模块51接收客户端发送的获取数据的请求;
获取数据模块53位于第二服务器集群中,获取数据模块53用于,采用第二服务器集群中的N个并发进程分别获取所述N个子数据。
在一种实施方式中,获取数据模块53还用于,采用负载均衡机制,调用第二服务器集群中的N个并发进程分别获取所述N个子数据。
在一种实施方式中,获取数据模块53还用于,根据所述子数据的数量确定第二服务器集群中的服务器的数量;
每个服务器与每个子数据一一对应;
在所述第二服务器集群中,每个服务器对应获取一个子数据。
在一种实施方式中,还包括数据处理模块54,数据处理模块54用于将所述数据发送给所述客户端之前,对所述数据进行序列化处理。
根据本申请的第三方面,提供了一种电子设备,参见附图6所示的电子设备的结构示意图;包括至少一个处理器61和至少一个存储器62;所述存储器62用于存储一个或多个程序指令;所述处理器61,用于运行一个或多个程序指令,用以执行上述任意一项的方法。
第四方面,本申请还提出了一种计算机可读存储介质,计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行上述任一项所述的方法。
可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。
存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。
易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,简称DRRAM)。
本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种基于PHP架构的数据请求处理方法,其特征在于,包括:
接收客户端发送的获取数据的请求;
根据所述数据的内容将所述数据划分为N个子数据;
调用多个php-fpm并发进程分别获取所述N个子数据;
将所述N个子数据进行合并后,发送给所述客户端;N大于或者等于2。
2.根据权利要求1所述的基于PHP架构的数据请求处理方法,其特征在于,接收客户端发送的获取数据的请求,包括:采用第一服务器接收客户端发送的获取数据的请求;
调用并发进程分别获取所述N个子数据,包括:
采用第二服务器中的N个并发进程分别获取所述N个子数据。
3.根据权利要求1所述的基于PHP架构的数据请求处理方法,其特征在于,
接收客户端发送的获取数据的请求,包括:采用第一服务器集群接收客户端发送的获取数据的请求;
调用并发进程分别获取所述N个子数据,包括:
采用第二服务器集群中的N个并发进程分别获取所述N个子数据。
4.根据权利要求1所述的基于PHP架构的数据请求处理方法,其特征在于,
采用负载均衡机制,调用第二服务器集群中的N个并发进程分别获取所述N个子数据。
5.根据权利要求3所述的基于PHP架构的数据请求处理方法,其特征在于,采用第二服务器集群中的N个并发进程分别获取所述N个子数据,包括:
根据所述子数据的数量确定第二服务器集群中的服务器的数量;
每个服务器与每个子数据一一对应;
在所述第二服务器集群中,每个服务器对应获取一个子数据。
6.根据权利要求1所述的基于PHP架构的数据请求处理方法,其特征在于,将所述数据发送给所述客户端之前,所述方法还包括:对所述数据进行序列化处理。
7.一种基于PHP架构的数据请求处理装置,其特征在于,包括:
接收模块,用于接收客户端发送的获取数据的请求;
划分模块,用于根据所述数据的内容将所述数据划分为N个子数据;
获取数据模块,用于调用多个php-fpm并发进程分别获取所述N个子数据;将所述N个子数据进行合并后,发送给所述客户端;N大于或者等于2。
8.一种电子设备,其特征在于,包括:至少一个处理器和至少一个存储器;所述存储器用于存储一个或多个程序指令;所述处理器,用于运行一个或多个程序指令,用以执行如权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110827834.XA CN113626011B (zh) | 2021-07-21 | 2021-07-21 | 基于php架构的数据请求处理方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110827834.XA CN113626011B (zh) | 2021-07-21 | 2021-07-21 | 基于php架构的数据请求处理方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626011A true CN113626011A (zh) | 2021-11-09 |
CN113626011B CN113626011B (zh) | 2024-02-13 |
Family
ID=78380466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110827834.XA Active CN113626011B (zh) | 2021-07-21 | 2021-07-21 | 基于php架构的数据请求处理方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626011B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040072450A (ko) * | 2003-02-07 | 2004-08-18 | 이민근 | 같은(닮은) 얼굴을 가진 인터넷상의 동호회 운영방법 및시스템 |
US20120010995A1 (en) * | 2008-10-23 | 2012-01-12 | Savnor Technologies | Web content capturing, packaging, distribution |
CN105278922A (zh) * | 2015-09-29 | 2016-01-27 | 新浪网技术(中国)有限公司 | 一种数据分发方法、系统及装置 |
CN106170016A (zh) * | 2016-07-28 | 2016-11-30 | 深圳市创梦天地科技有限公司 | 一种处理高并发数据请求的方法和系统 |
CN106850297A (zh) * | 2017-02-09 | 2017-06-13 | 合网络技术(北京)有限公司 | 网络请求的处理方法及装置 |
CN108366021A (zh) * | 2018-01-12 | 2018-08-03 | 北京奇虎科技有限公司 | 一种处理并发网页访问业务的方法及系统 |
CN111258822A (zh) * | 2020-01-15 | 2020-06-09 | 广州虎牙科技有限公司 | 数据处理方法、服务器和计算机可读存储介质 |
CN111913792A (zh) * | 2020-07-17 | 2020-11-10 | 郑州阿帕斯数云信息科技有限公司 | 一种业务处理方法和装置 |
CN112347169A (zh) * | 2020-10-26 | 2021-02-09 | 北京奇保信安科技有限公司 | 基于php框架的用户请求处理方法、装置及电子设备 |
CN112506950A (zh) * | 2020-12-10 | 2021-03-16 | 深圳前海微众银行股份有限公司 | 数据聚合处理方法、计算节点、计算集群及存储介质 |
US20210185111A1 (en) * | 2019-12-16 | 2021-06-17 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Data processing methods, electronic devices, and storage media |
-
2021
- 2021-07-21 CN CN202110827834.XA patent/CN113626011B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040072450A (ko) * | 2003-02-07 | 2004-08-18 | 이민근 | 같은(닮은) 얼굴을 가진 인터넷상의 동호회 운영방법 및시스템 |
US20120010995A1 (en) * | 2008-10-23 | 2012-01-12 | Savnor Technologies | Web content capturing, packaging, distribution |
CN105278922A (zh) * | 2015-09-29 | 2016-01-27 | 新浪网技术(中国)有限公司 | 一种数据分发方法、系统及装置 |
CN106170016A (zh) * | 2016-07-28 | 2016-11-30 | 深圳市创梦天地科技有限公司 | 一种处理高并发数据请求的方法和系统 |
CN106850297A (zh) * | 2017-02-09 | 2017-06-13 | 合网络技术(北京)有限公司 | 网络请求的处理方法及装置 |
CN108366021A (zh) * | 2018-01-12 | 2018-08-03 | 北京奇虎科技有限公司 | 一种处理并发网页访问业务的方法及系统 |
US20210185111A1 (en) * | 2019-12-16 | 2021-06-17 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Data processing methods, electronic devices, and storage media |
CN111258822A (zh) * | 2020-01-15 | 2020-06-09 | 广州虎牙科技有限公司 | 数据处理方法、服务器和计算机可读存储介质 |
CN111913792A (zh) * | 2020-07-17 | 2020-11-10 | 郑州阿帕斯数云信息科技有限公司 | 一种业务处理方法和装置 |
CN112347169A (zh) * | 2020-10-26 | 2021-02-09 | 北京奇保信安科技有限公司 | 基于php框架的用户请求处理方法、装置及电子设备 |
CN112506950A (zh) * | 2020-12-10 | 2021-03-16 | 深圳前海微众银行股份有限公司 | 数据聚合处理方法、计算节点、计算集群及存储介质 |
Non-Patent Citations (9)
Title |
---|
CESAR: "NGinX+PHP‑FPM Microservices deadlock", Retrieved from the Internet <URL:https://serverfault.com/ques tions/869504/nginx‑php‑fp m‑microservices‑deadlock> * |
CESAR: "NGinX+PHP-FPM Microservices deadlock", Retrieved from the Internet <URL:https://serverfault.com/questions/869504/nginx-php-fpm-microservices-deadlock> * |
ITNOSE网: "数据处理中提升性能的方法-引入并发但是避免同步_PHP_WEB", pages 1 - 6, Retrieved from the Internet <URL:www.jet-almost-lover.cn/Article/Detail/146392> * |
LEI SHEN: "Design and implementation of WebGIS based on FastCGI", 2010 18TH INTERNATIONAL CONFERENCE ON GEOINFORMATICS, pages 1 - 5 * |
MAHENDRA DATA 等: "The Design of High Availability Dynamic Web Server Cluster", 《2019 INTERNATIONAL CONFERENCE ON SUSTAINABLE INFORMATION ENGINEERING AND TECHNOLOGY(SIET)》, 10 December 2020 (2020-12-10), pages 181 - 186 * |
冯俊豪: "Swoole 入门之进 程模型", Retrieved from the Internet <URL:https://blog.junphp.com/det ails/461.jsp> * |
冯俊豪: "Swoole入门之进程模型", Retrieved from the Internet <URL:https://blog.junphp.com/details/461.jsp> * |
刘洪志: "PHP多线程抓取多个网页及获取数据的通用方法", 《电脑编程技巧与维护》, no. 2013, pages 60 - 62 * |
郑铸: "Web云操作系统用户管理即消息管理模块的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2014, pages 138 - 937 * |
Also Published As
Publication number | Publication date |
---|---|
CN113626011B (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10261845B2 (en) | Transparent integration of application components | |
US8516037B2 (en) | Methods for dynamic partitioning of applications in client-server environments | |
US10705883B2 (en) | Dynamic hybrid computing environment | |
US10817284B2 (en) | Melding of mediation flow service component architecture (SCA) components | |
US9971563B2 (en) | Systems and methods for low interference logging and diagnostics | |
US11595299B2 (en) | System and method of suppressing inbound payload to an integration flow of an orchestration based application integration | |
US10235223B2 (en) | High-performance computing framework for cloud computing environments | |
CN115145683B (zh) | 云服务实现方法及装置 | |
US9116855B2 (en) | Data processing system and data processing method | |
CN112930530B (zh) | 用于网络应用程序执行的客户端应用程序 | |
CN113722114A (zh) | 一种数据服务的处理方法、装置、计算设备及存储介质 | |
CN113626011B (zh) | 基于php架构的数据请求处理方法、装置和设备 | |
CN115811481A (zh) | 一种交互服务测试方法、装置、计算机设备及存储介质 | |
US9910834B2 (en) | Converting terminal-based legacy applications to web-based applications | |
US11017032B1 (en) | Document recovery utilizing serialized data | |
Christudas et al. | Microservices in depth | |
CN114760312B (zh) | 分布式任务协调方法、装置、设备和介质 | |
Imai et al. | Developing elastic software for the cloud | |
CN116192784B (zh) | 一种基于广播机器人的消息通知方法、装置及设备 | |
CN117608708A (zh) | 后端接口调用方法、装置、计算设备及存储介质 | |
CN116361035A (zh) | 远程接口调用方法、装置、电子设备及可读存储介质 | |
CN114327800A (zh) | topic的写入方法、写入装置、处理器与流处理平台 | |
CN116301780A (zh) | 基于Springboot框架的代码自动生成方法及系统 | |
CN117909035A (zh) | 一种对象能力调整方法、装置、电子设备及存储介质 | |
CN114817205A (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 |