CN109962860A - 一种应用于电信运营商电子渠道的软件系统访问限流方法 - Google Patents
一种应用于电信运营商电子渠道的软件系统访问限流方法 Download PDFInfo
- Publication number
- CN109962860A CN109962860A CN201711399795.8A CN201711399795A CN109962860A CN 109962860 A CN109962860 A CN 109962860A CN 201711399795 A CN201711399795 A CN 201711399795A CN 109962860 A CN109962860 A CN 109962860A
- Authority
- CN
- China
- Prior art keywords
- current limliting
- configuration file
- request
- current
- user
- 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 24
- 238000009434 installation Methods 0.000 claims abstract description 8
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 4
- 230000003442 weekly effect Effects 0.000 claims abstract description 4
- 238000010586 diagram Methods 0.000 description 2
- 241000522213 Dichilus lebeckioides Species 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
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/21—Flow control; Congestion control using leaky-bucket
Abstract
本发明为一种应用于电信运营商电子渠道的软件系统访问限流方法,包括以下步骤:一:安装运行环境:安装openresty,为在nginx上运行lua脚本提供运行环境;二:在服务器中创建限流配置文件:所述限流配置文件配置项包含拦截开关,拦截地址,开始结束日期,开始结束时间,每周几拦截,正常流出速率,最大处理量;三:在nginx配置文件的location配置lua限流脚本路径;四:当用户发出请求时,限流lua脚本读取配置文件,如配置了限流,则判断条件时,使用漏桶算法,判断请求是否达到应用系统的最大处理量,从而判断桶内剩余请求是否达到正常流出速率,如果没有,则直接将用户请求转到应用层处理。采用本方法能够降低应用服务器压力,不用担心瞬间流量导致系统挂掉或雪崩。
Description
技术领域
本发明属于电信运营商电子渠道与互联网安全风险防控领域,涉及在应用层之上对并发请求数量控制,并可根据配置控制到接口级别,具体为一种应用于电信运营商电子渠道的软件系统访问限流方法。
背景技术
在移动互联网应用系统中,在开发系统时通常有三种方法来用来保护系统即:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购),因此需有一种手段来限制这些场景的并发 / 请求量,即限流。一般常用的限流采用应用层处理,使用计数累加,令牌桶等方式进行,但这些方式请求已到应用层面,如遇到类似DDOS之类的大并发情况,应用层压力增加,并且经常与业务逻辑耦合,还是会引起服务器压力过大导致服务宕机。
在此情况下,需要采取更有效的限流方法从而来解决应用层的压力,并且能与业务解耦。
发明内容
1、所要解决的技术问题:
本发明提供一种应用于电信运营商电子渠道的软件系统访问限流方法,本方法是在请求到达应用层之前就要根据情况进行拦截或排队,并且可根据需要在时间和粒度上进行拦截控制,从而解决应用层压力,并与业务解耦,可以动态扩展。
2、技术方案:
一种应用于电信运营商电子渠道的软件系统访问限流方法,其特征在于包括以下步骤:
步骤一:安装运行环境:安装openresty,为在nginx上运行lua脚本提供运行环境;
步骤二:在服务器中创建限流配置文件:所述限流配置文件配置项包含拦截开关,拦截地址,开始结束日期,开始结束时间,每周几拦截,正常流出速率,最大处理量;
步骤三:在nginx配置文件的location配置lua限流脚本路径;
步骤四:当用户发出请求时,限流lua脚本读取配置文件,判断用户的请求是否配置了全局限流或当前请求是否配置了限流;如配置了限流,则判断是否在限制时间内;达到限流条件时,使用漏桶算法,判断请求是否达到应用系统的最大处理量,如果有则直接拒绝请求;如果没有,则判断桶内剩余请求是否达到正常流出速率,如果没有,则直接将用户请求转到应用层处理;如果达到正常流出速率则将该用户请求放入待处理的队列中,延迟处理;所述延迟处理采用FIFO模式,延迟时间结束,则进行处理。
进一步地,步骤二中限流配置文件还包括设置限流文件存储到网络附属存储NAS进行统一访问地址、统一分发地址,保证各个nginx读取的配置一致性。
3、有益效果:
(1)在本方法中采用对用户的请求在到达应用层之前就根据预设的条件进行限流,从而能够降低应用服务器压力,不用担心瞬间流量导致系统挂掉或雪崩。
(2)本方法可以根据具体业务开展时间以及热度动态调整限流阀值,如遇到针对性的恶意访问,识别出来后,可以直接拦截,从而保证正常用户的访问。
附图说明
图1为本发明的流程框图;
图2为本发明中采用的漏桶原理的原理图。
具体实施方式
下面结合附图对本发明进行说明。如图1所示为本发明的流程图,在图中也可以看出本方法的涉及到的软件是本方法涉及到的软件是在nginx上的lua脚本运行环境 。一种基于速率控制的软件系统访问限流方法,包括以下步骤:
步骤一:安装运行环境:安装openresty,为在nginx上运行lua脚本提供运行环境;
步骤二:在服务器中创建限流配置文件:所述限流配置文件配置项包含拦截开关,拦截地址,开始结束日期,开始结束时间,每周几拦截,正常流出速率,最大处理量;
步骤三:在nginx配置文件的location配置lua限流脚本路径;
步骤四:当用户发出请求时,限流lua脚本读取配置文件,判断用户的请求是否配置了全局限流或当前请求是否配置了限流;如配置了限流,则判断是否在限制时间内;达到限流条件时,如图2所示使用漏桶算法,判断请求是否达到应用系统的最大处理量,如果有则直接拒绝请求;如果没有,则判断桶内剩余请求是否达到正常流出速率,如果没有,则直接将用户请求转到应用层处理;如果达到正常流出速率则将该用户请求放入待处理的队列中,延迟处理;所述延迟处理采用FIFO模式,延迟时间结束,则进行处理。
进一步地,步骤二中限流配置文件还包括设置限流文件存储到网络附属存储NAS进行统一访问地址、统一分发地址,保证各个nginx读取的配置一致性。
如图1所示,当用户提出请求(Request),请求导入Nginx后对请求进行识别。通过预设的限流条件识别用户的请求是否为限流,如果限流(Block),则该请求重新进行申请;如果不是限流(Block),则进行正常的业务办理。
虽然本发明已以较佳实施例公开如上,但它们并不是用来限定本发明的,任何熟习此技艺者,在不脱离本发明之精神和范围内,自当可作各种变化或润饰,因此本发明的保护范围应当以本申请的权利要求保护范围所界定的为准。
Claims (2)
1.一种应用于电信运营商电子渠道的软件系统访问限流方法,其特征在于包括以下步骤:
步骤一:安装运行环境:安装openresty,为在nginx上运行lua脚本提供运行环境;
步骤二:在服务器中创建限流配置文件:所述限流配置文件配置项包含拦截开关,拦截地址,开始结束日期,开始结束时间,每周几拦截,正常流出速率,最大处理量;
步骤三:在nginx配置文件的location配置lua限流脚本路径;
步骤四:当用户发出请求时,限流lua脚本读取配置文件,判断用户的请求是否配置了全局限流或当前请求是否配置了限流;如配置了限流,则判断是否在限制时间内;达到限流条件时,使用漏桶算法,判断请求是否达到应用系统的最大处理量,如果有则直接拒绝请求;如果没有,则判断桶内剩余请求是否达到正常流出速率,如果没有,则直接将用户请求转到应用层处理;如果达到正常流出速率则将该用户请求放入待处理的队列中,延迟处理;所述延迟处理采用FIFO模式,延迟时间结束,则进行处理。
2.根据权利要求1所述的一种应用于电信运营商电子渠道的软件系统访问限流方法,其特征在于:步骤二中限流配置文件还包括设置限流文件存储到网络附属存储NAS进行统一访问地址、统一分发地址,保证各个nginx读取的配置一致性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711399795.8A CN109962860A (zh) | 2017-12-22 | 2017-12-22 | 一种应用于电信运营商电子渠道的软件系统访问限流方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711399795.8A CN109962860A (zh) | 2017-12-22 | 2017-12-22 | 一种应用于电信运营商电子渠道的软件系统访问限流方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109962860A true CN109962860A (zh) | 2019-07-02 |
Family
ID=67018760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711399795.8A Pending CN109962860A (zh) | 2017-12-22 | 2017-12-22 | 一种应用于电信运营商电子渠道的软件系统访问限流方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109962860A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286693A (zh) * | 2020-11-24 | 2021-01-29 | 上海浦东发展银行股份有限公司 | 一种高并发场景下抢购活动的精细化限流处理方法、装置 |
CN113596050A (zh) * | 2021-08-04 | 2021-11-02 | 四川英得赛克科技有限公司 | 异常流量的分离过滤方法、系统、存储介质及电子设备 |
CN114553784A (zh) * | 2022-01-25 | 2022-05-27 | 阿里巴巴(中国)有限公司 | 限流处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1536815A (zh) * | 2003-04-03 | 2004-10-13 | 华为技术有限公司 | 采用令牌漏桶进行报文限流的方法 |
US20100118704A1 (en) * | 2006-10-09 | 2010-05-13 | Gergely Pongracz | Method and Apparatus for use in a communications network |
CN104767689A (zh) * | 2014-01-07 | 2015-07-08 | 腾讯科技(深圳)有限公司 | 控制网络访问接入量的方法及服务器 |
CN107220878A (zh) * | 2017-05-26 | 2017-09-29 | 努比亚技术有限公司 | 业务处理系统、秒杀订单处理方法和设备 |
-
2017
- 2017-12-22 CN CN201711399795.8A patent/CN109962860A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1536815A (zh) * | 2003-04-03 | 2004-10-13 | 华为技术有限公司 | 采用令牌漏桶进行报文限流的方法 |
US20100118704A1 (en) * | 2006-10-09 | 2010-05-13 | Gergely Pongracz | Method and Apparatus for use in a communications network |
CN104767689A (zh) * | 2014-01-07 | 2015-07-08 | 腾讯科技(深圳)有限公司 | 控制网络访问接入量的方法及服务器 |
CN107220878A (zh) * | 2017-05-26 | 2017-09-29 | 努比亚技术有限公司 | 业务处理系统、秒杀订单处理方法和设备 |
Non-Patent Citations (1)
Title |
---|
傻仔刚普拉: "系统限流实践——接入层限流", 《HTTPS://BLOG.CSDN.NET/LZW_2006/ARTICLE/DETAIL/51909516》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286693A (zh) * | 2020-11-24 | 2021-01-29 | 上海浦东发展银行股份有限公司 | 一种高并发场景下抢购活动的精细化限流处理方法、装置 |
CN112286693B (zh) * | 2020-11-24 | 2022-03-29 | 上海浦东发展银行股份有限公司 | 一种高并发场景下抢购活动的精细化限流处理方法、装置 |
CN113596050A (zh) * | 2021-08-04 | 2021-11-02 | 四川英得赛克科技有限公司 | 异常流量的分离过滤方法、系统、存储介质及电子设备 |
CN114553784A (zh) * | 2022-01-25 | 2022-05-27 | 阿里巴巴(中国)有限公司 | 限流处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2014244137B2 (en) | Internet protocol threat prevention | |
KR100862187B1 (ko) | 취약점 분석 및 공격방식 모델링을 이용한 네트워크기반의인터넷 웜 탐지 장치 및 그 방법 | |
EP2860657B1 (en) | Determining a security status of potentially malicious files | |
CN109962860A (zh) | 一种应用于电信运营商电子渠道的软件系统访问限流方法 | |
US9462011B2 (en) | Determining trustworthiness of API requests based on source computer applications' responses to attack messages | |
CN113726789B (zh) | 一种敏感数据拦截方法和装置 | |
EP3987728B1 (en) | Dynamically controlling access to linked content in electronic communications | |
CN105447385B (zh) | 一种多层次检测的应用型数据库蜜罐实现系统及方法 | |
CN108183884B (zh) | 一种网络攻击判定方法及装置 | |
CN112434304A (zh) | 防御网络攻击的方法、服务器及计算机可读存储介质 | |
KR102559568B1 (ko) | 사물인터넷 인프라 환경에서의 보안통제 장치 및 방법 | |
CN111371697A (zh) | 面向系统间访问的精确流量控制方法及装置 | |
KR101657180B1 (ko) | 프로세스 접근 제어 시스템 및 방법 | |
EP3062274B1 (en) | Method for checking compliance of payment application in virtualized environment | |
US20200218832A1 (en) | Automatic Initiation of Execution Analysis | |
US11489865B2 (en) | Control device, communication system, control method, and computer program | |
KR20200113836A (ko) | 보안 통제 장치 및 방법 | |
CN113285952B (zh) | 网络漏洞封堵方法、装置、存储介质及处理器 | |
CN113821410A (zh) | 一种日志处理方法和装置 | |
CN114726579A (zh) | 防御网络攻击的方法、装置、设备、存储介质及程序产品 | |
KR102046612B1 (ko) | Sdn 기반의 dns 증폭 공격 방어시스템 및 그 방법 | |
CN113596060A (zh) | 一种网络安全应急响应方法及系统 | |
CN113783850A (zh) | 一种网络防护方法、装置、设备及机器可读存储介质 | |
CN107026863B (zh) | 一种移动终端网络隔离方法及系统 | |
Li et al. | An Improved Token Bucket Algorithm for Service Gateway Traffic Limiting |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190702 |
|
RJ01 | Rejection of invention patent application after publication |