CN112560014A - 一种设置开放时间和限制请求次数的服务开放控制方案 - Google Patents
一种设置开放时间和限制请求次数的服务开放控制方案 Download PDFInfo
- Publication number
- CN112560014A CN112560014A CN202110000863.9A CN202110000863A CN112560014A CN 112560014 A CN112560014 A CN 112560014A CN 202110000863 A CN202110000863 A CN 202110000863A CN 112560014 A CN112560014 A CN 112560014A
- Authority
- CN
- China
- Prior art keywords
- service
- time
- access
- limiting
- setting
- 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.)
- Withdrawn
Links
Images
Classifications
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种设置开放时间和限制请求次数的服务开放控制方案,以控制调用者使用服务的时间段和频率,实现步骤为:在服务鉴权之后,到达服务处理器之前,引入自定义的控制开放时间限流器及限制访问次数限流器;设置服务的开放时间;设置服务的限制请求次数;在调用方请求访问服务时,传入授权凭证和服务标识,进行鉴权;判断当前访问时间是否在服务的开放时间段内;根据服务标识或服务标识和授权凭证获得一个身份KEY;根据获得的KEY获取该服务在内存或redis中缓存的限流对象,判断本次访问是否将超出设定的限定次数,如果将超出上限,则请求失败,如果未超出,则允许访问服务。本发明通过提供一种设置开放时间和限制请求次数的服务开放控制方案,对服务进行流量控制,促进按规划部署服务,保证服务正常平稳的使用,可节约大量的开发成本和运维成本,高效统一规范化管理,大大提升软件的开发效率和应用的可靠性。
Description
技术领域
本发明涉及服务访问限制的技术领域,尤其指在服务开放时,通过设置开放时间和限制请求次数的控制策略,以控制调用者使用服务的时间段和频率,降低服务宕机的风险,减少维护成本。
背景技术
在软件开发项目中,常涉及服务调用。对于服务的提供方,在提供服务时会对服务调用方使用服务的时间有要求,如控制其使用服务的访问时间。
在服务调用环节中,通常提供方希望服务在每日工作时段提供,或是在指定日期才可调用服务。此举主要为保障服务的安全性和性能,于统一管理服务机制而言,起到了至关重要的作用。
在提供服务时,提供方也关心另外一个问题,则是服务运行时,需要顶住多大的压力,需要保证多少并发量,以及使用多少台服务器才可保证服务正常运行。而往往我们在提供服务时,无法提前准确预测调用方调用服务的频率。如此则无法及时把控需要提供多少台机器,往往需要在服务监控***告警的时候才得知,所产生的严重滞后,不便于高效安全管理,且当问题集中紧急性爆发时,将耗费较多的时间和人力承担运维工作,影响服务的正常运行。
上述问题亟需引入统一控制管理的方法,通过进一步优化服务调用过程的相关措施予以解决。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于,提供一种设置开放时间和限制请求次数的服务开放控制方案,保证服务的安全性及可控性。
为达到以上目的,本发明采取的技术方案是:
采用限流器的方式,将限流器放置在服务通过服务鉴权之后,到达服务处理器之前的位置,以控制开放时间和限制访问次数。
本发明提出的一种设置开放时间和限制请求次数的服务开放控制方案,包括有以下步骤:
步骤A1.在服务鉴权之后,到达服务处理器之前,引入自定义的控制开放时间限流器及限制访问次数限流器;
步骤A2.在发布服务时,开启控制开放时间限流器,设置服务的开放时间,支持按照时间段和日期段限制服务的开放时间;
步骤A3.在发布服务时,开启限制访问次数限流器,设置服务的限制请求次数,支持分别从服务和调用方的维度进行限制,用户可按照项目需求选择其中一个维度;
步骤A4.在调用方请求访问服务时,传入授权凭证和服务标识,进行鉴权,判断授权凭证和服务标识是否与所请求服务相匹配,并且服务正常,则通过鉴权,否则请求失败;
步骤A5.服务通过鉴权后,服务调用方的服务请求进入限制开放时间限流器环节,此时限制开放时间限流器进行判断当前时间是否在步骤A2设置的开放时间段内,如在开放时段内,进入下一个步骤,否则请求失败;
步骤A6.服务请求进入限制访问次数限流器环节,此时限流器根据步骤A3设置的限制范围进行判断,如果在步骤A3中设置的是以服务的维度进行限制,则根据服务标识获得一个身份秘钥KEY,如果设置的是以调用方的维度进行限制,则根据授权凭证和服务标志获得一个身份KEY;
步骤A7.调用方根据获得的KEY获取该服务在内存或redis中缓存的限流对象,判断本次访问是否将超出设定的限定次数,如果将超出上限,则请求失败,如果未超出,则允许访问服务,并记录本次访问,将该服务或调用方的累计访问次数加1。此时,服务调用方完成本次整个服务调用流程。
在步骤A1.中,所述自定义的控制开放时间限流器是基于java语言实现的能够用于限定调用方在访问时间段内才能访问服务的功能组件。
在步骤A1.中,所述自定义的限制访问次数限流器用于限制服务的请求次数,实现方式包括2类,一类是针对单节点模式,基于guava重写限流类方法,将限流的单位时间范围扩大到每秒、每分钟、每小时及每天的粒度,将限流对象存入内存中,用缓存的方式限时保存限流对象,以得到服务的累计访问次数,并判断是否超出设定的限定次数;另一类是针对多节点集群模式,基于redis缓存限流对象以得到服务的累计访问次数,并判断是否超出设定的次数。
在步骤A2中,所述时间段的时间单位精确到秒,日期段精确到天。
在步骤A3中,所述设置限制请求次数,支持设置单位时间内的访问次数,时间单位可以设置秒、分钟、小时和天。
在步骤A3中,从服务维度进行限制,限制的数据是针对服务;从调用方的维度限制,则限制的是同一个调用方调用该服务的单位次数;即服务的单位可提供请求次数限制和调用方单位时间内发起请求次数限制。
进一步,所述限流对象是指用于计算累计访问次数的对象,包括三个参数:KEY、开放时间、限制次数;针对从服务维度进行限流的情况,每个调用方每访问一次服务,访问次数的值加1;针对从调用方的维度进行限流的情况,调用方每访问一次服务,该调用方对应的访问次数值加1。
进一步,所述KEY为调用方通过鉴权和限流维度判断后可获取的身份识别密钥,在进行限流维度判断时,如果调用方所申请服务的限流设置是以服务的维度,则KEY由服务标识加密生成,如果是以调用方的维度进行限流,则KEY由授权凭证和服务标识共同加密生成。
在步骤A4中,所述授权凭证和服务标识是指调用方经申请调用服务在审批通过后获取的与所申请服务相匹配的访问凭证和服务标记。
在上述方案的基础上,设置开放时间和限制请求次数支持同时设置使用或单独设置使用,保证多种维度覆盖各类需求。在两种策略并行的情况下,开放时间限流优先级较高,只有保证服务处于开放时间,才可确认单位时间内的流量是否已经被使用完。
本发明所述的一种设置开放时间和限制请求次数的服务开放控制方案,其有益效果在于:对服务进行流量控制,限制单位时间内服务的请求量,可按业务规划部署服务,根据***可承载的流量瓶颈调整参数设置,保证服务正常平稳的使用,减少维护成本;限制开放时间和限制请求次数,支持两个功能单独或同时使用,应用灵活,保证服务在可控状态下运行,无需人工监控处理,可节约大量的开发成本和运维成本,大大提升软件开发的效率和应用的可靠性。
附图说明
为了更清楚地说明本发明的技术方案,附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并不构成对本发明的限制。对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述的一种设置开放时间和限制请求次数的服务开放控制方案的流程图。
图2为单节点模式下的限流控制示意图。
图3为集群模式下的限流控制示意图。
具体实施方式
以下结合附图对本发明作进一步详细说明。所述详细说明,为结合本发明的示范性实施例做出的说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本实施例中公开了一种设置开放时间和限制请求次数的服务开放控制方案,以控制调用者使用服务的时间段和频率,降低服务宕机的风险,减少维护成本。
如附图1所示,在本实施例中,一种设置开放时间和限制请求次数的服务开放控制方案,包括以下步骤:
步骤A1.在服务鉴权之后,到达服务处理器之前,引入自定义的控制开放时间限流器及限制访问次数限流器;
步骤A2.在发布服务时,开启控制开放时间限流器,设置服务的开放时间,支持按照时间段和日期段限制服务的开放时间;
步骤A3.在发布服务时,开启限制访问次数限流器,设置服务的限制请求次数,支持分别从服务和调用方的维度进行限制,用户可按照项目需求选择其中一个维度;
步骤A4.在调用方请求访问服务时,传入授权凭证和服务标识,进行鉴权,判断授权凭证和服务标识是否与所请求服务相匹配,并且服务正常,则通过鉴权,否则请求失败;
步骤A5.服务通过鉴权后,服务调用方的服务请求进入限制开放时间限流器环节,此时限制开放时间限流器进行判断当前时间是否在步骤A2设置的开放时间段内,如在开放时段内,进入下一个步骤,否则请求失败;
步骤A6.服务请求进入限制访问次数限流器环节,此时限流器根据步骤A3设置的限制范围进行判断,如果在步骤A3中设置的是以服务的维度进行限制,则根据服务标识获得一个身份秘钥KEY,如果设置的是以调用方的维度进行限制,则根据授权凭证和服务标志获得一个身份KEY;
步骤A7.调用方根据获得的KEY获取该服务在内存或redis中缓存的限流对象,判断本次访问是否将超出设定的限定次数,如果将超出上限,则请求失败,如果未超出,则允许访问服务,并记录本次访问,将该服务或调用方的累计访问次数加1。此时,服务调用方完成本次整个服务调用流程。
为了便于理解,例如单节点模式下,设置合同管理***服务的开放时间为2020年10月20日至2020年12月20日,限制每10分钟最多只能访问10次,调用方在申请访问合同管理***的服务时获得了该服务的授权凭证和服务标识,授权凭证信息包含:
1、凭证名称:合同管理***服务访问凭证;
2、接入***名称:合同管理***;
3、凭证描述:用于申请访问合同管理***服务的凭证;
4、当前AcessKey:f53ca3ee26fd48ae9d64e835460bd96d;
5、当前SecretKey:2fb7df143c95454d980692a9e053d148;
6、新SecretKey:无;
7、创建时间:2018-04-08 14:09:03。
服务标识为:HTGLXT
那么调用方在2020年10月29日调用合同管理***服务时,首先传入上述授权凭证及服务标识,如果对应的服务正常,授权凭证和服务标识匹配成功,则鉴权成功。当前时间2020年10月29日在该服务允许访问的时间范围内,故时间上允许访问。由于该服务是以服务的维度进行限制,该调用方根据服务标识HTGLXT获得一个加密后的身份秘钥KEY(例如Key值为f14333g754d9);调用方通过获得的KEY访问内存中该服务对应的限流对象,得到该服务在最近10分钟内的累计访问次数为6次,故允许调用方进行访问。此时限流对象的三个参数分别为:
KEY:f14333g754d9
开放时间:2020年10月20日至2020年12月20日
限制次数:每10分钟最多只能访问10次
如附图2所示,在本实施例中,针对单节点模式,调用方调用服务时,限流器将限流对象存入内存中,用缓存的方式限时保存限流对象,以得到服务的累计访问次数,并判断是否超出设定的限定次数;
如附图3所示,在本实施例中,针对多节点集群模式,调用方调用服务时,限流器将限流对象存入redis中,以得到服务的累计访问次数,并判断是否超出设定的次数。
综上所述,本实施例的处理方法有效地解决服务调用时,开放时间和限制请求次数不可控导致的一系列高风险和高成本问题,保证了服务的安全和稳定性。
Claims (10)
1.一种设置开放时间和限制请求次数的服务开放控制方案,其特征在于,采用限流器的方式,将限流器放置在服务通过服务鉴权之后,到达服务处理器之前的位置,以控制开放时间和限制访问次数;包括有以下步骤:
步骤A1.在服务鉴权之后,到达服务处理器之前,引入自定义的控制开放时间限流器及限制访问次数限流器;
步骤A2.在发布服务时,开启控制开放时间限流器,设置服务的开放时间,支持按照时间段和日期段限制服务的开放时间;
步骤A3.在发布服务时,开启限制访问次数限流器,设置服务的限制请求次数,支持分别从服务和调用方的维度进行限制,用户可按照项目需求选择其中一个维度;
步骤A4.在调用方请求访问服务时,传入授权凭证和服务标识,进行鉴权,判断授权凭证和服务标识是否与所请求服务相匹配,并且服务正常,则通过鉴权,否则请求失败;
步骤A5.服务通过鉴权后,服务调用方的服务请求进入限制开放时间限流器环节,此时限制开放时间限流器进行判断当前时间是否在步骤A2设置的开放时间段内,如在开放时段内,进入下一个步骤,否则请求失败;
步骤A6.服务请求进入限制访问次数限流器环节,此时限流器根据步骤A3设置的限制范围进行判断,如果在步骤A3中设置的是以服务的维度进行限制,则根据服务标识获得一个身份秘钥KEY,如果设置的是以调用方的维度进行限制,则根据授权凭证和服务标志获得一个身份KEY;
步骤A7.调用方根据获得的KEY获取该服务在内存或redis中缓存的限流对象,判断本次访问是否将超出设定的限定次数,如果将超出上限,则请求失败,如果未超出,则允许访问服务,并记录本次访问,将该服务或调用方的累计访问次数加1;此时,服务调用方完成本次整个服务调用流程。
2.如权利要求1所述的基于设置开放时间和限制请求次数的服务开放控制方案,其特征在于,所述自定义的控制开放时间限流器是基于java语言实现的能够用于限定调用方在访问时间段内才能访问服务的功能组件。
3.如权利要求1所述的基于设置开放时间和限制请求次数的服务开放控制方案,其特征在于,所述自定义的限制访问次数限流器用于限制服务的请求次数,实现方式包括2类,一类是针对单节点模式,基于guava重写限流类方法,将限流的单位时间范围扩大到每秒、每分钟、每小时及每天的粒度,将限流对象存入内存中,用缓存的方式限时保存限流对象,以得到服务的累计访问次数,并判断是否超出设定的限定次数;另一类是针对多节点集群模式,基于redis缓存限流对象以得到服务的累计访问次数,并判断是否超出设定的次数。
4.如权利要求1所述的基于设置开放时间和限制请求次数的服务开放控制方案,其特征在于,所述时间段的时间单位精确到秒,日期段精确到天。
5.如权利要求1所述的基于设置开放时间和限制请求次数的服务开放控制方案,其特征在于,所述设置限制请求次数,支持设置单位时间内的访问次数,时间单位可以设置秒、分钟、小时和天。
6.如权利要求1所述的基于设置开放时间和限制请求次数的服务开放控制方案,其特征在于,从服务维度进行限制,限制的数据是针对服务;从调用方的维度限制,则限制的是同一个调用方调用该服务的单位次数;即服务的单位可提供请求次数限制和调用方单位时间内发起请求次数限制。
7.如权利要求1所述的基于设置开放时间和限制请求次数的服务开放控制方案,其特征在于,所述限流对象是指用于计算累计访问次数的对象,包括三个参数:KEY、开放时间、限制次数;针对从服务维度进行限流的情况,每个调用方每访问一次服务,访问次数的值加1;针对从调用方的维度进行限流的情况,调用方每访问一次服务,该调用方对应的访问次数值加1。
8.如权利要求1所述的基于设置开放时间和限制请求次数的服务开放控制方案,其特征在于,所述KEY为调用方通过鉴权和限流维度判断后可获取的身份识别密钥,在进行限流维度判断时,如果调用方所申请服务的限流设置是以服务的维度,则KEY由服务标识加密生成,如果是以调用方的维度进行限流,则KEY由授权凭证和服务标识共同加密生成。
9.如权利要求1所述的基于设置开放时间和限制请求次数的服务开放控制方案,其特征在于,所述授权凭证和服务标识是指调用方经申请调用服务在审批通过后获取的与所申请服务相匹配的访问凭证和服务标记。
10.如权利要求1所述的基于设置开放时间和限制请求次数的服务开放控制方案,其特征在于,设置开放时间和限制请求次数支持同时设置使用或单独设置使用,保证多种维度覆盖各类需求;在两种策略并行的情况下,开放时间限流优先级较高,只有保证服务处于开放时间,才可确认单位时间内的流量是否已经被使用完。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110000863.9A CN112560014A (zh) | 2021-01-05 | 2021-01-05 | 一种设置开放时间和限制请求次数的服务开放控制方案 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110000863.9A CN112560014A (zh) | 2021-01-05 | 2021-01-05 | 一种设置开放时间和限制请求次数的服务开放控制方案 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112560014A true CN112560014A (zh) | 2021-03-26 |
Family
ID=75035143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110000863.9A Withdrawn CN112560014A (zh) | 2021-01-05 | 2021-01-05 | 一种设置开放时间和限制请求次数的服务开放控制方案 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112560014A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114430396A (zh) * | 2022-04-06 | 2022-05-03 | 中国光大银行股份有限公司 | 交易频率控制方法、装置、存储介质和电子设备 |
CN115208693A (zh) * | 2022-09-09 | 2022-10-18 | 中国电子科技集团公司第十五研究所 | 一种基于微服务的安全访问控制方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140331060A1 (en) * | 2013-05-03 | 2014-11-06 | Citrix Systems, Inc. | User and Device Authentication in Enterprise Systems |
CN107332861A (zh) * | 2017-08-11 | 2017-11-07 | 杭州亿方云网络科技有限公司 | 一种基于OAuth协议的开放平台架构*** |
CN110380986A (zh) * | 2019-07-23 | 2019-10-25 | 中南民族大学 | 基于Zuul的流量限制方法、装置、设备及存储介质 |
-
2021
- 2021-01-05 CN CN202110000863.9A patent/CN112560014A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140331060A1 (en) * | 2013-05-03 | 2014-11-06 | Citrix Systems, Inc. | User and Device Authentication in Enterprise Systems |
CN107332861A (zh) * | 2017-08-11 | 2017-11-07 | 杭州亿方云网络科技有限公司 | 一种基于OAuth协议的开放平台架构*** |
CN110380986A (zh) * | 2019-07-23 | 2019-10-25 | 中南民族大学 | 基于Zuul的流量限制方法、装置、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114430396A (zh) * | 2022-04-06 | 2022-05-03 | 中国光大银行股份有限公司 | 交易频率控制方法、装置、存储介质和电子设备 |
CN115208693A (zh) * | 2022-09-09 | 2022-10-18 | 中国电子科技集团公司第十五研究所 | 一种基于微服务的安全访问控制方法及装置 |
CN115208693B (zh) * | 2022-09-09 | 2022-12-20 | 中国电子科技集团公司第十五研究所 | 一种基于微服务的安全访问控制方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10846382B2 (en) | Authenticating users requesting access to computing resources | |
US20190068518A1 (en) | System and method for controlling access to web services resources | |
US10819701B2 (en) | Autonomous secrets management for a managed service identity | |
US9639678B2 (en) | Identity risk score generation and implementation | |
US8707422B2 (en) | Method and apparatus for process enforced configuration management | |
CN112560014A (zh) | 一种设置开放时间和限制请求次数的服务开放控制方案 | |
US10091182B2 (en) | System and method for pool-based identity authentication for service access without use of stored credentials | |
US10691790B2 (en) | Autonomous secrets management for a temporary shared access signature service | |
US20040260939A1 (en) | Communication device, control method of communication device, program and communication method | |
EP2856385B1 (en) | Managing distributed operating system physical resources | |
US10489145B2 (en) | Secure update of firmware and software | |
US20050010547A1 (en) | Method and apparatus for managing identity information on a network | |
WO2008099392A1 (en) | Methods and systems for solving problems with hard-coded credentials | |
JP2009087035A (ja) | 暗号クライアント装置、暗号パッケージ配信システム、暗号コンテナ配信システム、暗号管理サーバ装置、ソフトウェアモジュール管理装置、ソフトウェアモジュール管理プログラム | |
US10237252B2 (en) | Automatic creation and management of credentials in a distributed environment | |
CN110221949A (zh) | 自动化运维管理方法、装置、设备及可读存储介质 | |
CN110163003A (zh) | 一种密码管理方法及装置 | |
CN110049031A (zh) | 一种接口安全认证方法及服务器、认证中心服务器 | |
CN113806786A (zh) | 一种软件授权管理方法、***、设备及存储介质 | |
CN113852631A (zh) | 一种确定访问令牌的方法及装置 | |
CN110334499A (zh) | 接口权限管控方法、装置、计算机设备和存储介质 | |
CN112003852B (zh) | 资源访问控制方法、装置、设备及存储介质 | |
US20050033796A1 (en) | Online autonomic operations guide | |
CN114928537B (zh) | 网络设备配置方法、装置及存储介质 | |
CN115344366B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210326 |