Sentinel 控制台(集群流控管理)
规则配置
要通过 Sentinel 控制台配置集群流控规则,需要对控制台进行改造。我们提供了相应的接口进行适配。
从 Sentinel 1.4.0 开始,我们抽取出了接口用于向远程配置中心推送规则以及拉取规则:
DynamicRuleProvider<T>: 拉取规则DynamicRulePublisher<T>: 推送规则
对于集群限流的场景,由于每个集群限流规则都需要唯一的 flowId,因此我们建议所有的规则配置都通过动态规则源进行管理,并在统一的地方生成集群限流规则。
我们提供了新版的流控规则页面,可以针对应用维度推送规则,对于集群限流规则可以自动生成 flowId。用户只需实现DynamicRuleProvider和DynamicRulePublisher接口,即可实现应用维度推送(URL:/v2/flow)。
注:应用维度推送流控规则页面的默认实现仅仅是对旧版 API 的兼容(批量推送有效的机器/拉取最近有效的机器的规则),对集群规则无效。生产环境下不推荐使用默认实现,建议对接动态规则源。
我们提供了 Nacos、ZooKeeper 和 Apollo 的推送和拉取规则实现示例(位于test目录下)。以 Nacos 为例,若希望使用 Nacos 作为动态规则配置中心,用户可以提取出相关的类,然后只需在FlowControllerV2中指定对应的 bean 即可开启 Nacos 适配。前端页面需要手动切换,或者修改前端路由配置(sidebar.html流控规则路由从dashboard.flowV1改成dashboard.flow即可,注意簇点链路页面对话框需要自行改造)。
@Autowired@Qualifier("flowRuleNacosProvider")privateDynamicRuleProvider<List<FlowRuleEntity>>ruleProvider;@Autowired@Qualifier("flowRuleNacosPublisher")privateDynamicRulePublisher<List<FlowRuleEntity>>rulePublisher;默认 Nacos 适配的 dataId 和 groupId 约定如下:
- groupId:
SENTINEL_GROUP - 流控规则 dataId:
{appName}-flow-rules,比如应用名为 appA,则 dataId 为appA-flow-rules
用户可以在NacosConfigUtil修改对应的 groupId 和 dataId postfix。用户可以在NacosConfig配置对应的Converter,默认已提供FlowRuleEntity的 decoder 和 encoder。
注意:接入端也需要注册对应的动态规则源,参考 集群流控规则配置文档。
集群流控管理
注:客户端必须引入集群限流相关依赖(比如需要使用集群限流,则需要引入集群限流 client 依赖;若需要作为嵌入式的集群限流服务端,则还需要引入集群限流 server 依赖),否则无法进行配置。
Sentinel 1.4.1 版本的控制台引入了应用维度的集群流控管理页面,可以方便地从应用维度分配 token server、查看相关状态。我们可以在侧边栏点击“集群流控”,进入 Token Server 列表页面,可以查看当前应用下所有的 token server 列表及相关状态:
我们可以点击右上角的“添加 Token Server”按钮来添加新的 token server 并分配 client:
Token Client 列表
- Sentinel 官方网站
- OpenSergo 微服务治理
- 文档
- Read Me
- 新手指南
- Sentinel 介绍
- FAQ
- Roadmap
- 如何使用
- 工作原理
- 流量控制
- 集群流控(分布式流控)
- 网关流控
- 熔断降级
- 热点参数限流
- 系统自适应限流
- 黑白名单控制
- 实时监控数据
- 动态规则
- 控制台
- 生产环境使用 Sentinel
- 阿里云企业版 Sentinel
- OpenSergo 控制面
- 启动配置项
- 注解埋点支持
- 主流框架适配
- Envoy 集群流量控制
- 多语言生态
- 开源贡献指南
- 阿里云 微服务解决方案
- Release Notes
- Related Blog
- Awesome Sentinel
- 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
https://github.com/alibaba/Sentinel/wiki/Sentinel-%E6%8E%A7%E5%88%B6%E5%8F%B0%EF%BC%88%E9%9B%86%E7%BE%A4%E6%B5%81%E6%8E%A7%E7%AE%A1%E7%90%86%EF%BC%89#%E8%A7%84%E5%88%99%E9%85%8D%E7%BD%AE