CN111290696A - 一种应用程序组件的流控方法及装置 - Google Patents
一种应用程序组件的流控方法及装置 Download PDFInfo
- Publication number
- CN111290696A CN111290696A CN202010120815.9A CN202010120815A CN111290696A CN 111290696 A CN111290696 A CN 111290696A CN 202010120815 A CN202010120815 A CN 202010120815A CN 111290696 A CN111290696 A CN 111290696A
- Authority
- CN
- China
- Prior art keywords
- component
- application
- information
- application program
- queue message
- 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
- 238000000034 method Methods 0.000 title claims abstract description 92
- 230000006870 function Effects 0.000 claims description 88
- 230000008569 process Effects 0.000 claims description 33
- 238000004891 communication Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 14
- 238000013524 data verification Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 abstract description 12
- 238000004883 computer application Methods 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000005192 partition Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000029087 digestion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请适用于计算机应用技术领域,提供了应用程序组件的流控方法、服务器及系统,包括:通过在终端使用应用程序生成应用信息之后,将应用信息发送至服务器,服务器根据预设的队列消息格式生成该应用信息对应的第一队列消息,并将第一队列消息发送至与其关联的存储装置,以将第一队列消息划分为分批文件进行存储,同时通过统计应用程序在每个组件的调用次数、平均耗时和调用成功率,并将其存储至存储装置中。通过根据预设的队列消息格式生成应用信息对应的第一队列消息,以备在应用程序发生故障的情况下能根据队列消息格式快速定位出现故障的页面或者组件,提高定位问题的效率和准确度,也提高了应用程序组件进行流量监测和控制的效率。
Description
技术领域
本申请属于计算机应用技术领域,尤其涉及一种应用程序组件的流控方法及装置。
背景技术
应用程序(Application,App)组件为整个App提供了基础服务,通过对 App的组件进行流量控制管理,有利于及时发现App每个组件的性能瓶颈和潜在风险,同时也使App里面页面调用组件的情况使用和状态透明化,更有利于提升App的性能和健壮性,同时也为组件计费提供很好的数据支持,达到按需使用和谁使用谁付费目的。传统的App组件调用一般都是不透明的,App里面的哪个页面调用了哪些组件,调用组件的成功率、耗时和调用量都无法知道,调用权限也无法控制。
现有技术通过对App的使用数据进行抓包、分析后台服务器所处理的数据来实现App的流量控制管理。但是这种方式在App出现问题时无法对相关组件进行流量限制或者熔断,也很容易出现交叉影响,严重的甚至导致整个App不可使用,App的性能和可用性都缺少比较好的保障,同时,出现问题也比较难定位,客户的满意度也会受到影响。因此,现有技术中在对App组件进行流量监测和控制时效率较低。
发明内容
本申请实施例提供了应用程序组件的流控方法及装置,可以解决现有技术中在对App组件进行流量监测和控制时效率较低的问题。
第一方面,本申请实施例提供了一种应用程序组件的流控方法,应用于终端,包括:
获取用户在终端界面上的触屏信息;所述触屏信息包括所述终端界面上的触摸位置、接触方式;
确定所述触摸位置和所述接触方式对应的组件功能,若所述用户的账户信息具有所述组件功能的使用权限,则运行所述应用程序的组件;
采集所述应用程序在运行所述组件的过程中生成的应用信息;
缓存所述应用信息,并在满足预设的限流熔断条件时,根据当前网络的通信状态,将限定条数的应用信息发送至与所述终端关联的服务器。
其中,所述若所述用户的账户信息具有所述组件功能的使用权限,则运行所述应用程序的组件,包括:
根据获取到的各账户信息对应的组件调用权限,确定当前登录应用程序的账户信息的用户调用权限;
根据所述触摸位置确定所述组件,根据所述触摸方式确定所述组件对应的功能;
若所述组件功能符合所述用户调用权限,则运行所述应用程序的组件。
第二方面,本申请实施例提供了一种应用程序组件的流控方法,应用于服务器,包括:
接收与所述服务器关联的终端在满足预设的限流熔断条件时发送的应用信息,其中,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;
根据预设的数据校验方法,校验所述应用信息的合法性;
若所述应用信息的合法性校验通过,则根据所述应用信息和预设的消息格式生成第一队列消息;
将所述第一队列消息发送至与所述服务器关联的存储装置,以指示所述存储装置根据所述第一队列消息存储所述应用信息。
其中,所述接收与所述服务器关联的终端在满足预设的限流熔断条件时发送的应用信息之前,还包括:
设定所述应用程序中已注册的各账户信息对应的组件调用权限和限流熔断条件,所述限流熔断条件用于触发所述终端发送应用信息;
将所述组件调用权限和所述限流熔断条件发送至所述终端,以指示所述终端根据所述组件调用权限和当前登录的账户信息调用组件,并在满足所述限流熔断条件时发送所述应用信息至所述服务器。
其中,所述接收与所述服务器关联的终端在满足预设的限流熔断条件时发送的应用信息之后,还包括:
统计在预设周期内所述应用信息中每个组件的调用信息;所述调用信息包括每个所述组件的调用次数、平均耗时和调用成功率;
根据所述调用信息和所述消息格式生成第二队列消息;所述第二队列消息用于表征所述预设周期内的应用程序的运行状态;
将所述第二队列消息发送至预设的存储装置,以指示所述存储装置根据所述第二队列消息存储所述组件的调用信息。
第三方面,本申请实施例提供了一种应用程序组件的流控方法,应用于存储装置,包括:
接收与所述存储装置关联的服务器发送的第一队列消息,其中,所述第一队列消息包括与所述服务器关联的终端在运行过程中生成的应用信息,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;
根据预设周期将所述第一队列消息划分为分批文件;
生成所有所述分批文件的明细报表,存储所述分批文件及其明细报表。
其中,所述方法还包括:
接收所述服务器发送的第二队列消息;
识别所述第二队列消息中的组件标识,并根据所述组件标识存储所述第二队列消息中的调用次数、平均耗时和调用成功率,以在接收到所述应用程序的运行故障信息时,调取所述运行故障信息中发生故障的组件的组件标识对应的第二队列消息。
第四方面,本申请实施例提供了一种应用程序组件的流控终端,包括:
第一获取单元,用于获取用户在终端界面上的触屏信息;所述触屏信息包括所述终端界面上的触摸位置、接触方式;
运行单元,用于确定所述触摸位置和所述接触方式对应的组件功能,若所述用户的账户信息具有所述组件功能的使用权限,则运行所述应用程序的组件;
采集单元,用于采集所述应用程序在运行所述组件的过程中生成的应用信息;
第一发送单元,用于缓存所述应用信息,并在满足预设的限流熔断条件时,根据当前网络的通信状态,将限定条数的应用信息发送至与所述终端关联的服务器。
进一步的,所述运行单元包括:
第一确定单元,用于根据获取到的各账户信息对应的组件调用权限,确定当前登录应用程序的账户信息的用户调用权限;
第二确定单元,用于根据所述触摸位置确定的所述组件,根据所述触摸方式确定所述组件对应的功能;
组件运行单元,用于若所述组件功能符合所述用户调用权限,则运行所述应用程序的组件。
第五方面,本申请实施例提供了一种应用程序组件的流控服务器,包括:
第一接收单元,接收与所述服务器关联的终端在满足预设的限流熔断条件时发送的应用信息,其中,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;
校验单元,用于根据预设的数据校验方法,校验所述应用信息的合法性;
第一队列单元,用于若所述应用信息的合法性校验通过,则根据所述应用信息和预设的消息格式生成第一队列消息;
第二发送单元,用于将所述第一队列消息发送至与所述服务器关联的存储装置,以指示所述存储装置根据所述第一队列消息存储所述应用信息。
进一步的,所述应用程序组件的流控服务器还包括:
设定单元,用于设定所述应用程序中已注册的各账户信息对应的组件调用权限和限流熔断条件,所述限流熔断条件用于触发所述终端发送应用信息;
第三发送单元,用于将所述组件调用权限和所述限流熔断条件发送至所述终端,以指示所述终端根据所述组件调用权限和当前登录的账户信息调用组件,并在满足所述限流熔断条件时发送所述应用信息至所述服务器。
进一步的,所述应用程序组件的流控服务器还包括:
统计单元,用于统计在预设周期内所述应用信息中每个组件的调用信息;所述调用信息包括每个所述组件的调用次数、平均耗时和调用成功率;
第二队列单元,用于根据所述调用信息和消息格式生成第二队列消息;所述第二队列消息用于表征所述预设周期内的应用程序的运行状态;
第四发送单元,用于将所述第二队列消息发送至预设的存储装置,以指示所述存储装置根据所述第二队列消息存储所述组件的调用信息。
第六方面,本申请实施例提供了一种应用程序组件的流控存储装置,包括:
第三接收单元,用于接收与所述存储装置关联的服务器发送的第一队列消息,其中,所述第一队列消息包括与所述服务器关联的终端在运行过程中生成的应用信息,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;
分批单元,用于根据预设周期将所述第一队列消息划分为分批文件;
存储单元,用于生成所有所述分批文件的明细报表,存储所述分批文件及其明细报表。
进一步的,所述应用程序组件的流控存储装置还包括:
第四接收单元,用于接收所述服务器发送的第二队列消息;
识别单元,用于识别所述第二队列消息中的组件标识,并根据所述组件标识存储所述第二队列消息中的调用次数、平均耗时和调用成功率,以在接收到所述应用程序的运行故障信息时,调取所述运行故障信息中发生故障的组件的组件标识对应的第二队列消息。
第七方面,本申请实施例提供了一种应用程序组件的流控系统,包括:
终端,用于在运行应用程序的组件时生成应用信息,并根据当前网络的通信状态,将限定条数的应用信息发送至与所述终端关联的服务器,其中,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;
服务器,用于接收所述终端发送的所述应用信息,并在应用信息的合法性校验通过之后,根据所述应用信息和预设的消息格式生成第一队列消息,并将所述第一队列消息发送至与关联的存储装置;
存储装置,用于接收所述服务器发送的第一队列消息,并根据预设周期将所述第一队列消息划分为分批文件,生成所有所述分批文件的明细报表,存储所述分批文件及其明细报表。
第八方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面、第二方面或者第三方面的方法。
第九方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面、第二方面或者第三方面中任一项所述的应用程序组件的流控方法。
可以理解的是,上述第四方面至第九方面的有益效果可以参见上述第一方面至第三方面中的相关描述,在此不再赘述。
本申请实施例与现有技术相比存在的有益效果是:通过在终端使用应用程序生成应用信息之后,在满足限流熔断条件的情况下将应用信息发送至服务器,服务器根据预设的队列消息格式生成该应用信息对应的第一队列消息,并将第一队列消息发送至与其关联的存储装置,在存储装置中将第一队列消息划分为分批文件进行存储,同时通过统计应用程序在每个组件的调用次数、平均耗时和调用成功率,并将其存储至存储装置中,本实施例根据预设的队列消息格式生成应用信息对应的第一队列消息,以备在应用程序发生故障的情况下能根据队列消息格式快速定位出现故障的页面或者组件,提高定位问题的效率和准确度,也提高了应用程序组件进行流量监测和控制的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的应用程序组件的流控方法的流程图;
图2是本申请实施例二提供的应用程序组件的流控方法的流程图;
图3是本申请实施例三提供的应用程序组件的流控方法的流程图;
图4是本申请实施例四提供的应用程序组件的流控终端的示意图;
图5是本申请实施例五提供的应用程序组件的流控服务器的示意图;
图6是本申请实施例六提供的应用程序组件的流控装置的示意图;
图7是本申请实施例七提供的应用程序组件的流控系统的示意图;
图8是本申请实施例八提供的应用程序组件的流控装置的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
参见图1,图1是本申请实施例一提供的一种应用程序组件的流控方法的流程图。本实施例中应用程序组件的流控方法的执行主体为终端。终端可以为智能手机、平板电脑等移动终端,但不限于此,还可以为其他终端,此处不做限制。终端可以是安卓操作系统,也可以是windows操作系统,或IOS操作系统。如图所示的应用程序组件的流控方法可以包括以下步骤:
S101:获取用户在终端界面上的触屏信息;所述触屏信息包括所述终端界面上的触摸位置、接触方式。
在用户操控终端内安装的应用程序的过程中,先在终端界面上点击或者触摸相应的界面组件,以触发终端执行对应的应用功能。
终端在解锁状态下,获取用户的触屏信息,以通过触屏信息确定用户的使用情况,并执行该触屏信息对应的组件功能。
本实施例中的触屏信息包括用户在终端界面上的触摸位置和接触方式,其中,触摸位置可以用终端界面上的组件标识来表征,或者使通过终端界面上的接触点的位置坐标来确定;接触方式包括单击、双击、长按以及滑动等方式,此处不做限定。
S102:确定所述触摸位置和所述接触方式对应的组件功能,若所述用户的账户信息具有所述组件功能的使用权限,则运行所述应用程序的组件。
终端内预先存储了用户的账户信息对应的组件使用权限,其中,每个账户信息对应的组件使用权限为服务器根据应用程序中各个注册的用户的账户信息而设定。
在获取到触屏信息之后,根据触屏信息中的触摸位置确定当前界面中的界面组件,并根据该界面组件的功能和接触方式,确定用户当前触屏信息所对应的组件功能,以根据用户账户的使用权限,判断用户的账户信息具有组件功能的使用权限,若用户的账户信息具有组件功能的使用权限,则确定该组件功能是否能够为该用户所用。
若用户的账户信息具有组件功能的使用权限,则在终端中运行组件功能;若用户的账户信息不具有组件功能的使用权限,则在终端中生成提示信息,以提示用户其权限不能打开或者使用该界面组件对应的功能。
进一步的,步骤S102可以具体包括步骤S1021~步骤S1023:
S1021:根据获取到的各账户信息对应的组件使用权限,确定当前登录应用程序的账户信息的用户使用权限。
本实施例中在用户操控终端内安装的应用程序的过程中,需要先根据自己预先在服务器中注册的账户信息,登录该用户程序。在登录成功之后,应用程序便可以开启应用界面在终端界面上,以供用户触屏使用。
进一步的,本实施例中在用户根据自己的账户信息登录应用程序之后,终端可以根据已登录的账户信息确定用户权限,并根据用户权限来确定哪些组件是该账户信息的权限之内可以使用的组件,并将这些组件显示在终端界面上,同时,选择性的屏蔽不属于该账户信息的权限的组件界面的显示。通过这种方式,可以方便用户的使用,提高用户权限的显示效果,并提高用户通过触屏应用组件的成功率。
S1022:根据所述触摸位置确定的所述组件,根据所述触摸方式确定所述组件对应的功能。
在获取到当前登录应用程序的账户信息的用户使用权限之后,本实施例中根据触摸位置确定用户点击的组件,根据触摸方式确定用户想使用的组件对应的功能。
示例性的,根据触摸位置确定的组件是名称为“购物车”的组件,用户的触摸方式为单击的方式,则根据单击“购物车”的组件,便确定该触屏信息对应的组件的功能为:打开购物车。
可选的,本实施例中的组件调用权限的使用方式可以是先对用户的身份进行认证,在用户身份认证通过之后,再对该用户的进行权限控制。具体的,在进行身份认证时,通过对触发触屏信息的用户的账户信息进行身份认证,当认证得到的身份信息和预先存储的身份信息一致时,则判定身份认证成功,用户可以使用该界面组件对应的功能。
示例性的,本实施例中身份认证可以包括基于网络认证协议Kerberos和基于网际协议(Internet Protocol,IP)的两种身份认证机制。前者为强身份认证,相比于后者具有更好的安全性,后者适用于IP地址可信的网络环境,相比于前者部署更为简便。
在用户身份认证通过之后,再对该用户的进行权限控制。本实施例中权限控制可以是通过设定会话级别来确定对应的权限,可选的,本实施例的会话级别可以包括:从会话拉取数据、向会话中生产数据、创建会话和删除会话等,此处不做限定。
示例性的,在确定了一个用户的身份信息之后,用户可以使用该界面组件对应的功能,再根据预设的会话权限,确定用户对该界面组件的处理方式,例如,只能从会话中生产和创建数据,而没有删除会话数据的权限等。
S1023:若所述组件功能符合所述用户使用权限,则运行所述应用程序的组件。
在识别得到触屏信息对应的组件功能之后,将组件功能与用户使用权限进行对比,若组件功能复合该账户信息对应的使用权限,则运行该应用程序的组件,以实现该组件功能。
具体的,本实施例中运行应用程序的组件的方式是预先与应用程序的安装包安装在终端中的,具体可通过终端根据安装包中的数据运行应用程序的组件,实现该组件对应的功能。
S103:采集所述应用程序在运行所述组件的过程中生成的应用信息。
在运行应用程序的过程中,本实施例采集应用程序在运行过程中生成的应用信息。其中应用信息可以包括用户输入的信息、运行过程中间生成的信息以及数据处理结果等,除此之外,应用信息还可以包括用户访问的组件标识、调用组件的时延信息以及调用结果等,此处不做限定。
其中,应用信息可以包括用户所访问的页面标识、页面调用的组件标识、以及页面处理过程中所用的时长、以及页面处理的结果等,此处不做限定。
可选的,本实施例中采集应用信息的方式可以是在应用程序中设置埋点的方式进行,通过应用程序中的各个组件中附带采集数据的控件,以在该组件运行过程中,便可以收集组件运行过程中的所有数据,达到采集应用程序在运行过程中生成的应用信息的目的。
S104:缓存所述应用信息,并在满足预设的限流熔断条件时,根据当前网络的通信状态,将限定条数的应用信息发送至与所述终端关联的服务器。
在采集得到应用程序在运行过程中生成的应用信息之后,现将应用信息缓存在本地,以在满足限流熔断条件时将应用信息发送至与终端关联的服务器。
本实施例中通过服务器预先设定了发送缓存的应用信息的限流熔断条件,用户在终端运行应用程序过程中,当生成的数据量较大的情况下,及时进行限流熔断,并将缓存的应用信息发送至服务器,同时可选的删除缓存在本地的应用信息,以保证网络通信的负载均衡,同时降低终端的缓存压力。
具体的,本实施例中在采集到用户使用应用程序的应用信息之后,采用缓存协议ProtoBuf把采集到的应用信息保存起来,并在满足限流熔断条件时将应用信息发送至服务器。本实施例中的限流熔断条件可以是在满足每10s或者每满100条数据时,将数据上传到服务器。本实施例通过应用程序上送监控数据到服务端采用ProtoBuf协议传输,减小传输数据的大小,提升了传输的性能和节省网络流量和带宽。
进一步的,在实际应用中,当一个服务器所对接的终端存在很多个的情况下,服务器往往会因为同时接收大量终端发送的数据而出现负载超和、接收数据发生时延的情况。因此,本实施例中,终端在发送应用信息至服务器时,先检测当前网络的通信状态,当网络的通信状态较好时,发送较多条数的应用信息至服务器,当网络的通信状态较低时,发送较少条数的应用信息至服务器,并将较大比例的应用信息缓存在终端本地,以在检测到网络的通信状态变好时,再进行发送。
具体的,本实施例中的网络状态可以通过单位时间内在途传输的数据量来衡量。若单位时间内在途传输的数据量大于预设的数据量阈值,则表示通信状态较差,需要用较低的限定条数来发送应用信息;若单位时间内在途传输的数据量小于该数据量,则表示通信状态较好,可以用较高的限定条数来发送应用信息。本实施例中通过这种方式可以避免传输应用信息时发生网络拥塞,在保证网络负载平衡的基础上,提高应用数据的传输效率。
上述方案,通过获取用户在终端界面上的触屏信息;所述触屏信息包括所述终端界面上的触摸位置、接触方式;确定所述触摸位置和所述接触方式对应的组件功能,若所述用户的账户信息具有所述组件功能的使用权限,则运行所述应用程序的组件;采集所述应用程序在运行所述组件的过程中生成的应用信息;缓存所述应用信息,并在满足预设的限流熔断条件时,根据当前网络的通信状态,将限定条数的应用信息发送至与所述终端关联的服务器。通过在终端运行应用程序过程中,当生成的数据量较大的情况下,及时进行限流熔断,并将缓存的应用信息发送至服务器,保证了网络通信的负载均衡,同时降低终端的缓存压力。
参见图2,图2是本申请实施例二提供的一种应用程序组件的流控方法的流程图。本实施例中应用程序组件的流控方法的执行主体为服务器。如图所示的应用程序组件的流控方法可以包括以下步骤:
S201:接收与所述服务器关联的终端在满足预设的限流熔断条件时发送的应用信息,其中,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定。
本实施例中的服务器与终端关联,用于在终端满足预设的限流熔断条件时,接收终端发送的应用信息。其中,应用信息为终端在运行应用程序的组件时生成,且用户的账户信息具有该组件功能的使用权限时,终端才能运行该应用程序的组件,并生成该组件功能对应的应用信息。
进一步的,步骤S201之前,还可以包括步骤S2011和S2012:
S2011:设定所述应用程序中已注册的各账户信息对应的组件调用权限和限流熔断条件,所述限流熔断条件用于触发所述终端发送应用信息。
本实施例中的应用程序注册有多个账户信息,其中每个账户信息等级不同,则对应有不同的组件调用权限和限流熔断条件,其中,组件调用权限用于表示不同账户信息对应的应用程序的组件调用情况,限流熔断条件用于表示不同账户信息在运行应用程序过程中,将生成的应用程序缓存,并在缓存的应用信息到达一定的容量之后停止缓存的触发条件和缓存的应用信息的处理方式,以通过在满足触发条件的时候,将缓存的应用信息发送至终端关联的服务器。
本实施例中服务端根据应用程序里每个组件的性能情况,提前配置好每个组件的限流和熔断规则,页面使用组件的授权。
S2012:将所述组件调用权限和所述限流熔断条件发送至所述终端,以指示所述终端根据所述组件调用权限和当前登录的账户信息调用组件,并在满足所述限流熔断条件时发送所述应用信息至所述服务器。
本实施例中,在生成每个账户信息对应的组件调用权限和限流熔断条件之后,将组件调用权限和限流熔断条件发送至终端,以指示终端根据组件调用权限和当前登录的账户信息调用组件,并在满足限流熔断条件时发送应用信息至服务器。
进一步的,步骤S201之后,还可以包括步骤S2013~S2015:
S2013:统计在预设周期内所述应用信息中每个组件的调用信息;所述调用信息包括每个所述组件的调用次数、平均耗时和调用成功率。
在终端运行应用程序的过程中,会不停的生成应用信息,并将缓存的应用信息发送至服务器。服务器统计预设周期内接收到的应用信息,其中包括应用信息中每个组件的调用信息,其中调用信息包括每个组件的调用次数、平均耗时和调用成功率,以在之后对这些统计得到的数据进行分析处理。
具体的,根据已经配置好的流控和熔断规则,判断页面调用组件的次数、成功率和耗时是否已经达到阈值,如果达到阈值,则动态向应用程序下发限流、熔断或者关闭调用权限的通知,如果是限流,会根据后续上报的调用数据,动态调整限流的阈值,直到完全恢复正常调用。
S2014:根据所述调用信息和所述消息格式生成第二队列消息;所述第二队列消息用于表征所述预设周期内的应用程序的运行状态。
本实施例中,应用程序在运行过程中通常需要与服务器不断进行信息交互,如何保证数据流转的快速、低延迟,同时又保证各系统自身的独立性。此时,本实施例中引入消息中间件服务,通过队列消息将获取到的应用消息进行处理,得到格式统一的队列消息。队列消息的主要功能有两点:第一,降低系统之间或系统内部各个服务之间的耦合度,每个子系统不必感知对方的存在,便于独立进行开发、维护。第二,降低编程复杂度,所有子系统或服务面向队列消息编程,不产生直接依赖,不用关联其他系统,只用专注于本身业务功能。
可选的,本实施例中通过卡夫卡数据流KAFKA Stream中的k数据流 kStream,按照分钟聚合汇总出每个页面调用每个组件的调用次数、平均耗时和成功率等信息,再用k表格kTable汇总统计数据,然后把汇总计算后的结果根据消息格式生成第二队列消息。
在生成第一KAFKA队列消息时,为使数据有更强的使用性,从数据的时空角度,本实施例中提出一种高效的队列消息格式,如下队列消息格式所示:
队列消息格式
ID | Component | Time | Data |
其中,ID作为数据块的唯一编码,设置为16个字节存储;Component表示应用信息对应的应用程序的组件界面信息,可以为组件标识,设置1024个字节存储,每个界面组件对应相应的一位(如界面组件C1对应第一位,界面组件C2对应第二位,以此类推),如果该界面组件没有被采集数据,则Component 设置为0,如果该界面组件正在被采集数据,则Component设置为1;Time表示界面组件的起始时间和终止时间,设置16个字节存储,前8个字节对应监测起始时间,后8个字节对应监测终止时间;Data表示特定时间特定测点的原始监测数据,设置1024000个字节存储,当需要保存的某个数据块字节块超过设定长度时,可以另开一个数据块进行保存。此时,按照定义的队列消息格式写入数据到非关系型数据库hBase中。当需要分析数据时,可以方便快速地从 hBase数据库中根据ID或者时间、组件标识对数据进行读取。
S2015:将所述第二队列消息发送至预设的存储装置,以指示所述存储装置根据所述第二队列消息存储所述组件的调用信息。
在生成第二队列消息之后,将第二队列消息发送至预设的与服务器关联的存储装置,以指示存储装置根据第二队列消息存储组件的调用信息。
存储装置接收到第二队列消息后,同时把汇总的数据按天分表,保存到 MYSQL数据库,为准实时汇总报表提供数据支持。
本实施例中,通过监控手机应用程序里面各个页面调用应用程序组件的情况,如果一个页面或者组件有异常,可以快速定位出现问题的页面或者组件,提高定位问题的效率;另外可以对有问题的页面或者组件及时进行流量限制或者熔断,从而避免出现交叉影响,提升应用程序的性能和可用性。为页面调用组件提供授权管理和付费计算依据,对各页面属主进行按需使用和收费。
S202:根据预设的数据校验方法,校验所述应用信息的合法性。
服务器接收到应用信息后,先校验应用信息的合法性,具体的校验方式可以是应用信息的数据摘要校验,此处不做赘述。
S203:若所述应用信息的合法性校验通过,则根据所述应用信息和预设的消息格式生成第一队列消息。
本实施例中的队列消息格式,可以将用户在使用应用程序的应用信息、服务器在处理应用程序的请求过程中所有的应用信息和调用数据照该队列消息格式生成KAFKA队列消息,本实施例的队列消息格式可以在应用程序发生故障,或者终端、服务器以及存储装置的等任一设备出现故障的情况下,可以先根据故障发生的目标时间确定该段时间之内对应的目标数据,其确定目标数据的方式可以是根据队列消息格式中的Time,提取消息格式中包括了该目标时间的数据作为目标数据,再根据目标数据中的Component筛选出可能发生故障的元素,实现数据定位,以针对性的进行故障分析,高效的确定故障发生的原因。
本实施例中的第一队列消息可以包括KAFKA队列消息,生成KAFKA队列消息的元素可以包括创造者Producer、客户Consumer、消息Message、会话 Topic、分组Partition以及集群Broker等,其中,Produce用于表示发布消息的对象称之为话题生产者;Consumer用于表示订阅消息并处理发布的消息的种子的对象称之为话题消费者;Message用于表示消息,是通信的基本单位,每个 Producer可以向一个主题发布一些消息;会话用于表示KAFKA将消息种子分门别类,每一类的消息称之为主题;Partition用于表示会话是物理上的分组,Partition是逻辑上的分区,因为一个会话可以分为多个Partition,并且每个 Partition都是一个有序的队列。Partition中的每条消息都会被分配一个有序的消息标识,该消息标识会指明Partition有序队列的偏移量;Broker用于表示已发布的消息保存在一组服务器中,称之为KAFKA集群。集群中的每一个服务器都是一个代理。消费者可以订阅一个或多个话题,并从Broker拉数据,从而消费这些已发布的消息。
在实际应用中,服务器提供数据的能力要大于或等于存储装置存储或者处理数据的能力,数据采集系统才能正常运行。而推送的方式在存储装置消费或者消化数据能力小于服务器提供数据能力的情况下,会产生数据堆积问题,因此,本实施例的KAFKA采用拉取的方式,允许服务器提供数据的能力超过存储装置消费数据的能力,也使得存储装置能够自行调节接收数据的速率。
S204:将所述第一队列消息发送至与所述服务器关联的存储装置,以指示所述存储装置根据所述第一队列消息存储所述应用信息。
在生成第一队列消息之后,将第一队列消息发送至与服务器关联的存储装置,其发送方式可以缓存-再发送的方式进行。本实施例中的第一队列消息的作用在于通过第一队列消息存储应用信息,以在存储装置中可以根据第一队列消息确定应用信息的状态。
上述方案,通过接收与所述服务器关联的终端在满足预设的限流熔断条件时发送的应用信息,其中,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;根据预设的数据校验方法,校验所述应用信息的合法性;若所述应用信息的合法性校验通过,则根据所述应用信息和预设的消息格式生成第一队列消息;将所述第一队列消息发送至与所述服务器关联的存储装置,以指示所述存储装置根据所述第一队列消息存储所述应用信息。通过根据终端发送的应用信息生成第一队列消息,并将第一队列消息和应用信息存储至存储装置中,提高了应用信息的存储效率,同时也提高了应用程序的数据处理效率。
参见图3,图3是本申请实施例三提供的一种应用程序组件的流控方法的流程图。本实施例中应用程序组件的流控方法的执行主体为存储装置。如图所示的应用程序组件的流控方法可以包括以下步骤:
S301:接收与所述存储装置关联的服务器发送的第一队列消息,其中,所述第一队列消息包括与所述服务器关联的终端在运行过程中生成的应用信息,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定。
接收与存储装置关联的服务器发送的第一队列消息,本实施例中第一队列消息包括与服务器关联的终端在运行过程中生成的应用信息,应用信息包括终端在运行应用程序的组件时生成,应用程序的组件的运行条件包括用户的账户信息具有组件功能的使用权限。
S302:根据预设周期将所述第一队列消息划分为分批文件。
存储装置接收KAFKA队列消息后,首先把队列消息按照每个小时一个文件保存每一条明细数据,生成分批文件,再把生成好的分批文件批量移到网络附属存储卷上。
S303:生成所有所述分批文件的明细报表,存储所述分批文件及其明细报表。
再通过hadoop把分批文件按天分区保存到蜂箱hive库,并生成分批文件的明细报表,保存到MYSQL数据库,为准实时汇总报表提供数据支持。
示例性的,可以根据明细报表确定每个组件的数据流量大小,并再需要根据组件流量进行收费的情况下,根据明细报表为组件调用的流量进行计费。
进一步的,所述方法还包括:
接收所述服务器发送的第二队列消息;
识别所述第二队列消息中的组件标识,并根据所述组件标识存储所述第二队列消息中的调用次数、平均耗时和调用成功率,以在接收到所述应用程序的运行故障信息时,调取所述运行故障信息中发生故障的组件的组件标识对应的第二队列消息。
具体的,服务器在生成第一队列消息之后,将第二队列消息发送至与其关联的存储装置,存储装置在接收到服务器发送的第二队列消息之后,识别第二队列消息中的组件标识,并根据组件标识存储第二队列消息中的调用次数、平均耗时和调用成功率,以在接收到应用程序的运行故障信息时,调取运行故障信息中发生故障的组件的组件标识对应的第二队列消息,
示例性的,通过监控手机应用程序里面各个页面调用应用程序组件的情况,如果一个页面或者组件有异常,可以快速定位出现问题的页面或者组件,提高定位问题的效率;另外可以对有问题的页面或者组件及时进行流量限制或者熔断,从而避免出现交叉影响,提升应用程序的性能和可用性。为页面调用组件提供授权管理和付费计算依据,对各页面属主进行按需使用和收费。
上述方案,通过接收与所述存储装置关联的服务器发送的第一队列消息,其中,所述第一队列消息包括与所述服务器关联的终端在运行过程中生成的应用信息,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;根据预设周期将所述第一队列消息划分为分批文件;生成所有所述分批文件的明细报表,存储所述分批文件及其明细报表。通过接收并存储服务器发送的第一队列消息,并根据第一队列消息进行划分,得到各分批文件对应的明细报表、提高了应用信息的存储效率,同时也提高了应用程序的故障处理效率。
参见图4,图4是本申请实施例四提供的一种应用程序组件的流控终端的示意图。应用程序组件的流控终端400可以为智能手机、平板电脑等移动终端。本实施例的应用程序组件的流控终端400包括的各单元用于执行图1对应的实施例中的各步骤,具体请参阅图1及图1对应的实施例中的相关描述,此处不赘述。本实施例的应用程序组件的流控终端400包括:
第一获取单元401,用于获取用户在终端界面上的触屏信息;所述触屏信息包括所述终端界面上的触摸位置、接触方式;
运行单元402,用于确定所述触摸位置和所述接触方式对应的组件功能,若所述用户的账户信息具有所述组件功能的使用权限,则运行所述应用程序的组件;
采集单元403,用于采集所述应用程序在运行所述组件的过程中生成的应用信息;
第一发送单元404,用于缓存所述应用信息,并在满足预设的限流熔断条件时,根据当前网络的通信状态,将限定条数的应用信息发送至与所述终端关联的服务器。
进一步的,所述运行单元402包括:
第一确定单元,用于根据获取到的各账户信息对应的组件调用权限,确定当前登录应用程序的账户信息的用户调用权限;
第二确定单元,用于根据所述触摸位置确定的所述组件,根据所述触摸方式确定所述组件对应的功能;
组件运行单元,用于若所述组件功能符合所述用户调用权限,则运行所述应用程序的组件。
上述方案,通过获取用户在终端界面上的触屏信息;所述触屏信息包括所述终端界面上的触摸位置、接触方式;确定所述触摸位置和所述接触方式对应的组件功能,若所述用户的账户信息具有所述组件功能的使用权限,则运行所述应用程序的组件;采集所述应用程序在运行所述组件的过程中生成的应用信息;缓存所述应用信息,并在满足预设的限流熔断条件时,根据当前网络的通信状态,将限定条数的应用信息发送至与所述终端关联的服务器。通过在终端运行应用程序过程中,当生成的数据量较大的情况下,及时进行限流熔断,并将缓存的应用信息发送至服务器,保证了网络通信的负载均衡,同时降低终端的缓存压力。
参见图5,图5是本申请实施例五提供的一种服务器500的示意图。本实施例的服务器500包括的各单元用于执行图2对应的实施例中的各步骤,具体请参阅图2及图2对应的实施例中的相关描述,此处不赘述。本实施例的服务器500包括:
第一接收单元501,接收与所述服务器关联的终端在满足预设的限流熔断条件时发送的应用信息,其中,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;
校验单元502,用于根据预设的数据校验方法,校验所述应用信息的合法性;
第一队列单元503,用于若所述应用信息的合法性校验通过,则根据所述应用信息和预设的消息格式生成第一队列消息;
第二发送单元504,用于将所述第一队列消息发送至与所述服务器关联的存储装置,以指示所述存储装置根据所述第一队列消息存储所述应用信息。
进一步的,所述服务器500还包括:
设定单元,用于设定所述应用程序中已注册的各账户信息对应的组件调用权限和限流熔断条件,所述限流熔断条件用于触发所述终端发送应用信息;
第三发送单元,用于将所述组件调所述应用信息由所述终端在运行应用程序的组件时生成用权限和所述限流熔断条件发送至所述终端,以指示所述终端根据所述组件调用权限和当前登录的账户信息调用组件,并在满足所述限流熔断条件时发送所述应用信息至所述服务器。
进一步的,所述服务器500还包括:
统计单元,用于统计在预设周期内所述应用信息中每个组件的调用信息;所述调用信息包括每个所述组件的调用次数、平均耗时和调用成功率;
第二队列单元,用于根据所述调用信息和所述消息格式生成第二队列消息;所述第二队列消息用于表征所述预设周期内的应用程序的运行状态;
第四发送单元,用于将所述第二队列消息发送至预设的存储装置,以指示所述存储装置根据所述第二队列消息存储所述组件的调用信息。
上述方案,通过接收与所述服务器关联的终端在满足预设的限流熔断条件时发送的应用信息,其中,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;根据预设的数据校验方法,校验所述应用信息的合法性;若所述应用信息的合法性校验通过,则根据所述应用信息和预设的消息格式生成第一队列消息;将所述第一队列消息发送至与所述服务器关联的存储装置,以指示所述存储装置根据所述第一队列消息存储所述应用信息。通过根据终端发送的应用信息生成第一队列消息,并将第一队列消息和应用信息存储至存储装置中,提高了应用信息的存储效率,同时也提高了应用程序的数据处理效率。
参见图6,图6是本申请实施例六提供的一种存储装置的示意图。存储装置600可以为智能手机、平板电脑等移动终端。本实施例的存储装置600包括的各单元用于执行图3对应的实施例中的各步骤,具体请参阅图3及图3对应的实施例中的相关描述,此处不赘述。本实施例的存储装置600包括:
第三接收单元601,用于接收与所述存储装置关联的服务器发送的第一队列消息,其中,所述第一队列消息包括与所述服务器关联的终端在运行过程中生成的应用信息,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;
分批单元602,用于根据预设周期将所述第一队列消息划分为分批文件;
存储单元603,用于生成所有所述分批文件的明细报表,存储所述分批文件及其明细报表。
进一步的,所述存储装置600还包括:
第四接收单元,用于接收所述服务器发送的第二队列消息;
识别单元,用于识别所述第二队列消息中的组件标识,并根据所述组件标识存储所述第二队列消息中的调用次数、平均耗时和调用成功率,以在接收到所述应用程序的运行故障信息时,调取所述运行故障信息中发生故障的组件的组件标识对应的第二队列消息。
上述方案,通过接收与所述存储装置关联的服务器发送的第一队列消息,其中,所述第一队列消息包括与所述服务器关联的终端在运行过程中生成的应用信息,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;根据预设周期将所述第一队列消息划分为分批文件;生成所有所述分批文件的明细报表,存储所述分批文件及其明细报表。通过接收并存储服务器发送的第一队列消息,并根据第一队列消息进行划分,得到各分批文件对应的明细报表、提高了应用信息的存储效率,同时也提高了应用程序的故障处理效率。
参见图7,图7是本申请实施例七提供的一种应用程序组件的流控系统的示意图。程序组件的流控系统中包括终端701、服务器702以及存储装置703,其中,终端701与服务器702相互关联,服务器702与存储装置703相互关联。本实施例的应用程序组件的流控系统700包括:
终端701,用于在运行应用程序的组件时生成应用信息,并根据当前网络的通信状态,将限定条数的应用信息发送至与所述终端关联的服务器,其中,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;
服务器702,用于接收所述终端发送的所述应用信息,并在应用信息的合法性校验通过之后,根据所述应用信息和预设的消息格式生成第一队列消息,并将所述第一队列消息发送至与关联的存储装置;
存储装置703,用于接收所述服务器发送的第一队列消息,并根据预设周期将所述第一队列消息划分为分批文件,生成所有所述分批文件的明细报表,存储所述分批文件及其明细报表。
上述方案,通过在终端使用应用程序生成应用信息之后,在满足限流熔断条件的情况下将应用信息发送至服务器,服务器根据预设的队列消息格式生成该应用信息对应的第一队列消息,并将第一队列消息发送至与其关联的存储装置,在存储装置中将第一队列消息划分为分批文件进行存储,同时通过统计应用程序在每个组件的调用次数、平均耗时和调用成功率,并将其存储至存储装置中,本实施例根据预设的队列消息格式生成应用信息对应的第一队列消息,以备在应用程序发生故障的情况下能根据队列消息格式快速定位出现故障的页面或者组件,提高定位问题的效率和准确度,也提高了应用程序组件进行流量监测和控制的效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图8是本申请实施例八提供的应用程序组件的流控系统的示意图。如图8 所示,该实施例的应用程序组件的流控装置8包括:处理器80、存储器81以及存储在所述存储器81中并可在所述处理器80上运行的计算机程序82。所述处理器80执行所述计算机程序82时实现上述各个应用程序组件的流控方法实施例中的步骤,例如图1、图2或者图3所示的步骤。或者,所述处理器80执行所述计算机程序82时实现上述各程序组件的流控终端、程序组件的流控服务器或者程序组件的流控存储装置的功能。
示例性的,所述计算机程序82可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器81中,并由所述处理器80执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序82在所述应用程序组件的流控装置8中的执行过程。
所述应用程序组件的流控装置8可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是应用程序组件的流控装置8的示例,并不构成对应用程序组件的流控装置8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器81可以是所述应用程序组件的流控装置8的内部存储单元,例如应用程序组件的流控装置8的硬盘或内存。所述存储器81也可以是所述应用程序组件的流控装置8的外部存储设备,例如所述应用程序组件的流控装置8 上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card,FC)等。进一步地,所述存储器81还可以既包括所述应用程序组件的流控装置8的内部存储单元也包括外部存储设备。所述存储器81用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种应用程序组件的流控方法,其特征在于,应用于终端,包括:
获取用户在终端界面上的触屏信息;所述触屏信息包括所述终端界面上的触摸位置、接触方式;
确定所述触摸位置和所述接触方式对应的组件功能;
若所述用户的账户信息具有所述组件功能的使用权限,则运行所述应用程序的组件;
采集所述应用程序在运行所述组件的过程中生成的应用信息;
缓存所述应用信息,并在满足预设的限流熔断条件时,根据当前网络的通信状态,将限定条数的应用信息发送至与所述终端关联的服务器。
2.如权利要求1所述的应用程序组件的流控方法,其特征在于,所述若所述用户的账户信息具有所述组件功能的使用权限,则运行所述应用程序的组件,包括:
根据获取到的各账户信息对应的组件调用权限,确定当前登录应用程序的账户信息的用户调用权限;
根据所述触摸位置确定所述组件,根据所述触摸方式确定所述组件对应的功能;
若所述组件功能符合所述用户调用权限,则运行所述应用程序的组件。
3.一种应用程序组件的流控方法,其特征在于,应用于服务器,包括:
接收与所述服务器关联的终端在满足预设的限流熔断条件时发送的应用信息,其中,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;
根据预设的数据校验方法,校验所述应用信息的合法性;
若所述应用信息的合法性校验通过,则根据所述应用信息和预设的消息格式生成第一队列消息;
将所述第一队列消息发送至与所述服务器关联的存储装置,以指示所述存储装置根据所述第一队列消息存储所述应用信息。
4.如权利要求3所述的应用程序组件的流控方法,其特征在于,所述接收与所述服务器关联的终端在满足预设的限流熔断条件时发送的应用信息之前,还包括:
设定所述应用程序中已注册的各账户信息对应的组件调用权限和限流熔断条件,所述限流熔断条件用于触发所述终端发送应用信息;
将所述组件调用权限和所述限流熔断条件发送至所述终端,以指示所述终端根据所述组件调用权限和当前登录的账户信息调用组件,并在满足所述限流熔断条件时发送所述应用信息至所述服务器。
5.如权利要求3所述的应用程序组件的流控方法,其特征在于,所述接收与所述服务器关联的终端在满足预设的限流熔断条件时发送的应用信息之后,还包括:
统计在预设周期内所述应用信息中每个组件的调用信息;所述调用信息包括每个所述组件的调用次数、平均耗时和调用成功率;
根据所述调用信息和所述消息格式生成第二队列消息;所述第二队列消息用于表征所述预设周期内的应用程序的运行状态;
将所述第二队列消息发送至预设的存储装置,以指示所述存储装置根据所述第二队列消息存储所述组件的调用信息。
6.一种应用程序组件的流控方法,其特征在于,应用于存储装置,包括:
接收与所述存储装置关联的服务器发送的第一队列消息,其中,所述第一队列消息包括与所述服务器关联的终端在运行过程中生成的应用信息,所述应用信息由所述终端在运行应用程序的组件时生成,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;
根据预设周期将所述第一队列消息划分为分批文件;
生成所有所述分批文件的明细报表,存储所述分批文件及其明细报表。
7.如权利要求6所述的应用程序组件的流控方法,其特征在于,所述方法还包括:
接收所述服务器发送的第二队列消息;
识别所述第二队列消息中的组件标识,并根据所述组件标识存储所述第二队列消息中的调用次数、平均耗时和调用成功率,以在接收到所述应用程序的运行故障信息时,调取所述运行故障信息中发生故障的组件的组件标识对应的第二队列消息。
8.一种应用程序组件的流控系统,其特征在于,包括:
终端,用于在运行应用程序的组件时生成应用信息,并根据当前网络的通信状态,将限定条数的应用信息发送至与所述终端关联的服务器,其中,所述应用程序的组件的运行条件包括所述用户的账户信息具有所述组件的功能的使用权限,所述组件功能基于获取到的触摸位置以及接触方式确定;
服务器,用于接收所述终端发送的所述应用信息,并在所述应用信息的合法性校验通过之后,根据所述应用信息和预设的消息格式生成第一队列消息,并将所述第一队列消息发送至与服务器关联的存储装置;
存储装置,用于接收所述服务器发送的第一队列消息,并根据预设周期将所述第一队列消息划分为分批文件,生成所有所述分批文件的明细报表,存储所述分批文件及其明细报表。
9.一种应用程序组件的流控装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至2任一项所述方法、权利要求3至5任一项所述方法、或权利要求6至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至2任一项所述方法、权利要求3至5任一项所述方法、或权利要求6至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010120815.9A CN111290696A (zh) | 2020-02-26 | 2020-02-26 | 一种应用程序组件的流控方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010120815.9A CN111290696A (zh) | 2020-02-26 | 2020-02-26 | 一种应用程序组件的流控方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111290696A true CN111290696A (zh) | 2020-06-16 |
Family
ID=71026919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010120815.9A Pending CN111290696A (zh) | 2020-02-26 | 2020-02-26 | 一种应用程序组件的流控方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111290696A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966508A (zh) * | 2020-07-29 | 2020-11-20 | 广州海鹚网络科技有限公司 | 一种消息的批量发送方法、装置、计算机设备和存储介质 |
CN112527524A (zh) * | 2020-12-09 | 2021-03-19 | 北京百度网讯科技有限公司 | 动态限流方法、装置以及电子设备 |
CN113110887A (zh) * | 2021-03-31 | 2021-07-13 | 联想(北京)有限公司 | 一种信息处理方法、装置、电子设备和存储介质 |
CN113507530A (zh) * | 2021-09-09 | 2021-10-15 | 深圳市安软慧视科技有限公司 | 数据转发方法、相关系统和设备及存储介质 |
CN113760564A (zh) * | 2020-10-20 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据处理方法、装置和系统 |
CN115314385A (zh) * | 2022-07-28 | 2022-11-08 | 深圳市思达仪表有限公司 | 组网模块的固件升级方法、装置、计算机设备及介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150100628A1 (en) * | 2012-03-13 | 2015-04-09 | Semotus Inc. | System and Method for Message Dispatching and Communication |
CN108664337A (zh) * | 2018-03-23 | 2018-10-16 | 北京奇艺世纪科技有限公司 | 一种分布式系统的消息减压方法和装置 |
WO2019071424A1 (zh) * | 2017-10-10 | 2019-04-18 | 深圳传音通讯有限公司 | 应用功能的控制方法及终端 |
CN109743358A (zh) * | 2018-12-13 | 2019-05-10 | 平安普惠企业管理有限公司 | 异步消息接口熔断控制方法、装置、计算机设备及存储介质 |
CN109873904A (zh) * | 2019-03-05 | 2019-06-11 | 平安科技(深圳)有限公司 | 消息推送的用户消息状态上报处理方法、装置及存储介质 |
CN110297746A (zh) * | 2019-07-05 | 2019-10-01 | 北京慧眼智行科技有限公司 | 一种数据处理方法及系统 |
CN110377434A (zh) * | 2019-07-04 | 2019-10-25 | 深圳前海微众银行股份有限公司 | 一种服务熔断方法、装置及消息中间件 |
CN110737462A (zh) * | 2019-10-15 | 2020-01-31 | 腾讯科技(深圳)有限公司 | 应用程序内的功能组件的控制方法、设备及存储介质 |
CN110737567A (zh) * | 2019-10-17 | 2020-01-31 | 吉旗(成都)科技有限公司 | 基于缓存的服务端接口熔断方法及装置 |
CN110837426A (zh) * | 2019-11-06 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 消息处理方法、装置及系统、存储介质 |
CN110837431A (zh) * | 2019-11-13 | 2020-02-25 | 深圳前海环融联易信息科技服务有限公司 | 服务控制方法、装置、计算机设备及计算机可读存储介质 |
-
2020
- 2020-02-26 CN CN202010120815.9A patent/CN111290696A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150100628A1 (en) * | 2012-03-13 | 2015-04-09 | Semotus Inc. | System and Method for Message Dispatching and Communication |
WO2019071424A1 (zh) * | 2017-10-10 | 2019-04-18 | 深圳传音通讯有限公司 | 应用功能的控制方法及终端 |
CN108664337A (zh) * | 2018-03-23 | 2018-10-16 | 北京奇艺世纪科技有限公司 | 一种分布式系统的消息减压方法和装置 |
CN109743358A (zh) * | 2018-12-13 | 2019-05-10 | 平安普惠企业管理有限公司 | 异步消息接口熔断控制方法、装置、计算机设备及存储介质 |
CN109873904A (zh) * | 2019-03-05 | 2019-06-11 | 平安科技(深圳)有限公司 | 消息推送的用户消息状态上报处理方法、装置及存储介质 |
CN110377434A (zh) * | 2019-07-04 | 2019-10-25 | 深圳前海微众银行股份有限公司 | 一种服务熔断方法、装置及消息中间件 |
CN110297746A (zh) * | 2019-07-05 | 2019-10-01 | 北京慧眼智行科技有限公司 | 一种数据处理方法及系统 |
CN110737462A (zh) * | 2019-10-15 | 2020-01-31 | 腾讯科技(深圳)有限公司 | 应用程序内的功能组件的控制方法、设备及存储介质 |
CN110737567A (zh) * | 2019-10-17 | 2020-01-31 | 吉旗(成都)科技有限公司 | 基于缓存的服务端接口熔断方法及装置 |
CN110837426A (zh) * | 2019-11-06 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 消息处理方法、装置及系统、存储介质 |
CN110837431A (zh) * | 2019-11-13 | 2020-02-25 | 深圳前海环融联易信息科技服务有限公司 | 服务控制方法、装置、计算机设备及计算机可读存储介质 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966508A (zh) * | 2020-07-29 | 2020-11-20 | 广州海鹚网络科技有限公司 | 一种消息的批量发送方法、装置、计算机设备和存储介质 |
CN113760564A (zh) * | 2020-10-20 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据处理方法、装置和系统 |
CN112527524A (zh) * | 2020-12-09 | 2021-03-19 | 北京百度网讯科技有限公司 | 动态限流方法、装置以及电子设备 |
CN113110887A (zh) * | 2021-03-31 | 2021-07-13 | 联想(北京)有限公司 | 一种信息处理方法、装置、电子设备和存储介质 |
CN113110887B (zh) * | 2021-03-31 | 2023-07-21 | 联想(北京)有限公司 | 一种信息处理方法、装置、电子设备和存储介质 |
CN113507530A (zh) * | 2021-09-09 | 2021-10-15 | 深圳市安软慧视科技有限公司 | 数据转发方法、相关系统和设备及存储介质 |
CN113507530B (zh) * | 2021-09-09 | 2022-01-04 | 深圳市安软慧视科技有限公司 | 数据转发方法、相关系统和设备及存储介质 |
CN115314385A (zh) * | 2022-07-28 | 2022-11-08 | 深圳市思达仪表有限公司 | 组网模块的固件升级方法、装置、计算机设备及介质 |
CN115314385B (zh) * | 2022-07-28 | 2024-05-24 | 深圳市思达仪表有限公司 | 组网模块的固件升级方法、装置、计算机设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111290696A (zh) | 一种应用程序组件的流控方法及装置 | |
US11456965B2 (en) | Network service request throttling system | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
US9703980B2 (en) | Centralized throttling service | |
CN109299144B (zh) | 一种数据处理方法、装置、系统及应用服务器 | |
CN106778260B (zh) | 攻击检测方法和装置 | |
CN110362455B (zh) | 一种数据处理方法和数据处理装置 | |
CN108762885B (zh) | 一种虚拟机创建方法、装置、管理设备及终端设备 | |
CN106027595A (zh) | 用于cdn节点的访问日志处理方法及系统 | |
CN111641563B (zh) | 基于分布式场景的流量自适应方法与系统 | |
CN113127168A (zh) | 服务分配方法、系统、装置、服务器及介质 | |
CN113225339B (zh) | 网络安全监测方法、装置、计算机设备及存储介质 | |
CN107864070A (zh) | 网络状态监控方法、设备及系统 | |
CN111212031A (zh) | 一种接口访问频率的控制方法、装置、电子设备和存储介质 | |
CN113361913A (zh) | 一种通信业务编排方法、装置、计算机设备及存储介质 | |
CN114090623A (zh) | 一种缓存资源的创建方法、装置、电子设备及存储介质 | |
CN112671602B (zh) | 边缘节点的数据处理方法、装置、系统、设备和存储介质 | |
CN113905091A (zh) | 用于对访问请求进行处理的方法及装置 | |
CN108804152B (zh) | 配置参数的调节方法及装置 | |
CN112422485A (zh) | 一种传输控制协议的通信方法及装置 | |
CN110222084B (zh) | 热点设备监控信息的上报方法及装置、存储介质、终端 | |
CN108306859B (zh) | 限制服务器访问量的方法、设备及计算机可读存储介质 | |
CN108989461B (zh) | 一种多控存储均衡方法、装置、终端及存储介质 | |
CN109388542B (zh) | 一种监控方法及装置、计算机可读存储介质 | |
CN111355626A (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 |