CN109889401B - 流量统计方法、装置、计算机设备和存储介质 - Google Patents
流量统计方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109889401B CN109889401B CN201910057987.3A CN201910057987A CN109889401B CN 109889401 B CN109889401 B CN 109889401B CN 201910057987 A CN201910057987 A CN 201910057987A CN 109889401 B CN109889401 B CN 109889401B
- Authority
- CN
- China
- Prior art keywords
- user identifier
- data set
- traffic
- flow
- cache
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种流量统计方法、装置、计算机设备和存储介质。所述方法包括:获取至少一个群组标识,以及每个群组标识所对应的用户标识;统计用户标识的流量值,得到用户标识的流量数据集;将用户标识的流量数据集发送给缓存,以使缓存将用户标识的流量数据集添加到用户标识所对应的群组标识的流量统计中。采用本申请的方案能适用于多租户的场景,并进行精细化的流量统计。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种流量统计方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了流量统计技术。传统的流量统计是基于互联网协议的报文以获取互联网协议地址对应的数据流量,并在交换机端口对每个互联网协议地址的流量进行流量统计。然而传统的流量统计技术,并不适用于在多租户的场景下进行流量统计。
发明内容
基于此,有必要针对传统的流量统计技术不适用于在多租户的场景下进行流量统计的技术问题,提供一种流量统计方法、装置、计算机设备和计算机存储介质,能适用于多租户的场景,进行精细化的流量统计。
一种流量统计方法,该流量统计方法包括:获取至少一个群组标识,以及每个群组标识所对应的用户标识;统计用户标识的流量值,得到用户标识的流量数据集;将用户标识的流量数据集发送给缓存,以使缓存将用户标识的流量数据集添加到用户标识所对应的群组标识的流量统计中。
在其中一个实施例中,统计用户标识的流量,得到用户标识的流量数据集,包括:通过统计协程线程统计对应的用户标识的流量值,得到用户标识的流量数据集,其中,统计协程线程是基于用户标识配置的。
在其中一个实施例中,在获取至少一个群组标识,以及每个群组标识所对应的用户标识之前,还包括:接收用户标识对应的终端发送的下载请求;根据下载请求分配服务器,其中,服务器用于为用户标识配置独立的统计协程线程。
在其中一个实施例中,在获取至少一个群组标识,以及群组标识所对应的用户标识之前,还包括:接收用户标识对应的终端发送的下载请求,根据下载请求初始化统计协程线程,并根据用户标识从缓存中获取用户标识对应的初始流量数据集;当缓存中不存在初始流量数据集时,从数据库中获取初始流量数据集并写入缓存中;
缓存将用户标识的流量数据集添加到用户标识所对应的群组标识的流量统计中的方式,包括:缓存将用户标识的流量数据集和初始流量数据集合并后添加到用户标识所对应的群组标识的流量统计中。
在其中一个实施例中,该流量统计方法还包括:将流量数据集投递至消息队列,并将流量数据集持久化至数据库中。
在其中一个实施例中,统计用户标识的流量值,得到用户标识的流量数据集,还包括:每隔预设时长统计用户标识的流量值,得到用户标识的流量数据集。
在其中一个实施例中,统计用户标识的流量值,得到用户标识的流量数据集,还包括:当用户标识使用的流量值达到预设流量值时,更新用户标识的流量值,得到用户标识的流量数据集。
一种流量统计装置,该装置包括:获取模块,用于获取至少一个群组标识,以及每个群组标识所对应的用户标识;统计模块,用于统计用户标识的流量值,得到用户标识的流量数据集;发送模块用于将用户标识的流量数据集发送给缓存,以使所述缓存将用户标识的流量数据集添加到用户标识所对应的群组标识的流量统计中。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取至少一个群组标识,以及每个群组标识所对应的用户标识;统计用户标识的流量值,得到用户标识的流量数据集;将用户标识的流量数据集发送给缓存,以使缓存将用户标识的流量数据集添加到用户标识所对应的群组标识的流量统计中。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取至少一个群组标识,以及每个群组标识所对应的用户标识;统计用户标识的流量值,得到用户标识的流量数据集;将用户标识的流量数据集发送给缓存,以使缓存将用户标识的流量数据集添加到用户标识所对应的群组标识的流量统计中。
上述流量统计方法、装置、计算机设备和存储介质,通过获取群组标识和每个群组标识对应的用户标识,统计用户标识的流量值,得到用户标识的流量数据集,能统计用户标识的精细化流量;将用户标识的流量数据集发送给缓存,以使缓存将用户标识的流量数据集添加到群组标识的流量统计中,能统计群组标识使用的流量,并适用于多租户的场景,使流量统计的数据更精确。
附图说明
图1为一个实施例中流量统计方法的应用环境图;
图2为一个实施例中流量统计方法的流程示意图;
图3为一个实施例中用户标识对应的终端进行文件下载时的时序图;
图4为一个实施例中流量统计方法的时序图;
图5为一个实施例中流量统计装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例中提供的流量统计方法,可以应用于如图1所示的应用环境中。其中,该应用环境分为三层,分别是数据层、服务层和客户端层。客户端层属于终端接入的层,主要是和服务层进行交互。服务层可实现以下功能:为客户端层的终端提供服务,同时对所接入的用户标识流量进行统计;服务层应用将对应统计的用户流量上报给数据层,进行流量的汇总;服务层应用同时负责数据层各组件的调度功能,以及数据的流转。数据层可用于流量数据的处理和持久化。终端102通过网络与服务器104通过网络进行通信,服务器104的数量不限。缓存106或数据库108可以为与服务器104不同的服务器上的缓存或数据库,也可以存在于所有服务器104中。当缓存106或数据库108存在于所有服务器104中时,缓存中的数据可进行同步,使每个服务器104都能获取同样的流量数据。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现,具体可以为应用服务器并且可以是分布式的集群架构。缓存106具体可以是高速缓存(Cache)。
在一个实施例中,如图2所示,提供了一种流量统计方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,获取至少一个群组标识,以及每个群组标识所对应的用户标识。
其中,群组标识,是用于区分不同群组的标识。每个群组都有唯一的标识。群组标识可由数字、字母或者符号中的一种或多种组成。一个群组标识可对应多个用户标识。用户标识是用于区分不同用户的标识,每个用户都有唯一的标识。用户标识可由数字、字母或者符号中的一种或多种组成。该用户标识可用于在应用程序中以区分不同的用户身份。
具体地,服务器可从缓存中获取至少一个群组标识,以及每个群组标识所对应的所有用户标识。
步骤204,统计用户标识的流量值,得到用户标识的流量数据集。
其中,流量数据集中包括用户标识和用户标识的流量值,还可以包括单个用户已经使用的流量值和单个用户总的流量使用上限值中的至少一种。
具体地,当用户标识对应的终端通过服务层的一个或多个应用节点接入服务器中时,则服务器统计该用户标识当前的流量值,则得到该用户标识的流量数据集。
步骤206,将用户标识的流量数据集发送给缓存,以使缓存将用户标识的流量数据集添加到用户标识所对应的群组标识的流量统计中。
其中,缓存可以是高速缓存(cache),通过高速缓存可支持客户层的高并发和实时接入。
具体地,服务器将用户标识的流量数据集发送给缓存。缓存获取用户标识,并根据群组标识与用户标识的对应关系,将用户标识与群组标识相对应。则缓存将用户标识的流量数据集添加到该用户标识所对应的群组标识中的流量统计中。
本实施例中,群组标识的流量统计包括该群组标识对应的所有用户标识已使用的流量值、该群组标识的流量使用上限和该群组标识对应的每个用户标识正在使用的流量值中的至少一种。
本实施例中,多租户技术称多重租赁技术,是一种软件架构技术,是指多个组织,即多个群组,都将使用同一个应用程序。该组织必须能够允许自己的用户访问应用程序,但是应用程序必须只允许每个组织自己的成员访问其组织的数据,保证各用户和群组间数据的隔离性。一个应用程序中可以有多个群组实例。例如,某公司开通了流量统计功能,则这是一个组织的具体实现,也称为一个群组实例,会对应生成一个群组标识。而该公司下的每个用户都有用户标识,该群组标识与用户标识互相关联。服务器统计该群组实例标识中的每个用户标识的流量值,得到每个用户标识的流量数据集。服务器将每个用户标识的流量数据集发送给缓存,则缓存将每个用户标识的流量数据集添加到该公司对应的群组实例标识的流量统计中,则可以统计单个用户在某一个应用程序中所使用的流量,也可以统计单个群组在某一个应用程序中所使用的流量。
上述流量统计方法中,通过获取至少一个群组标识和每个群组标识对应的用户标识,统计用户标识的流量值,得到用户标识的流量数据集,能统计用户标识的精细化流量;将用户标识的流量数据集发送给缓存,以使缓存将用户标识的流量数据集添加到群组标识的流量统计中,能统计群组标识使用的流量,并适用于多租户的场景,使流量统计的数据更精确。
在一个实施例中,统计用户标识的流量,得到用户标识的流量数据集,包括:通过统计协程线程统计对应的用户标识的流量值,得到用户标识的流量数据集,其中,统计协程线程是基于该用户标识配置的。
其中,统计协程线程用于CPU(Central Processing Unit,中央处理器)调度,用于完成流量统计任务。
具体地,当服务器的应用节点需要统计用户标识的流量时,会启动独立的统计协程线程。其中该统计协程线程是基于用户标识配置的。服务器通过该统计协程线程统计对应的用户标识的流量值。例如,当一个终端对应一个用户标识,服务器启动一个统计协程线程。当一个终端对应两个用户标识时,服务器启动两个统计协程线程。
上述流量统计方法中,通过基于用户标识配置的统计协程线程统计对应的用户标识的流量值,得到用户标识的流量数据集,能统计用户标识的精细化流量,而非通过互联网协议地址进行粗略的流量统计。
在一个实施例中,在获取至少一个群组标识,以及群组标识所对应的用户标识之前,还包括:接收用户标识对应的终端发送的下载请求;根据下载请求分配服务器,其中,服务器用于为用户标识配置独立的统计协程线程。
具体地,用户标识对应的终端向服务器发送下载请求,例如文件下载请求和网页加载请求等。服务器接收用户标识对应的终端发送的下载请求,根据下载请求分配服务器。则该服务器用于为用户标识配置独立的统计协程线程。
本实施例中,负载均衡服务器根据用户标识对应的终端发送的下载请求分配空闲的服务器,该空闲的服务器中含有较少的统计协程线程。则该含统计协程线程较少的服务器用于为该用户标识配置独立的统计协程线程。
上述流量统计方法中,通过接收用户标识对应的终端发送的下载请求,根据下载请求分配服务器,能解决单个服务器无法负载过多的统计线程的问题,同时可支撑高并发场景下可扩展的服务,适用于海量数据的分布式流量统计。
在一个实施例中,在获取至少一个群组标识,以及每个群组标识所对应的用户标识之前,还包括:接收用户标识对应的终端发送的下载请求,根据下载请求初始化统计协程线程,并根据用户标识从缓存中获取用户标识对应的初始流量数据集;当缓存中不存在初始流量数据集时,从数据库中获取初始流量数据集并写入缓存中;
缓存将用户标识的流量数据集添加到用户标识所对应的群组标识的流量统计中的方式,包括:缓存将用户标识的流量数据集和初始流量数据集合并后添加到用户标识所对应的群组标识的流量统计中。
其中,初始流量数据集可以为已经使用的流量数据集。
具体地,当用户标识对应的终端接入应用节点并向服务器发送下载请求时,服务器接收用户标识对应的终端发送的下载请求。服务器调用底层的线程开启对应的独立的统计协程。服务器根据用户标识从缓存中获取对应的初始流量数据集。当缓存中不存在该用户标识对应的初始流量数据集时,服务器从数据库中获取初始流量数据集并写入缓存中。
缓存将用户标识的当前流量数据集中的流量值和初始流量数据集中的流量值相加合并后添加到用户标识对应的群组标识的流量统计中。
上述流量统计方法中,接收用户终端发送的下载请求,初始化统计协程线程,根据用户标识从缓存或数据库中获取初始流量数据集,并与用户标识的流量数据集合并后添加到对应的群组标识的流量统计中,初始流量数据集的来源为缓存或数据库,能保证获取到初始流量数据集,且能将当前的流量数据值与历史的流量数据集进行合并,提高流量统计的准确性。
在一个实施例中,在将用户标识的流量数据集发送给缓存之后,缓存还可以根据群组标识从数据库中获取群组标识对应的初始流量数据集,并添加至缓存中。
在一个实施例中,该流量统计方法还包括:将流量数据集投递至消息队列,并将流量数据集持久化至数据库中。
其中,消息队列是指是在消息的传输过程中保存消息的容器。持久化是指把数据例如缓存中的流量数据集,保存到可永久保存的存储设备中,例如保存到数据库中。
具体地,服务器将流量数据集通过并行或者串行的方式投递至消息队列,并将流量数据集持久化至数据库中。
上述流量统计方法中,将数据流量集投递至消息队列,并持久化至数据库中,能在高并发的场景下,降低数据库的压力;并且缓存的流量数据集有时效性,能将缓存中的流量数据集长久保存到数据库中。
在一个实施例中,统计用户标识的流量值,得到用户标识的流量数据集,还包括:每隔预设时长统计用户标识的流量值,得到用户标识的流量数据集。
其中,预设时长是指服务器中预设的时间长度,例如实时、3秒、5秒、10秒、1分钟、5分钟或1小时等不限于此。
具体地,服务器每隔预设时长统计接入服务器的用户标识已使用的流量值,得到该用户标识的流量数据集。例如,服务器每隔3秒统计一次用户标识在3秒内已使用的流量,并同步该流量数据集。
上述流量统计方法中,每隔预设时长统计用户标识的流量值,得到用户标识的流量数据集,能避免下载完成后再统计流量值而导致的流量统计不及时,也避免下载过程中与服务器断开连接而导致的流量统计不准确,能提高流量统计效率,并提高流量统计的准确性。
在一个实施例中,统计用户标识的流量值,得到用户标识的流量数据集,还包括:当用户标识使用的流量值达到预设流量值时,更新用户标识的流量值,得到用户标识的流量数据集。
具体地,当用户标识使用的流量达到预设流量值时,例如3M、5M或8M等不限于此,则更新用户标识的流量值,得到用户标识的流量数据集。例如服务器将当前正在使用的流量值,例如3M、5M或8M等添加至流量数据集中,得到当前用户标识的临时流量数据集。
上述流量统计方法中,当用户标识使用的流量值达到预设流量值时,更新用户标识的流量值,得到用户标识的流量数据集,能避免下载完成后再统计流量值导致的流量统计不及时,也避免下载过程中与服务器断开连接而导致流量统计不准确,能提高流量统计效率,并提高流量统计的准确性。
在一个实施例中,该流量统计方法还包括:当流量统计超出流量使用上限时,服务器限制用户标识对应的终端的网速。
在一个实施例中,如图3所示,为一个实施例中用户标识对应的终端进行文件下载的时序图。其中,用户设备即为用户标识对应的终端。应用节点位于服务器上,并且用户设备可接入任意一个应用节点。存储集群为存储文件的服务,是一个独立的第三方服务。节点的临时数据集,也称用户标识在该应用节点产生的流量数据集,可位于服务器中或者缓存中,包括用户标识的流量数据集和群组标识的流量数据集。其中,用户标识对应的流量数据集包括单个用户标识已经使用的流量、单个用户标识总的流量使用上限和该用户标识在节点应用时使用的流量中的至少一种。群组标识对应的流量数据集包括组织下所有用户已经使用的流量、该群组标识对应的流量使用上限和群组标识对应的所有用户标识在节点时使用的流量中的至少一种。
用户设备向服务器的应用节点发送文件下载请求,服务器的应用节点接收到文件下载请求后,初始化临时数据集并初始化独立的统计协程。同时,服务器向存储集群发送下载请求,存储集群将文件通过服务器传输给用户设备。服务器的应用节点循环写入流量数据集。
上述流量统计方法中,用户设备在进行文件下载时,单独初始化独立的统计协程,能使文件下载与流量统计分离,在流量统计时不影响用户设备的文件下载流程。
在一个实施例中,如图4所示,为一个实施例中流量统计方法的时序图。服务器通过统计协程从高速缓存中获取初始流量数据集,其中统计协程属于线程的一种,也可称为统计协程线程。当初始流量数据集不存在时,服务器通过统计协程从数据库中获取初始流量数据集,并返回流量数据集,写入节点的临时数据集中。服务器通过统计协程每隔3秒但不限于此同步一次流量数据集,并将新增的流量数据集写入高速缓存中,同时将新增的流量数据集投递至消息队列,并持久化至数据库中。图3中的时序图和图4中的时序图可通过节点的临时数据集进行数据共享和交互。
上述流量统计方法中,根据用户标识从缓存或数据库中获取初始流量数据集,初始流量数据集的来源为缓存或数据库,能保证获取到初始流量数据集,且通过统计协程每隔一段时间同步一次流量数据集,可及时统计流量,提高流量统计的准确性。
在一个实施例中,该流量统计统计方法,包括:
步骤(a1),接收用户标识对应的终端发送的下载请求。
步骤(a2),根据下载请求分配服务器,其中,服务器用于为用户标识配置独立的统计协程线程。
步骤(a3),根据用户标识从缓存中获取用户标识对应的初始流量数据集。
步骤(a4),当缓存中不存在初始流量数据集时,从数据库中获取初始流量数据集并写入缓存中。
步骤(a5),获取至少一个群组标识,以及每个群组标识所对应的用户标识。
步骤(a6),通过统计协程线程统计对应的用户标识的流量值,得到用户标识的流量数据集,其中,统计协程线程是基于用户标识配置的。
步骤(a7),将用户标识的流量数据集发送给缓存。
步骤(a8),缓存将用户标识的流量数据集和初始流量数据集合并后添加到用户标识所对应的群组标识的流量统计中。
步骤(a9),将流量数据集投递至消息队列,并将流量数据集持久化至数据库中。
上述流量统计方法中,接收用户标识对应的终端发送的下载请求,根据下载请求分配服务器,能解决单个服务器无法负载过多统计线程的问题,同时可支撑高并发场景下可扩展的服务,适用于海量数据的分布式流量统计根据用户标识从缓存或数据库中获取初始流量数据集,并与用户标识的流量数据集合并后添加到对应的群组标识的流量统计中,初始流量数据集的来源为缓存或数据库,能保证获取到初始流量数据集,且能将当前的流量数据值与历史的流量数据集进行合并,提高流量统计的准确性;通过获取群组标识和每个群组标识对应的用户标识,统计每个用户标识的流量值,得到每个用户标识的流量数据集,能统计用户标识的精细化流量;将每个用户标识的流量数据集发送给缓存,以使缓存将每个用户标识的流量数据集添加到群组标识的流量统计中,能统计群组标识对应的已经使用的流量,并适用于多租户的场景,使流量统计的数据更精确;将数据流量集投递至消息队列,并持久化至数据库中,能在高并发的场景下,降低数据库的压力;并且缓存的流量数据集有时效性,能将缓存中的流量数据集长久保存到数据库中。
应该理解的是,虽然图2-4的流程图或时序图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种流量统计装置,包括:获取模块502、统计模块504和发送模块504,其中:
获取模块502,用于获取至少一个群组标识,以及每个群组标识所对应的用户标识;
统计模块504,用于统计用户标识的流量值,得到用户标识的流量数据集;
发送模块506,用于将用户标识的流量数据集发送给缓存,以使缓存将用户标识的流量数据集添加到用户标识所对应的群组标识的流量统计中。
上述流量统计装置中,通过获取至少一个群组标识和每个群组标识对应的用户标识,统计每个用户标识的流量值,得到每个用户标识的流量数据集,能统计用户标识的精细化流量;将每个用户标识的流量数据集发送给缓存,以使缓存将每个用户标识的流量数据集添加到群组标识的流量统计中,能统计群组标识使用的流量,并适用于多租户的场景,使流量统计的数据更精确。
在一个实施例中,统计模块504用于通过统计协程线程统计对应的用户标识的流量值,得到用户标识的流量数据集,其中,统计协程线程是基于该用户标识配置的。
上述流量统计方法中,通过基于用户标识配置的统计协程线程统计对应的用户标识的流量值,得到用户标识的流量数据集,能统计用户标识的精细化流量,而非通过互联网协议地址进行流量统计。
在一个实施例中,该流量统计装置还包括接收模块和分配模块,其中,接收模块用于接收用户标识对应的终端发送的下载请求;分配模块用于根据下载请求分配服务器,其中,服务器用于为每个用户标识配置独立的统计协程线程。
上述流量统计装置中,通过接收用户标识对应的终端发送的下载请求,根据下载请求分配服务器,能解决单个服务器无法负载过多个统计线程的问题,同时可支撑高并发场景下可扩展的服务,适用于海量数据的分布式流量统计。
在一个实施例中,该流量统计装置还包括接收模块和初始化模块,其中,接收模块用于接收用户标识对应的终端发送的下载请求;初始化模块用于根据下载请求初始化统计协程线程;获取模块502用于根据下载请求初始化统计协程线程,并根据用户标识从缓存中获取用户标识对应的初始流量数据集;当缓存中不存在初始流量数据集时,从数据库中获取初始流量数据集并写入缓存中;统计模块504用于缓存将用户标识的流量数据集和初始流量数据集合并后添加到用户标识所对应的群组标识的流量统计中。
上述流量统计装置中,接收用户终端发送的下载请求,初始化统计协程线程,根据用户标识从缓存或数据库中获取初始流量数据集,并与用户标识的流量数据集合并后添加到对应的群组标识的流量统计中,初始流量数据集的来源为缓存或数据库,能保证获取到初始流量数据集,且能将当前的流量数据值与历史的流量数据集进行合并,提高流量统计的准确性。
在一个实施例中,该流量统计装置还包括存储模块,存储模块用于将流量数据集投递至消息队列,并将流量数据集持久化至数据库中。
上述流量统计装置中,将数据流量集投递至消息队列,并持久化至数据库中,能在高并发的场景下,降低数据库的压力;并且缓存的流量数据集有时效性,能将缓存中的流量数据集长久保存到数据库中。
在一个实施例中,统计模块504还用于每隔预设时长统计用户标识的流量值,得到用户标识的流量数据集。
上述流量统计装置中,每隔预设时长统计用户标识的流量值,得到用户标识的流量数据集,能避免下载完成后再统计流量值而导致的流量统计不及时,也避免下载过程中与服务器断开连接而导致的流量统计不准确,能提高流量统计效率,并提高流量统计的准确性。
在一个实施例中,统计模块504还用于当用户标识使用的流量值达到预设流量值时,更新用户标识的流量值,得到用户标识的流量数据集。
上述流量统计装置中,当用户标识使用的流量值达到预设流量值时,更新用户标识的流量值,得到用户标识的流量数据集,能避免下载完成后再统计流量值导致的流量统计不及时,也避免下载过程中与服务器断开连接而导致流量统计不准确,能提高流量统计效率,并提高流量统计的准确性。
关于流量统计装置的具体限定可以参见上文中对于流量统计方法的限定,在此不再赘述。上述流量统计装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储流量统计数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种流量统计方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述流量统计方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述流量统计方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种流量统计方法,其特征在于,应用于多租户场景,应用于分布式集群架构的服务器集群中,所述方法包括:
接收用户标识对应的终端发送的下载请求;
所述分布式集群架构服务器集群中的负载均衡服务器根据所述下载请求为所述用户标识对应的终端分配服务器,所述服务器用于为所述用户标识配置独立的统计协程线程;
所述服务器获取至少一个群组标识,以及每个群组标识所对应的用户标识,所述用户标识用以在应用程序中区分不同的用户身份;
通过所述统计协程线程统计所述用户标识的流量值,得到所述用户标识的流量数据集,其中,所述统计协程线程是基于所述用户标识配置的;
将所述用户标识的流量数据集发送给缓存,以使所述缓存将所述用户标识的流量数据集添加到所述用户标识所对应的群组标识的流量统计中。
2.根据权利要求1所述的方法,其特征在于,在所述获取至少一个群组标识,以及每个群组标识所对应的用户标识之前,还包括:
根据所述下载请求初始化统计协程线程,并根据所述用户标识从所述缓存中获取所述用户标识对应的初始流量数据集;
当所述缓存中不存在所述初始流量数据集时,从数据库中获取所述初始流量数据集并写入缓存中;
所述缓存将所述用户标识的流量数据集添加到所述用户标识所对应的群组标识的流量统计中的方式,包括:
所述缓存将所述用户标识的流量数据集和所述初始流量数据集合并后添加到所述用户标识所对应的群组标识的流量统计中。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
将所述流量数据集投递至消息队列,并将所述流量数据集持久化至数据库中。
4.根据权利要求1或2所述的方法,其特征在于,所述统计所述用户标识的流量值,得到所述用户标识的流量数据集,还包括:
每隔预设时长统计所述用户标识的流量值,得到所述用户标识的流量数据集。
5.根据权利要求1或2所述的方法,其特征在于,所述统计所述用户标识的流量值,得到所述用户标识的流量数据集,还包括:
当所述用户标识使用的流量值达到预设流量值时,更新所述用户标识的流量值,得到所述用户标识的流量数据集。
6.一种流量统计装置,其特征在于,应用于多租户场景,应用于分布式集群架构的服务器集群中,所述装置包括:
接收模块,用于接收用户标识对应的终端发送的下载请求;
分配模块,用于通过所述服务器集群中的负载均衡服务器根据所述下载请求为所述用户标识对应的终端分配服务器,所述服务器用于为所述用户标识配置独立的统计协程线程;
获取模块,用于获取至少一个群组标识,以及每个群组标识所对应的用户标识,所述用户标识用以在应用程序中区分不同的用户身份;
统计模块,用于通过所述统计协程统计所述用户标识的流量值,得到所述用户标识的流量数据集,其中,所述统计协程线程是基于所述用户标识配置的;
发送模块,用于将所述用户标识的流量数据集发送给缓存,以使所述缓存将所述用户标识的流量数据集添加到所述用户标识所对应的群组标识的流量统计中。
7.根据权利要求6所述的装置,其特征在于,所述流量统计装置还包括初始化模块;
所述初始化模块用于根据所述下载请求初始化统计协程线程;
所述获取模块用于根据所述用户标识从所述缓存中获取所述用户标识对应的初始流量数据集;
所述获取模块用于当所述缓存中不存在所述初始流量数据集时,从数据库中获取所述初始流量数据集并写入缓存中;
所述统计模块用于将所述用户标识的流量数据集和所述初始流量数据集合并后添加到所述用户标识所对应的群组标识的流量统计中。
8.根据权利要求6或7所述的装置,其特征在于,所述流量统计装置还包括存储模块,所述存储模块用于将所述流量数据集投递至消息队列,并将所述流量数据集持久化至数据库中。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910057987.3A CN109889401B (zh) | 2019-01-22 | 2019-01-22 | 流量统计方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910057987.3A CN109889401B (zh) | 2019-01-22 | 2019-01-22 | 流量统计方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109889401A CN109889401A (zh) | 2019-06-14 |
CN109889401B true CN109889401B (zh) | 2021-03-16 |
Family
ID=66926553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910057987.3A Active CN109889401B (zh) | 2019-01-22 | 2019-01-22 | 流量统计方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109889401B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110851334B (zh) * | 2019-11-19 | 2024-06-14 | 深圳市网心科技有限公司 | 流量统计方法、电子设备、系统及介质 |
CN111046240B (zh) * | 2019-11-26 | 2024-03-08 | 金蝶软件(中国)有限公司 | 网关流量统计方法、装置、计算机设备和存储介质 |
CN113268518B (zh) * | 2020-02-17 | 2024-03-29 | 百度在线网络技术(北京)有限公司 | 流量统计方法及装置、分布式流量统计系统 |
CN111555929B (zh) * | 2020-04-21 | 2021-03-12 | 成都安易迅科技有限公司 | 限制网络流量的方法、装置、电子设备及存储介质 |
CN112069021B (zh) * | 2020-08-21 | 2024-02-20 | 北京五八信息技术有限公司 | 流量数据的存储方法、装置、电子设备和存储介质 |
CN114138810B (zh) * | 2022-01-27 | 2022-04-12 | 中国民航信息网络股份有限公司 | 一种访问流量统计方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254646A (zh) * | 2016-08-02 | 2016-12-21 | 北京小米移动软件有限公司 | 网络流量统计方法及装置 |
CN108400909A (zh) * | 2018-02-12 | 2018-08-14 | 腾讯科技(深圳)有限公司 | 一种流量统计方法、装置、终端设备和存储介质 |
CN108989240A (zh) * | 2018-08-01 | 2018-12-11 | Oppo(重庆)智能科技有限公司 | 网络流量控制方法、装置、终端设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2416629A1 (en) * | 2003-01-17 | 2004-07-17 | Q1 Labs Inc. | Method and apparatus for permitting visualizing network data |
WO2011154038A1 (en) * | 2010-06-09 | 2011-12-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Traffic classification |
US9412271B2 (en) * | 2013-01-30 | 2016-08-09 | Wavetronix Llc | Traffic flow through an intersection by reducing platoon interference |
CN103441892B (zh) * | 2013-08-16 | 2017-02-22 | 大连梯耐德网络技术有限公司 | 一种基于广电网络的多用户流量统计系统 |
CN110198275B (zh) * | 2018-03-28 | 2022-03-29 | 腾讯科技(深圳)有限公司 | 一种流量控制方法、系统、服务器及存储介质 |
-
2019
- 2019-01-22 CN CN201910057987.3A patent/CN109889401B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254646A (zh) * | 2016-08-02 | 2016-12-21 | 北京小米移动软件有限公司 | 网络流量统计方法及装置 |
CN108400909A (zh) * | 2018-02-12 | 2018-08-14 | 腾讯科技(深圳)有限公司 | 一种流量统计方法、装置、终端设备和存储介质 |
CN108989240A (zh) * | 2018-08-01 | 2018-12-11 | Oppo(重庆)智能科技有限公司 | 网络流量控制方法、装置、终端设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109889401A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109889401B (zh) | 流量统计方法、装置、计算机设备和存储介质 | |
CN110597858A (zh) | 任务数据处理方法、装置、计算机设备和存储介质 | |
CN107733957B (zh) | 分布式服务配置系统及版本号分配方法 | |
CN110995617B (zh) | 基于mqtt的数据报送方法、装置、计算机设备和存储介质 | |
CN104092650A (zh) | 一种分配业务请求的方法和装置 | |
CN110489227B (zh) | 一种资源分配方法、装置、计算机设备和存储介质 | |
US20220303324A1 (en) | Method and system for multi-service processing | |
CN112965818B (zh) | 一种服务集群单元化分组方法、装置、设备以及介质 | |
CN113361913A (zh) | 一种通信业务编排方法、装置、计算机设备及存储介质 | |
CN108595280B (zh) | 接口适配方法、装置、计算机设备和存储介质 | |
CN112685148A (zh) | 海量终端的异步通信方法、装置、计算机设备和存储介质 | |
CN110515728B (zh) | 服务器调度方法、装置、电子设备及机器可读存储介质 | |
CN113238756B (zh) | 直播业务处理方法、装置、电子设备及存储介质 | |
CN108388409B (zh) | 打印请求处理方法、装置、计算机设备和存储介质 | |
CN108389124B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110049350B (zh) | 视频转码处理方法、装置、计算机设备和存储介质 | |
CN110545336A (zh) | Ip地址替换方法、装置、计算机设备和存储介质 | |
CN112003930A (zh) | 任务分配方法、装置、设备及存储介质 | |
CN106936643B (zh) | 一种设备联动方法以及终端设备 | |
CN116303343A (zh) | 数据分片方法、装置、电子设备及存储介质 | |
CN113691587B (zh) | 一种虚拟资源处理方法、装置、电子设备及存储介质 | |
CN114253733A (zh) | 一种内存管理方法、装置、计算机设备和存储介质 | |
CN111523931A (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN114584625B (zh) | 一种消息处理方法、装置、电子设备及存储介质 | |
CN112463748A (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 |