CN110417624A - 请求的统计方法、装置及存储介质 - Google Patents

请求的统计方法、装置及存储介质 Download PDF

Info

Publication number
CN110417624A
CN110417624A CN201910818109.9A CN201910818109A CN110417624A CN 110417624 A CN110417624 A CN 110417624A CN 201910818109 A CN201910818109 A CN 201910818109A CN 110417624 A CN110417624 A CN 110417624A
Authority
CN
China
Prior art keywords
server
mark
cgi
service module
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
Application number
CN201910818109.9A
Other languages
English (en)
Other versions
CN110417624B (zh
Inventor
卓达城
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910818109.9A priority Critical patent/CN110417624B/zh
Publication of CN110417624A publication Critical patent/CN110417624A/zh
Application granted granted Critical
Publication of CN110417624B publication Critical patent/CN110417624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种请求的统计方法、装置及存储介质,包括:在第一服务器上获取目标请求中携带的目标公共网关接口CGI的标识;在第一服务器上将目标服务模块的标识,以及在预定时间内目标服务模块接收的目标CGI的标识发送给统计服务器;通过统计服务器对目标服务模块所接收的目标请求进行统计。通过本发明,解决了现有技术中无法得到特定的业务对整个分布式系统的影响的问题。

Description

请求的统计方法、装置及存储介质
技术领域
本发明涉及计算机领域,具体而言,涉及一种请求的统计方法、装置及存储介质。
背景技术
现代大型分布式系统一般提供多个业务。每个业务由多个公共网关接口CGI(Common Gateway Interface,简称CGI)提供服务。分布式系统中包含多个模块,每个模块会为不同业务的多个CGI提供服务。
业务使用者的每个动作都会产生一个请求,目前对业务的请求的统计方案有Dapper和zipkin。Dapper和zipkin对请求的统计均是基于请求ID,而仅基于请求的ID是无法知晓由某个CGI下发的请求是由哪个模块为其提供服务的,以及某个模块所接收的请求分别是由哪些CGI下发的。
针对相关技术中,无法得到特定的业务对整个分布式系统的影响,尚不存在一个有效的解决方案。
发明内容
本发明实施例提供了一种请求的统计方法、装置及存储介质,以至少解决相关技术中无法得到特定的业务对整个分布式系统的影响的问题。
根据本发明的一个实施例,提供了一种请求的统计方法,包括:在第一服务器上获取目标请求中携带的目标公共网关接口CGI的标识,其中,所述目标请求是所述第一服务器上的目标服务模块接收到的请求,所述目标请求是请求目标业务时生成的一组请求中的请求,所述目标业务是由包括所述目标CGI在内的一组CGI提供服务;在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器其中,所述统计服务器用于获取包括所述第一服务器在内的多个服务器发送的服务模块的标识和服务模块接收到的CGI的标识,其中,所述服务模块包括所述目标服务模块,所述CGI的标识包括所述目标CGI的标识;通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计。
可选地,所述在第一服务器上获取目标请求中携带的目标公共网关接口CGI的标识,包括:在所述目标服务模块接收到所述目标请求的情况下,调用所述第一服务器上的目标进程向所述第一服务器上的共享内存中写入所述目标服务模块的标识和所述目标请求中携带的所述目标CGI的标识。
可选地,所述调用所述第一服务器上的目标进程向所述第一服务器上的共享内存中写入所述目标服务模块的标识和所述目标请求中携带的所述目标CGI的标识,包括:在所述第一服务器包括多个服务模块、且所述共享内存包括多个内存区间的情况下,每个所述服务模块调用对应的进程向对应的一个所述内存区间中写入所述服务模块的标识和对应的CGI的标识,其中,所述多个服务模块中被划分得到的多个模块分组中的每个模块分组被设置为共用一个所述内存区间,所述多个服务模块中包括所述目标服务模块。
可选地,所述在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器,包括:调用所述第一服务器上的统计进程从所述共享内存中读取所述目标服务模块的标识和预定时间内所述目标服务模块接收的所述目标CGI的标识;将所述目标服务模块的标识和预定时间内所述目标服务模块接收的所述目标CGI的标识发送给所述统计服务器。
可选地,所述在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器,包括:在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给第一层统计服务器,其中,所述第一层统计服务器中包括多个第一统计服务器;所述第一层统计服务器中的所述多个第一统计服务器被划分得到的多个统计分组中的每个统计分组将其获取的所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给第二层统计服务器中对应的第二统计服务器。
可选地,通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计,包括:根据所述目标CGI的标识确定在所述预定时间内,由第一目标CGI发送至所述目标服务模块的第一目标CGI的标识,其中,所述目标CGI包括所述第一目标CGI;根据所述第一目标CGI的标识,确定在所述目标服务模块接收到的所有目标请求中,由所述第一目标CGI发送的第一目标请求。
可选地,在通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计之后,所述方法还包括:在所述第一目标CGI发送的第一目标请求的数量大于第一预定阈值的情况下,在所述第一服务器上将第一预定数量的所述第一目标请求发送至所述第一服务器所包括的多个服务模块中,除了所述目标服务模块之外的其他服务模块;在所述第一目标CGI发送的第一目标请求的数量小于第二预定阈值的情况下,在所述第一服务器上将预定数量的第二目标请求转移至所述目标服务模块,其中,所述第二目标请求是由所述第一服务器中除了所述第一目标CGI之外的其他CGI发送的。
可选地,在通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计之后,所述方法包括以下之一:所述统计服务器将所述统计得到的统计结果发送至区块链节点,其中,所述区块链节点用于记录所述统计结果,并将所述统计结果广播给位于同一区块链中的其他区块链节点;或者,所述统计服务器记录所述统计得到的统计结果,并将所述统计结果广播给与所述统计服务器位于同一区块链中的其他区块链节点,其中,所述统计服务器为所述同一区块链中的节点。
根据本发明的另一个实施例,提供了一种请求的统计装置,包括:获取模块,用于在第一服务器上获取目标请求中携带的目标公共网关接口CGI的标识,其中,所述目标请求是所述第一服务器上的目标服务模块接收到的请求,所述目标请求是请求目标业务时生成的一组请求中的请求,所述目标业务是由包括所述目标CGI在内的一组CGI提供服务;发送模块,用于在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器其中,所述统计服务器用于获取包括所述第一服务器在内的多个服务器发送的服务模块的标识和服务模块接收到的CGI的标识,其中,所述服务模块包括所述目标服务模块,所述CGI的标识包括所述目标CGI的标识;统计模块,用于通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计。
可选地,所述获取模块包括:调用单元,用于在所述目标服务模块接收到所述目标请求的情况下,调用所述第一服务器上的目标进程向所述第一服务器上的共享内存中写入所述目标服务模块的标识和所述目标请求中携带的所述目标CGI的标识。
可选地,所述调用单元还用于在所述第一服务器包括多个服务模块、且所述共享内存包括多个内存区间的情况下,每个所述服务模块调用对应的进程向对应的一个所述内存区间中写入所述服务模块的标识和对应的CGI的标识,其中,所述多个服务模块中被划分得到的多个模块分组中的每个模块分组被设置为共用一个所述内存区间,所述多个服务模块中包括所述目标服务模块。
根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,在第一服务器上通过目标模块获取目标请求中携带的目标公共网关接口CGI的标识,并由第一服务器将目标模块的标识和目标公共网关接口CGI的标识发送至统计服务器,由统计服务器对目标模块所接收的目标请求进行统计。由于在目标请求中携带了目标CGI的标识,可以确定目标模块所接收的请求均是由哪些CGI下发的,进一步地可以对特定业务对整个分布式系统的影响进行分析。以此,解决了现有技术中无法得到特定的业务对整个分布式系统的影响的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种请求的统计方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的请求的统计方法的流程图;
图3是根据本发明可选的实施例的业务、CGI以及服务模块之间的关系示意图;
图4是根据本发明可选的实施例的将CGI标识携带在目标请求中的示意图;
图5是根据本发明可选的实施例的SDK原理图;
图6是根据本发明可选的实施例的SDK工作流程图;
图7是根据本发明可选的实施例在单个服务器中线程与内存区间的关系图;
图8是根据本发明可选的实施例统计服务器分层设计的示意图;
图9是根据本发明可选的实施例的一种通过区块链记录并广播统计结果的示意图;
图10是根据本发明可选的实施例的另一种通过区块链记录并广播统计结果的示意图;
图11是根据本发明实施例的请求的统计装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
缩略词和关键术语说明:
分布式系统:英文为distributed system,是建立在网络之上的软件系统,对外提供高性能稳定的服务。
服务模块:分布式系统由多个部分组成,每个部分提供特定的服务,该部分称为模块。
上游模块:模块A为模块B提供服务,模块B称为模块A的上游模块。
下游模块:模块A为模块B提供服务,模块A称为模块B的下游模块。
请求ID:分布式系统的用户没请求一次分布式系统就会生成一个唯一ID。
CGI:是Web服务器运行时外部程序的规范,按CGI编写的程序可以扩展服务器功能。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种请求的统计方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的请求的统计方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述计算机终端的请求的统计方法,图2是根据本发明实施例的请求的统计方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,在第一服务器上获取目标请求中携带的目标公共网关接口CGI的标识,其中,所述目标请求是所述第一服务器上的目标服务模块接收到的请求,所述目标请求是请求目标业务时生成的一组请求中的请求,所述目标业务是由包括所述目标CGI在内的一组CGI提供服务;
步骤S204,在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器其中,所述统计服务器用于获取包括所述第一服务器在内的多个服务器发送的服务模块的标识和服务模块接收到的CGI的标识,其中,所述服务模块包括所述目标服务模块,所述CGI的标识包括所述目标CGI的标识;
步骤S206,通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计。
在第一服务器上通过目标模块获取目标请求中携带的目标公共网关接口CGI的标识,并由第一服务器将目标模块的标识和目标公共网关接口CGI的标识发送至统计服务器,由统计服务器对目标模块所接收的目标请求进行统计。由于在目标请求中携带了目标CGI的标识,可以确定目标模块所接收的请求均是由哪些CGI下发的,进一步地可以对特定业务对整个分布式系统的影响进行分析。以此,解决了现有技术中无法得到特定的业务对整个分布式系统的影响的问题。可选地,上述步骤的执行主体可以为终端等,但不限于此。
大型分布式系统一般提供多个业务,每个业务由多个CGI提供服务,业务使用者的每个动作都会产生一个请求,分布式系统中包含多个模块,多个模块中可以包括上游模块,也可以包括下游模块。每个模块会为不同业务的多个CGI提供服务。
在本实施例中,目标服务模块可以是上游模块,也可以是下游模块。图3是根据本发明可选的实施例的业务、CGI以及服务模块之间的关系示意图。其中,第一服务模块、第二服务模块、第三服务模块为上游模块,第四服务模块、第五服务模块为下游模块。当业务获取到使用者的动作请求后,将请求发送至对应的CGI。例如,在图3中业务2获取到请求后,将请求发送至CGI2.1、CGI2.2,CGI2.1、CGI2.2接收到请求后再将相应的请求分别发送至与其相对应的第二服务模块和第三服务模块,第二服务模块和第三服务模块在接收到由CGI2.1、CGI2.2发送的请求后,再将相应的请求发送至下游模块第四服务模块和第五服务模块。
若按照现有技术中的技术方案,仅通过CGI将请求发送至相应的服务模块,服务模块是无法知晓其所接收到的所有请求分别是由哪些CGI发送的。例如,在图3中,第二服务模块接收到三个请求,在现有技术中是无法知晓第二服务模块所接收到的三个请求分别是由那几个CGI下发的,进而也就无法知晓当某个CGI的请求量增加的情况下,对哪些服务模块会产生影响,以及所产生的影响程度。以及,特定业务(例如,图3中的业务1或业务2)的请求量增加对所有服务模块的影响。
本申请从统计角度出发,将CGI的名称携带在由CGI向服务模块下发的请求中,如图4是根据本发明可选的实施例的将CGI标识携带在目标请求中的示意图。由图4可以看出,将CGI的标识添加的请求中后,所有的服务模块均可知晓其所获取到的请求均是由哪些CGI下发的,例如,第二服务模块可以知晓其所获取到的三个请求中请求2和请求3是由CGI1.2下发的,请求4是由CGI2.1下发的。
本实施例的统计维度是CGI的名称,以此对特定业务的请求对下游模块的影响进行评估。
在一个可选的实施例,所述在第一服务器上获取目标请求中携带的目标公共网关接口CGI的标识,包括:在所述目标服务模块接收到所述目标请求的情况下,调用所述第一服务器上的目标进程向所述第一服务器上的共享内存中写入所述目标服务模块的标识和所述目标请求中携带的所述目标CGI的标识。在本实施例中,分布式系统中包括多台服务器,每台服务器对应一个软件开发工具包(software development kit,简称SDK),本申请采用全量数据统计,数据在每个模块的每台服务器上通过SDK进行统计,最后把统计结果上报给统计服务器,大大减轻统计服务器的压力,把统计压力分布到整个分布式系统的每台机器上。图5是根据本发明可选的实施例的SDK原理图。其中,单台服务器包括第一服务器,SDK上设置了多个接口,以供服务器中的多个服务模块通过该接口获取服务模块所接收的请求。具体流程如图6是根据本发明可选的实施例的SDK工作流程图,其中,包括以下步骤:
步骤1:通过相应的接口获取与其对应的服务模块所发送的请求;
步骤2:调用相应的进程,将服务模块的标识,以及请求中携带的CGI的标识写入共享内存;
步骤3:共享内存将服务模块的标识,以及请求中携带的CGI的标识上报给统计进程,统计进程对该服务器中的模块标识以及对应的CGI标识进行统计后,通过上报进程将统计结果上报给统计服务器。
在一个可选的实施例,所述调用所述第一服务器上的目标进程向所述第一服务器上的共享内存中写入所述目标服务模块的标识和所述目标请求中携带的所述目标CGI的标识,包括:在所述第一服务器包括多个服务模块、且所述共享内存包括多个内存区间的情况下,每个所述服务模块调用对应的进程向对应的一个所述内存区间中写入所述服务模块的标识和对应的CGI的标识,其中,所述多个服务模块中被划分得到的多个模块分组中的每个模块分组被设置为共用一个所述内存区间,所述多个服务模块中包括所述目标服务模块。在本实施例中,图5所示的单台服务器上的SDK中的共享内存可以包括多个内存区间,每几个进程对应一个内存区间,以避免大量线程向共享内存中写入数据时产生写冲突。图7是根据本发明可选的实施例在单个服务器中线程与内存区间的关系图。需要说明的是,图7仅为说明进程与内存区间是存在对应关系的,具体的关系可以根据实际情况进行调整,并不一定是图7所示的关系形式,例如,可以是进程1、进程2、进程3对应内存区间1,进程4、进程5、进程6对应内存区间2,也可以是进程1、进程2、进程3、进程4对应内存区间1,进程5、进程6对应内存区间2等。将目标模块的标识以及对应的CGI的标识通过调用相应的进程写入到对应的内存区间中。通过将共享内存划分为多个内存空间,每个内存空间对应一定数量的进程,以此减少了写冲突的产生,节省了贡献内存的资源。
在一个可选的实施例,所述在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器,包括:调用所述第一服务器上的统计进程从所述共享内存中读取所述目标服务模块的标识和预定时间内所述目标服务模块接收的所述目标CGI的标识;将所述目标服务模块的标识和预定时间内所述目标服务模块接收的所述目标CGI的标识发送给所述统计服务器。在本实施例中,在图5所示的SDK原理图中包括统计进程和上报进程,第一服务器通过统计进程在共享内存中读取目标服务模块的标识和预定时间内目标CGI的标识通过上报进程发送给统计服务器。
在一个可选的实施例,所述在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器,包括:在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给第一层统计服务器,其中,所述第一层统计服务器中包括多个第一统计服务器;所述第一层统计服务器中的所述多个第一统计服务器被划分得到的多个统计分组中的每个统计分组将其获取的所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给第二层统计服务器中对应的第二统计服务器。在本实施例中,分布式系统所面临的是海量的请求,统计服务器对请求进行统计后会产生海量的数据。为了缓解数据库需要面临统计服务器下发的海量数据所带来的压力,本实施例对统计服务器进行了分层处理。将一定数量的统计服务器划分在同一层中,同一层中的统计服务器按照预定的数量进行分组,一个统计分组中的多个统计服务器对应下一层中的一个统计服务器。如图8是根据本发明可选的实施例统计服务器分层设计的示意图,图中第一统计层中包括6个统计服务器,第二统计层中包括两个统计服务器。第一统计层中每三个统计服务器对应第二统计层中的一个统计服务器。图8仅作为一种分层涉及方式来说明本申请,具体的分层方式可以根据实际情况而定。例如,统计层数可以为任意数值,每层统计层中所包括的统计服务器的数量也可以是任意数值,相邻层之间统计服务器的对应方式可以根据实际情况进行调整。例如,在图8中,也可以是统计服务器1、3、5对应统计服务器7,其它对应统计服务器8。或者统计服务器1、2、4、6对应统计服务器7,其它对应统计服务器8。
在一个可选的实施例,通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计,包括:根据所述目标CGI的标识确定在所述预定时间内,由第一目标CGI发送至所述目标服务模块的第一目标CGI的标识,其中,所述目标CGI包括所述第一目标CGI;根据所述第一目标CGI的标识,确定在所述目标服务模块接收到的所有目标请求中,由所述第一目标CGI发送的第一目标请求。在本实施例中,每个模块上报其模块名称以及其在预定时间段内接受到的请求中所携带的CGI名称,由统计服务器进行统计。以图4中的第二服务模块为目标模块进行举例说明。第二服务模块从CGI1.2接收到请求2和请求3,请求2和请求3中携带了CGI1.2标识。从CGI2.1接收到请求4,请求4中均携带了CGI2.1的标识,在此例中CGI1.2和CGI2.1对应于目标CGI。第二服务模块将其模块标识,以及其接收的目标请求中所携带的一个CGI2.1标识和两个CGI1.2标识上报给统计服务器。统计服务器可以根据第二服务模块所发送的CGI标识分析出在第二服务模块接收的三个请求中,哪些请求是由CGI1.2发送的,哪些是由CGI2.1发送的,进而可以分析出CGI1.2发送的请求数量占第二服务模块所接收的所有请求数量中的比值,以及CGI2.1发送的请求数量占第二服务模块所接收的所有请求数量中的比值。利用这个比例关系,即可得到每个CGI请求量增加对每个服务模块的影响,若多个CGI请求量均有增加,那么,也可以得到多个CGI对他们的服务模块的叠加影响。
在一个可选的实施例,在通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计之后,所述方法还包括:在所述第一目标CGI发送的第一目标请求的数量大于第一预定阈值的情况下,在所述第一服务器上将第一预定数量的所述第一目标请求发送至所述第一服务器所包括的多个服务模块中,除了所述目标服务模块之外的其他服务模块;在所述第一目标CGI发送的第一目标请求的数量小于第二预定阈值的情况下,在所述第一服务器上将预定数量的第二目标请求转移至所述目标服务模块,其中,所述第二目标请求是由所述第一服务器中除了所述第一目标CGI之外的其他CGI发送的。
在一个可选的实施例,在通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计之后,所述方法包括以下之一:所述统计服务器将所述统计得到的统计结果发送至区块链节点,其中,所述区块链节点用于记录所述统计结果,并将所述统计结果广播给位于同一区块链中的其他区块链节点;或者所述统计服务器记录所述统计得到的统计结果,并将所述统计结果广播给与所述统计服务器位于同一区块链中的其他区块链节点,其中,所述统计服务器为所述同一区块链中的节点。在本实施例中,如图9所示是根据本发明可选的实施例的一种通过区块链记录并广播统计结果的示意图。统计服务器可以将统计结果发送至区块链节点,通过区块链节点记录统计结果,并将统计结果广播给同一区块链中的其他区块链节点。或者,如图10所示是根据本发明可选的实施例的另一种通过区块链记录并广播统计结果的示意图,其中,统计服务器可以是区块链中的节点,即图10中的统计节点,统计节点将统计结果广播给与统计节点位于同一区块链中的其他节点。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读的存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种请求的统计装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图11是根据本发明实施例的请求的统计装置的结构框图,如图11所示,该装置包括:获取模块1102,用于在第一服务器上获取目标请求中携带的目标公共网关接口CGI的标识,其中,所述目标请求是所述第一服务器上的目标服务模块接收到的请求,所述目标请求是请求目标业务时生成的一组请求中的请求,所述目标业务是由包括所述目标CGI在内的一组CGI提供服务;发送模块1104,用于在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器其中,所述统计服务器用于获取包括所述第一服务器在内的多个服务器发送的服务模块的标识和服务模块接收到的CGI的标识,其中,所述服务模块包括所述目标服务模块,所述CGI的标识包括所述目标CGI的标识;统计模块1106,用于通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计。
在一个可选实施例,所述获取模块1102包括:调用单元,用于在所述目标服务模块接收到所述目标请求的情况下,调用所述第一服务器上的目标进程向所述第一服务器上的共享内存中写入所述目标服务模块的标识和所述目标请求中携带的所述目标CGI的标识。
在一个可选实施例,所述调用单元还用于在所述第一服务器包括多个服务模块、且所述共享内存包括多个内存区间的情况下,每个所述服务模块调用对应的进程向对应的一个所述内存区间中写入所述服务模块的标识和对应的CGI的标识,其中,所述多个服务模块中被划分得到的多个模块分组中的每个模块分组被设置为共用一个所述内存区间,所述多个服务模块中包括所述目标服务模块。
在一个可选实施例,所述发送模块1104还用于,调用所述第一服务器上的统计进程从所述共享内存中读取所述目标服务模块的标识和预定时间内所述目标服务模块接收的所述目标CGI的标识;将所述目标服务模块的标识和预定时间内所述目标服务模块接收的所述目标CGI的标识发送给所述统计服务器。
在一个可选实施例,所述发送模块1104还用于,在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给第一层统计服务器,其中,所述第一层统计服务器中包括多个第一统计服务器;所述第一层统计服务器中的所述多个第一统计服务器被划分得到的多个统计分组中的每个统计分组将其获取的所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给第二层统计服务器中对应的第二统计服务器。
在一个可选实施例,所述统计模块1106还用于,根据所述目标CGI的标识确定在所述预定时间内,由第一目标CGI发送至所述目标服务模块的第一目标CGI的标识,其中,所述目标CGI包括所述第一目标CGI;根据所述第一目标CGI的标识,确定在所述目标服务模块接收到的所有目标请求中,由所述第一目标CGI发送的第一目标请求。
在一个可选实施例,所述装置还用于,在通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计之后,在所述第一目标CGI发送的第一目标请求的数量大于第一预定阈值的情况下,在所述第一服务器上将第一预定数量的所述第一目标请求发送至所述第一服务器所包括的多个服务模块中,除了所述目标服务模块之外的其他服务模块;在所述第一目标CGI发送的第一目标请求的数量小于第二预定阈值的情况下,在所述第一服务器上将预定数量的第二目标请求转移至所述目标服务模块,其中,所述第二目标请求是由所述第一服务器中除了所述第一目标CGI之外的其他CGI发送的。
在一个可选实施例,所述装置还用于,在通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计之后,所述统计服务器将所述统计得到的统计结果发送至区块链节点,其中,所述区块链节点用于记录所述统计结果,并将所述统计结果广播给位于同一区块链中的其他区块链节点;或者,所述统计服务器记录所述统计得到的统计结果,并将所述统计结果广播给与所述统计服务器位于同一区块链中的其他区块链节点,其中,所述统计服务器为所述同一区块链中的节点。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在第一服务器上获取目标请求中携带的目标公共网关接口CGI的标识,其中,所述目标请求是所述第一服务器上的目标服务模块接收到的请求,所述目标请求是请求目标业务时生成的一组请求中的请求,所述目标业务是由包括所述目标CGI在内的一组CGI提供服务;
S2,在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器其中,所述统计服务器用于获取包括所述第一服务器在内的多个服务器发送的服务模块的标识和服务模块接收到的CGI的标识,其中,所述服务模块包括所述目标服务模块,所述CGI的标识包括所述目标CGI的标识;
S3,通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计。
可选地,在本实施例中,上述计算机可读的存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在第一服务器上获取目标请求中携带的目标公共网关接口CGI的标识,其中,所述目标请求是所述第一服务器上的目标服务模块接收到的请求,所述目标请求是请求目标业务时生成的一组请求中的请求,所述目标业务是由包括所述目标CGI在内的一组CGI提供服务;
S2,在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器其中,所述统计服务器用于获取包括所述第一服务器在内的多个服务器发送的服务模块的标识和服务模块接收到的CGI的标识,其中,所述服务模块包括所述目标服务模块,所述CGI的标识包括所述目标CGI的标识;
S3,通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种请求的统计方法,其特征在于,包括:
在第一服务器上获取目标请求中携带的目标公共网关接口CGI的标识,其中,所述目标请求是所述第一服务器上的目标服务模块接收到的请求,所述目标请求是请求目标业务时生成的一组请求中的请求,所述目标业务是由包括所述目标CGI在内的一组CGI提供服务;
在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器,其中,所述统计服务器用于获取包括所述第一服务器在内的多个服务器发送的服务模块的标识和服务模块接收到的CGI的标识,其中,所述服务模块包括所述目标服务模块,所述CGI的标识包括所述目标CGI的标识;
通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计。
2.根据权利要求1所述的方法,其特征在于,所述在第一服务器上获取目标请求中携带的目标公共网关接口CGI的标识,包括:
在所述目标服务模块接收到所述目标请求的情况下,调用所述第一服务器上的目标进程向所述第一服务器上的共享内存中写入所述目标服务模块的标识和所述目标请求中携带的所述目标CGI的标识。
3.根据权利要求2所述的方法,其特征在于,所述调用所述第一服务器上的目标进程向所述第一服务器上的共享内存中写入所述目标服务模块的标识和所述目标请求中携带的所述目标CGI的标识,包括:
在所述第一服务器包括多个服务模块、且所述共享内存包括多个内存区间的情况下,每个所述服务模块调用对应的进程向对应的一个所述内存区间中写入所述服务模块的标识和对应的CGI的标识,其中,所述多个服务模块中被划分得到的多个模块分组中的每个模块分组被设置为共用一个所述内存区间,所述多个服务模块中包括所述目标服务模块。
4.根据权利要求2所述的方法,其特征在于,所述在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器,包括:
调用所述第一服务器上的统计进程从所述共享内存中读取所述目标服务模块的标识和预定时间内所述目标服务模块接收的所述目标CGI的标识;
将所述目标服务模块的标识和预定时间内所述目标服务模块接收的所述目标CGI的标识发送给所述统计服务器。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器,包括:
在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给第一层统计服务器,其中,所述第一层统计服务器中包括多个第一统计服务器;
所述第一层统计服务器中的所述多个第一统计服务器被划分得到的多个统计分组中的每个统计分组将其获取的所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给第二层统计服务器中对应的第二统计服务器。
6.根据权利要求1所述的方法,其特征在于,通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计,包括:
根据所述目标CGI的标识确定在所述预定时间内,由第一目标CGI发送至所述目标服务模块的第一目标CGI的标识,其中,所述目标CGI包括所述第一目标CGI;
根据所述第一目标CGI的标识,确定在所述目标服务模块接收到的所有目标请求中,由所述第一目标CGI发送的第一目标请求。
7.根据权利要求6所述的方法,其特征在于,在通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计之后,所述方法还包括:
在所述第一目标CGI发送的第一目标请求的数量大于第一预定阈值的情况下,在所述第一服务器上将第一预定数量的所述第一目标请求发送至所述第一服务器所包括的多个服务模块中,除了所述目标服务模块之外的其他服务模块;
在所述第一目标CGI发送的第一目标请求的数量小于第二预定阈值的情况下,在所述第一服务器上将预定数量的第二目标请求转移至所述目标服务模块,其中,所述第二目标请求是由所述第一服务器中除了所述第一目标CGI之外的其他CGI发送的。
8.根据权利要求1所述的方法,其特征在于,在通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计之后,所述方法包括以下之一:
所述统计服务器将所述统计得到的统计结果发送至区块链节点,其中,所述区块链节点用于记录所述统计结果,并将所述统计结果广播给位于同一区块链中的其他区块链节点;或者
所述统计服务器记录所述统计得到的统计结果,并将所述统计结果广播给与所述统计服务器位于同一区块链中的其他区块链节点,其中,所述统计服务器为所述同一区块链中的节点。
9.一种请求的统计装置,其特征在于,包括:
获取模块,用于在第一服务器上获取目标请求中携带的目标公共网关接口CGI的标识,其中,所述目标请求是所述第一服务器上的目标服务模块接收到的请求,所述目标请求是请求目标业务时生成的一组请求中的请求,所述目标业务是由包括所述目标CGI在内的一组CGI提供服务;
发送模块,用于在所述第一服务器上将所述目标服务模块的标识,以及在预定时间内所述目标服务模块接收的所述目标CGI的标识发送给统计服务器,其中,所述统计服务器用于获取包括所述第一服务器在内的多个服务器发送的服务模块的标识和服务模块接收到的CGI的标识,其中,所述服务模块包括所述目标服务模块,所述CGI的标识包括所述目标CGI的标识;
统计模块,用于通过所述统计服务器对所述目标服务模块所接收的目标请求进行统计。
10.根据权利要求9所述的装置,其特征在于,所述获取模块包括:
调用单元,用于在所述目标服务模块接收到所述目标请求的情况下,调用所述第一服务器上的目标进程向所述第一服务器上的共享内存中写入所述目标服务模块的标识和所述目标请求中携带的所述目标CGI的标识。
11.根据权利要求10所述的装置,其特征在于,所述调用单元还用于在所述第一服务器包括多个服务模块、且所述共享内存包括多个内存区间的情况下,每个所述服务模块调用对应的进程向对应的一个所述内存区间中写入所述服务模块的标识和对应的CGI的标识,其中,所述多个服务模块中被划分得到的多个模块分组中的每个模块分组被设置为共用一个所述内存区间,所述多个服务模块中包括所述目标服务模块。
12.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的方法。
CN201910818109.9A 2019-08-30 2019-08-30 请求的统计方法、装置及存储介质 Active CN110417624B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910818109.9A CN110417624B (zh) 2019-08-30 2019-08-30 请求的统计方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910818109.9A CN110417624B (zh) 2019-08-30 2019-08-30 请求的统计方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN110417624A true CN110417624A (zh) 2019-11-05
CN110417624B CN110417624B (zh) 2021-09-28

Family

ID=68369454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910818109.9A Active CN110417624B (zh) 2019-08-30 2019-08-30 请求的统计方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN110417624B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761432A (zh) * 2011-04-29 2012-10-31 腾讯科技(深圳)有限公司 Cgi监控方法及其装置和系统
CN104579753A (zh) * 2014-12-15 2015-04-29 腾讯科技(深圳)有限公司 用户数据统计方法、接入层服务器和统计服务器
CN104967632A (zh) * 2014-04-22 2015-10-07 腾讯科技(深圳)有限公司 网页异常数据处理方法、数据服务器及系统
CN105337791A (zh) * 2014-08-14 2016-02-17 腾讯科技(深圳)有限公司 数据监控方法及装置
CN105591832A (zh) * 2014-11-13 2016-05-18 腾讯数码(天津)有限公司 应用层慢速攻击检测方法和相关装置
CN107562809A (zh) * 2017-08-10 2018-01-09 广州视源电子科技股份有限公司 业务数据统计方法、装置、系统及可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761432A (zh) * 2011-04-29 2012-10-31 腾讯科技(深圳)有限公司 Cgi监控方法及其装置和系统
CN104967632A (zh) * 2014-04-22 2015-10-07 腾讯科技(深圳)有限公司 网页异常数据处理方法、数据服务器及系统
CN105337791A (zh) * 2014-08-14 2016-02-17 腾讯科技(深圳)有限公司 数据监控方法及装置
CN105591832A (zh) * 2014-11-13 2016-05-18 腾讯数码(天津)有限公司 应用层慢速攻击检测方法和相关装置
CN104579753A (zh) * 2014-12-15 2015-04-29 腾讯科技(深圳)有限公司 用户数据统计方法、接入层服务器和统计服务器
CN107562809A (zh) * 2017-08-10 2018-01-09 广州视源电子科技股份有限公司 业务数据统计方法、装置、系统及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YEW-HUEY LIU等: "A Distributed Web Server and Its Performance Analysis on Multiple Platforms", 《PROCEEDINGS OF 16TH INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS》 *
冷国宁: "分布式业务系统监控系统设计与应用", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 *

Also Published As

Publication number Publication date
CN110417624B (zh) 2021-09-28

Similar Documents

Publication Publication Date Title
CN109194584A (zh) 一种流量监控方法、装置、计算机设备及存储介质
CN108600300A (zh) 日志数据处理方法及装置
WO2015196980A1 (zh) 一种频谱分配方法、装置和系统
CN108768702A (zh) 网络分析方法及设备
CN104869155B (zh) 数据审计方法及装置
CN105049290B (zh) 页面访问监测方法及装置
CN105871957A (zh) 监控框架设计方法和监控服务器、代理单元、中控服务器
CN103577251A (zh) 基于事件的互联网计算处理系统及方法
CN106101264A (zh) 内容分发网络日志推送方法、装置和系统
CN111966289A (zh) 基于Kafka集群的分区优化方法和系统
CN109561403A (zh) 一种短信调度方法、设备及存储介质
CN106470163A (zh) 一种信息处理方法、装置和系统
CN110061892A (zh) 实时显示网络状况的方法、系统、存储介质、及电子设备
CN108399102A (zh) 一种资源分配方法和装置
CN106034047B (zh) 数据处理方法及装置
US20150304227A1 (en) Queue Management Method and Apparatus
CN113849363A (zh) 一种业务监控方法及相关装置
CN110417624A (zh) 请求的统计方法、装置及存储介质
CN110333984A (zh) 接口异常检测方法、装置、服务器及系统
CN104052778A (zh) 分布式的话单统计方法、装置以及系统
CN110198246B (zh) 一种流量监控的方法及系统
CN107786586A (zh) 业务的负载调度方法及装置
CN107229635A (zh) 一种数据处理的方法、存储节点及协调节点
CN109189699A (zh) 多路服务器通信方法、系统、中间控制器及可读存储介质
CN109714269A (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