CN111064677A - 基于后端访问量的流量控制方法、存储介质 - Google Patents
基于后端访问量的流量控制方法、存储介质 Download PDFInfo
- Publication number
- CN111064677A CN111064677A CN201911093646.8A CN201911093646A CN111064677A CN 111064677 A CN111064677 A CN 111064677A CN 201911093646 A CN201911093646 A CN 201911093646A CN 111064677 A CN111064677 A CN 111064677A
- Authority
- CN
- China
- Prior art keywords
- service interface
- period
- tps value
- flow control
- control method
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/527—Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供基于后端访问量的流量控制方法、存储介质,方法包括:预设后端各个服务接口的标识;对应各个服务接口的标识,实时记录各个服务接口的调用次数;定时计算各个服务接口的平均tps数值;当一服务接口的平均tps数值超过其最佳tps数值时,限制前端的消息分配。本发明通过收集统计消费者线程对后端产生的实际调用量,据此反向调节任务的处理速度,从而实现精确地限制消费者程序对后端产生的实际压力,有效地对后端流量进行控制。
Description
技术领域
本发明涉及消息处理领域,具体涉及基于后端访问量的流量控制方法、存储介质。
背景技术
消息中间件适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程过程调用更进一步的原因。
现在的MQ通常在处理任务时,是由一个独立的消费线程连接MQ中某个队列进行处理与消费。首先该线程获取MQ中的消息,进行一定的业务逻辑处理,最后调用一个到多个的后端服务的接口进行具体的处理。这边经常会遇到在处理任务时,会存在不同程度地对后端服务的扩散访问,即一个消息可能会调用后端服务的一个或者多个的接口。旧有一般的做法是只能在读取消息的时候进行限流控制,限制一次性取多少消息,之后再处理这些消息。但这样仅能对任务的处理速度进行限制,而无法准确地限制对后端产生的实际调用量。
发明内容
本发明所要解决的技术问题是:提供基于后端访问量的流量控制方法、存储介质,能够提高流控的准确性和有效性。
为了解决上述技术问题,本发明采用的技术方案为:
基于后端访问量的流量控制方法,包括:
预设后端各个服务接口的标识;
对应各个服务接口的标识,实时记录各个服务接口的调用次数;
定时计算各个服务接口的平均tps数值;
当一服务接口的平均tps数值超过其最佳tps数值时,限制前端的消息分配。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述基于后端访问量的流量控制方法所包含的步骤。
本发明的有益效果在于:通过收集统计消费者线程对后端产生的实际调用量,据此反向调节任务的处理速度,从而实现精确地限制消费者程序对后端产生的实际压力,有效地对后端流量进行控制。
附图说明
图1为本发明一实施例基于后端访问量的流量控制方法的流程示意图;
图2为本发明一实施例基于后端访问量的流量控制方法对应的信息交互示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:通过收集统计消费者线程对后端产生的实际调用量来反向调节任务的处理速度,实现准确而有效地流控。
请参照图1,本发明提供基于后端访问量的流量控制方法,包括:
预设后端各个服务接口的标识;
对应各个服务接口的标识,实时记录各个服务接口的调用次数;
定时计算各个服务接口的平均tps数值;
当一服务接口的平均tps数值超过其最佳tps数值时,限制前端的消息分配。
进一步地,还包括:
监控程序每间隔第一周期采集本地内存中记录的各个服务接口的调用次数,并在每次采集完毕后,清空本地内存中的所述记录。
由上述描述可知,通过异步的监控程序来执行定期采集和统计每个第一周期内各个服务接口的调用次数,能够确保所统计数据的准确性,且具有易于实现的优点。
进一步地,所述定时计算各个服务接口的平均tps数值,具体为:
监控程序依据所述第一周期和对应采集的各个服务接口的调用次数,计算各个服务接口对应每一第一周期的tps数值;
每间隔第二周期从监控程序获取对应时间内的各个tps数值,所述第二周期为第一周期的整数倍;
计算对应第二周期的各个服务接口的平均tps数值。
由上述描述可知,通过每第二周期便统计期间内各个服务接口的平均tps数值,为后续定期地快速计算各个服务接口是否超出最佳tps数值提供技术支持。
进一步地,所述限制前端的消息分配,具体为:
减缓前端分配待处理消息至消费线程组的速率,或者
延时分配待处理消息至消费线程组。
由上述描述可知,通过减缓消息分配速率或者延时分配的方式能够从根本上快速的起到限流作用。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现所述的基于后端访问量的流量控制方法所包含的以下步骤:
预设后端各个服务接口的标识;
对应各个服务接口的标识,实时记录各个服务接口的调用次数;
定时计算各个服务接口的平均tps数值;
当一服务接口的平均tps数值超过其最佳tps数值时,限制前端的消息分配。
进一步地,还包括:
监控程序每间隔第一周期采集本地内存中记录的各个服务接口的调用次数,并在每次采集完毕后,清空本地内存中的所述记录。
进一步地,所述定时计算各个服务接口的平均tps数值,具体为:
监控程序依据所述第一周期和对应采集的各个服务接口的调用次数,计算各个服务接口对应每一第一周期的tps数值;
每间隔第二周期从监控程序获取对应时间内的各个tps数值,所述第二周期为第一周期的整数倍;
计算对应第二周期的各个服务接口的平均tps数值。
进一步地,所述限制前端的消息分配,具体为:
减缓前端分配待处理消息至消费线程组的速率,或者
延时分配待处理消息至消费线程组。
请参照图1和图2,本发明的实施例一为:
提供一种基于后端访问量的流量控制方法,其对应的系统信息交互示意如图2所示。所述方法可以包括以下步骤:
1、生产者产生消息,向MQ中发送相关消息。
2、消费者程序会预先从MQ中拉取一批消息出来,数量可以自行设置,如根据具体业务而定。
3、消费者程序中具体的消费线程组将会根据所拉到的消息,进行并发地消息处理操作。
4、正常情况下,并发的消费线程组中的每个线程按照程序的业务逻辑,均会调用后端的服务接口一次或者多次。这边需要预先规定好后端的各个接口的类型(唯一标识),每调用后端某类型的接口时,将会在本地内存中记录对应接口的调用数据。
比如:线程组中存在A、B和C 3个线程进行消息地消费,消费时将会调用后端D、E、F中至少一个接口一次,每一次接口调用,将会按照接口类型(标识)在本地内存中更新对应接口的调用次数。
5、监控程序会每隔1分钟(支持自定义)收集本地内存中记录的消费者程序组调用后端各个类型的接口的调用次数,并且,每一次收集完毕后,将设置对应消费者程序在本地内存中的后端接口调用数量为0,即每次采集后清零,以方便下次再次进行统计。
6、后端每一个接口实际都有一个最佳的吞吐量,即最佳tps数值,表示一秒之内该接口最多可承受的请求数量。该数据可以通过各个接口的压测得出具体数值。据此,在消费者程序分配消息至消费线程组后,在每一个采集周期(例如5分钟)均去监控程序中拉取其在该采集周期内统计的接口调用数据,据此计算该段时间内后端各个接口的平均tps数值,然后将其与各个接口的最佳tps进行比较处理,当小于最佳tps时,则为正常场景,当大于最佳tps时,说明后端系统已经接近或者已经过载了,需要进行控制。
需要注意的是,为了便于计算,消费者程序从监控程序拉取数据的周期(即第二周期)设置为监控程序从本地内存采集数据的第一周期的整数倍。
7、判定后端系统接近或者过载后,就需要减缓消息分配至线程组的速率,或者延时进行消息地分配,通过这种方式来进行反向的消息控制。
本发明的实施例二为:
本实施例对应实施例一,提供一具体运用场景:
假设存在一个客户端程序匀速地向rabbitmq(消息队列)中写入消息。
同时存在一个消费者程序,每次批量地从rabbitmq中拉取一定的消息,每次拉取消息的数量可以自行控制。后端还存在一个并发线程组(即消费线程组),该线程组主要进行真正的业务逻辑处理。当消费线程拉取到消息后,会发送消息至并发线程组中,由其来进行业务处理。
并发线程组中针对不同的消息类型,会调用不同类型的接口进行处理。在此,预先对应各个类型的接口预设其唯一标识。比如说,存在A、B和C共3种类型的消息,以及a、b和c三个不同类型的接口,则可以以类型作为各个接口的唯一标识。其中,A类型消息会调用a、b和c类型接口,B类型消息会调用a和c类型接口,C类型消息会调用b和c类型接口。则线程组每处理一个消息时,会在本地内存中对应所调用接口的类型的调用计数+1。比如,A类型消息处理完毕,则a、b和c类型接口的调用计数分别+1。
存在一个异步定时线程作为监控程序,每隔一分钟(支持自定义)会加载本地内存中的各个类型接口的调用计数结果,并通过计数结果与时间计算好该时间段内(即一分钟内)的tps数值,记录该数值到数据库中。
前述的消费者程序每隔5分钟(支持自定义,优选为一分钟的整数倍)去监控线程处拉取即记录的最近5分钟的监控数据,根据每分钟的tps可以算出一个平均的tps数值。而每一个类型的接口,都有一个自身的最佳tps数值,计算出来的平均tps数值与各个接口的最佳TPS分别进行比较处理,当其中一个接口小于其最佳TPS时,则为正常场景,当大于其最佳TPS时,说明后端系统已经接近或者已经过载了,需要进行控制,此时,就需要减缓消息分配至线程组的速率,或者延时进行消息的分配,通过这种方式来进行反向的消息控制。
实施例三
本实施例对应实施例一或实施例二,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述实施例一或实施例二所述的基于后端访问量的流量控制方法所包含的步骤。具体的步骤内容在此不进行复述,详细请参阅实施例一或实施例二的记载。
综上所述,本发明提供的基于后端访问量的流量控制方法、存储介质,能够实现精确地限制消费者程序对后端产生的实际压力,有效地对后端流量进行控制;而且,还具有易于实现、计算简便、实用性高等特点。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.基于后端访问量的流量控制方法,其特征在于,包括:
预设后端各个服务接口的标识;
对应各个服务接口的标识,实时记录各个服务接口的调用次数;
定时计算各个服务接口的平均tps数值;
当一服务接口的平均tps数值超过其最佳tps数值时,限制前端的消息分配。
2.如权利要求1所述的基于后端访问量的流量控制方法,其特征在于,还包括:
监控程序每间隔第一周期采集本地内存中记录的各个服务接口的调用次数,并在每次采集完毕后,清空本地内存中的所述记录。
3.如权利要求2所述的基于后端访问量的流量控制方法,其特征在于,所述定时计算各个服务接口的平均tps数值,具体为:
监控程序依据所述第一周期和对应采集的各个服务接口的调用次数,计算各个服务接口对应每一第一周期的tps数值;
每间隔第二周期从监控程序获取对应时间内的各个tps数值,所述第二周期为第一周期的整数倍;
计算对应第二周期的各个服务接口的平均tps数值。
4.如权利要求1所述的基于后端访问量的流量控制方法,其特征在于,所述限制前端的消息分配,具体为:
减缓前端分配待处理消息至消费线程组的速率,或者
延时分配待处理消息至消费线程组。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器执行时,能够实现上述权利要求1-4任意一项所述的基于后端访问量的流量控制方法所包含的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911093646.8A CN111064677A (zh) | 2019-11-11 | 2019-11-11 | 基于后端访问量的流量控制方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911093646.8A CN111064677A (zh) | 2019-11-11 | 2019-11-11 | 基于后端访问量的流量控制方法、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111064677A true CN111064677A (zh) | 2020-04-24 |
Family
ID=70298615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911093646.8A Pending CN111064677A (zh) | 2019-11-11 | 2019-11-11 | 基于后端访问量的流量控制方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111064677A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193127A (zh) * | 2007-11-28 | 2008-06-04 | 中兴通讯股份有限公司 | 一种间接获取数据包输入接口信息的方法及装置 |
US20080253284A1 (en) * | 2007-04-16 | 2008-10-16 | Cisco Technology, Inc. | Controlling a Transmission Rate of Packet Traffic |
US20090234996A1 (en) * | 2008-03-12 | 2009-09-17 | Embarq Holdings Company, Llc | System and method for dynamic bandwidth determinations |
CN102868770A (zh) * | 2011-07-05 | 2013-01-09 | 腾讯科技(北京)有限公司 | 一种分配接口的方法、设备及系统 |
CN104683457A (zh) * | 2015-02-13 | 2015-06-03 | 小米科技有限责任公司 | 并发控制的方法及装置 |
CN105100070A (zh) * | 2015-06-29 | 2015-11-25 | 北京奇虎科技有限公司 | 防止对接口服务进行恶意攻击的方法及装置 |
CN107784295A (zh) * | 2017-11-20 | 2018-03-09 | 佘以道 | 基于人体距离拉伸的相机拍摄系统 |
CN108415847A (zh) * | 2018-05-08 | 2018-08-17 | 平安普惠企业管理有限公司 | 性能测试方法、装置、计算机设备及存储介质 |
CN108572898A (zh) * | 2017-03-07 | 2018-09-25 | 北京京东尚科信息技术有限公司 | 一种控制接口的方法、装置、设备、以及存储介质 |
CN109240899A (zh) * | 2017-07-10 | 2019-01-18 | 北京京东尚科信息技术有限公司 | 信息获取方法和装置 |
-
2019
- 2019-11-11 CN CN201911093646.8A patent/CN111064677A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080253284A1 (en) * | 2007-04-16 | 2008-10-16 | Cisco Technology, Inc. | Controlling a Transmission Rate of Packet Traffic |
CN101193127A (zh) * | 2007-11-28 | 2008-06-04 | 中兴通讯股份有限公司 | 一种间接获取数据包输入接口信息的方法及装置 |
US20090234996A1 (en) * | 2008-03-12 | 2009-09-17 | Embarq Holdings Company, Llc | System and method for dynamic bandwidth determinations |
CN102868770A (zh) * | 2011-07-05 | 2013-01-09 | 腾讯科技(北京)有限公司 | 一种分配接口的方法、设备及系统 |
CN104683457A (zh) * | 2015-02-13 | 2015-06-03 | 小米科技有限责任公司 | 并发控制的方法及装置 |
CN105100070A (zh) * | 2015-06-29 | 2015-11-25 | 北京奇虎科技有限公司 | 防止对接口服务进行恶意攻击的方法及装置 |
CN108572898A (zh) * | 2017-03-07 | 2018-09-25 | 北京京东尚科信息技术有限公司 | 一种控制接口的方法、装置、设备、以及存储介质 |
CN109240899A (zh) * | 2017-07-10 | 2019-01-18 | 北京京东尚科信息技术有限公司 | 信息获取方法和装置 |
CN107784295A (zh) * | 2017-11-20 | 2018-03-09 | 佘以道 | 基于人体距离拉伸的相机拍摄系统 |
CN108415847A (zh) * | 2018-05-08 | 2018-08-17 | 平安普惠企业管理有限公司 | 性能测试方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391271B (zh) | 一种基于消息队列系统的延时任务触发方法和装置 | |
CN111510395A (zh) | 业务消息上报方法、装置、设备及介质 | |
CN109814994B (zh) | 一种动态调度线程池的方法及终端 | |
CN109788315A (zh) | 视频转码方法、装置及系统 | |
WO2020134840A1 (zh) | 数据分配方法及相关产品 | |
CN110620699B (zh) | 消息到达率确定方法、装置、设备和计算机可读存储介质 | |
CN110727507B (zh) | 一种消息的处理方法、装置、计算机设备和存储介质 | |
CN110995566A (zh) | 一种消息数据推送方法、系统及装置 | |
CN113064740A (zh) | 一种消息处理方法和装置 | |
CN110781387B (zh) | 证券行情快照的推送方法、证券交易系统及存储介质 | |
CN113079062B (zh) | 一种资源调整方法、装置、计算机设备和存储介质 | |
CN111064677A (zh) | 基于后端访问量的流量控制方法、存储介质 | |
CN114827033B (zh) | 数据流控方法、装置、设备与计算机可读存储介质 | |
CN111309442A (zh) | 微服务容器数量的调整方法、装置、系统、介质及设备 | |
CN115623071A (zh) | 单机多客户端的发布订阅消息分发方法及系统 | |
CN112988417B (zh) | 消息处理方法、装置、电子设备及计算机可读介质 | |
CN113760496B (zh) | 一种容器调度方法和调度器 | |
CN113538081B (zh) | 商城订单系统及其实现资源自适应调度的处理方法 | |
CN101800663B (zh) | 接口缓冲方法和系统 | |
CN114283007A (zh) | 一种解决支付热点账户问题的方法及装置、电子设备 | |
WO2024066770A9 (zh) | 信息获取方法、装置和存储介质 | |
CN117493048B (zh) | 消息动态处理方法、装置、设备和介质 | |
CN110381134A (zh) | 调度方法、系统、调度器及cdn系统 | |
CN114629734B (zh) | 话单处理方法、设备、系统及存储介质 | |
CN110825585B (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 |