-
Notifications
You must be signed in to change notification settings - Fork 8k
AHAS Sentinel 集群限流控制台示例
注意:AHAS Sentinel 目前已全面支持 全自动托管的集群流控,手动分配版本的集群流控功能已下线,本文不再作为参考。
集群限流 是保障服务稳定性的利器,然而使用 Sentinel 集群限流需要对动态数据源进行相关配置,增加了使用成本。为了大家更好地理解集群流控的使用,我们提供了云上版本的 Sentinel 集群限流控制台示例。只需要简单的几步即可快速接入 AHAS Sentinel 集群限流控制台,无需手动配置动态数据源。
我们只需要在 Maven 中引入以下依赖:
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>ahas-sentinel-client</artifactId>
<version>1.5.5</version>
</dependency>
ahas-sentinel-client
中会包含 sentinel-core
以及集群限流等必要依赖,以及连接 AHAS Sentinel 控制台所需模块(鉴权、通信、动态数据源等)。
若之前接入了开源 Sentinel 控制台,则需要将所有开源依赖去掉,替换成此依赖。若希望从 AHAS Sentinel 控制台切换到开源 Sentinel 控制台,只需要将依赖替换回来,修改一下启动参数即可。
引入依赖后,我们需要到 阿里云控制台 开通 AHAS 功能(不收费)。可以根据 开通 AHAS 文档 和 流控降级 Demo 快速入门 里面的指引进行开通。注意若应用运行在非阿里云 ECS 环境或本地,需要在左上角选择切换 公网 环境。
开通后我们可以点击左侧侧边栏的 流控降级,进入 Sentinel 控制台应用总览页面。在页面右上角,单击 应用接入,选择 Java SDK 接入页签,到 配置启动参数 页签拿到需要的启动参数(详情请参考 SDK 接入文档),类似于:
-Dproject.name=AppName -Dahas.license=<License>
其中 project.name
代表应用名(会显示在控制台),ahas.license
代表自己的授权 license。
注意:若应用运行在非阿里云 ECS 环境或本地,需要在左上角切换到 公网 环境。
详细接入步骤可以参考 AHAS Sentinel 控制台文档。
接下来我们就可以在本地启动应用了,启动应用时需要加上拿到的启动参数。若要在本地体验集群限流功能,需要在本机启动多个应用实例,并额外添加 -Dcsp.sentinel.log.use.pid=true
参数。启动之后,我们就可以在对应应用的机器列表页面看到接入的机器了:
注:本示例中 Token Server 模式为嵌入模式。最新版本 AHAS Sentinel 已全面替代为全自动托管的 token server,无需手动分配管控与运维弹性。
我们需要通过特定的 URL 来进入 AHAS 集群流控 Demo 页面(链接已失效,请使用新版集群流控)。
我们可以点击右上角的 新增 Token Server 按钮来新增 Token Server 并执行分配:
我们首先需要在新增 Token Server 对话框内选择一台 Token Server,并配置该 Token Server 的端口以及最大的 QPS 配额(用于限制资源使用,防止嵌入模式下影响应用本身)。接下来我们就在下面的选择框中为该 Token Server 分配 Token Client。选择完成后点击“保存”按钮保存分配。
保存成功后,我们就能在 Token Server 列表页面看到刚刚分配的 Token Server 了:
点击左侧的下拉按钮,可以看到该 Token Server 和所管理的 Token Client 的实时信息:
接下来我们去流控规则页面给我们的应用配置流控规则。先对某个资源配置非集群规则,QPS 阈值设置为 10:
然后持续请求两台机器,可以在监控页面看到总 QPS 为 20(每个单机 QPS 各为 10):
接下来我们编辑刚才新建的规则,打开集群模式,阈值模式选择“总体阈值”,保存规则:
等待一段时间,可以在监控页面看到资源的总 QPS 被限到了 10:
有关 Sentinel 集群流控的更多特性和用法,可以参考 Sentinel 集群流控文档。我们同时提供了嵌入模式下应用配置集群流控配置源的 Demo,可以参考:sentinel-demo-cluster-embedded。
-
文档
-
Documents
- Read Me
- Introduction
- How to Use
- How it Works
- Flow Control
- Parameter Flow Control
- Cluster Flow Control
- API Gateway Flow Control
- Circuit Breaking
- Adaptive System Protection
- Metrics
- General Configuration
- Dynamic Rule Configuration
- Dashboard
- Integrations with open-source frameworks
- Contribution Guideline