集群限流场景
场景一
假设我们要调用阿里的某个API,但是该API每秒QPS限制为50次,假设集群中存在多台机器同时调用该API的情况,如何控制整个集群中该API调用次数在50以内,避免接口报错
场景二
假设开发的系统需要提供http接口给第三方调用,为了防止第三方恶意调用接口爬取数据,我们需要限制http接口请求QPS为50
两个场景都是基于接口资源层面的限流,本文介绍Sentinel结合Ahas云上控制台实现的集群流控功能
Maven依赖
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>ahas-sentinel-client</artifactId>
<version>1.2.1</version>
</dependency>
注意:ahas-sentinel-client 1.2.x 仅兼容 Sentinel 1.5.0 及以上版本;ahas-sentinel-client 1.1.x 仅兼容 Sentinel 1.4.1 和 1.4.2 版本。
ahas-sentinel-client 中会包含 sentinel-core 以及集群限流等必要依赖(基于 Sentinel 1.5.1 版本),以及连接 AHAS Sentinel 控制台所需模块(鉴权、通信、动态数据源等),下面基于ahas-sentinel-client 1.1.2版本做介绍
阿里云开通AHAS
开通AHAS
操作步骤如下
- 打开 AHAS 产品主页
- 在页面右上角单击登录
- 在页面上输入您的阿里云账号和密码,并单击登录
- 在产品主页上单击申请免费开通,然后在云产品开通页页面上勾选我已阅读并同意《应用高可用服务服务协议》,并单击立即开通
注意若应用运行在非阿里云 ECS 环境或本地,需要在左上角选择切换公网环境
接入新应用,获取启动参数
点击控制台左侧应用流控,进入流控界面
点击应用接入后拿到启