当前位置: 首页 > news >正文

Sentinel 控制台(集群流控管理)

规则配置

要通过 Sentinel 控制台配置集群流控规则,需要对控制台进行改造。我们提供了相应的接口进行适配。

从 Sentinel 1.4.0 开始,我们抽取出了接口用于向远程配置中心推送规则以及拉取规则:

  • DynamicRuleProvider<T>: 拉取规则
  • DynamicRulePublisher<T>: 推送规则

对于集群限流的场景,由于每个集群限流规则都需要唯一的 flowId,因此我们建议所有的规则配置都通过动态规则源进行管理,并在统一的地方生成集群限流规则。

我们提供了新版的流控规则页面,可以针对应用维度推送规则,对于集群限流规则可以自动生成 flowId。用户只需实现 DynamicRuleProvider 和 DynamicRulePublisher 接口,即可实现应用维度推送(URL: /v2/flow)。

注:应用维度推送流控规则页面的默认实现仅仅是对旧版 API 的兼容(批量推送有效的机器/拉取最近有效的机器的规则),对集群规则无效。生产环境下不推荐使用默认实现,建议对接动态规则源。

flow-rule-v2

我们提供了 Nacos、ZooKeeper 和 Apollo 的推送和拉取规则实现示例(位于 test 目录下)。以 Nacos 为例,若希望使用 Nacos 作为动态规则配置中心,用户可以提取出相关的类,然后只需在 FlowControllerV2 中指定对应的 bean 即可开启 Nacos 适配。前端页面需要手动切换,或者修改前端路由配置(sidebar.html 流控规则路由从 dashboard.flowV1 改成 dashboard.flow 即可,注意簇点链路页面对话框需要自行改造)。

@Autowired
@Qualifier("flowRuleNacosProvider")
private DynamicRuleProvider<List<FlowRuleEntity>> ruleProvider;
@Autowired
@Qualifier("flowRuleNacosPublisher")
private DynamicRulePublisher<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 列表及相关状态:

image

我们可以点击右上角的“添加 Token Server”按钮来添加新的 token server 并分配 client:

image

Token Client 列表

 

http://www.lryc.cn/news/142423.html

相关文章:

  • PMP P-08 Communication Management
  • matlab中判断数据的奇偶性(mod函数、rem函数)
  • Redis使用
  • #systemverilog# 之 event region 和 timeslot 仿真调度(七)Active/NBA 咋跳转的?
  • 回归预测 | MATLAB实现SSA-ELM麻雀搜索算法优化极限学习机多输入单输出回归预测(多指标,多图)
  • LION AI 大模型落地,首搭星纪元 ES
  • 【AC-自动机】- 字符串的逆序
  • 统计Mysql库中每个表的总行数,解决table_rows不准确问题
  • AWS EC2 docker-compose部署MongoDB4.2
  • IDEA常用插件之类Jar包搜索Maven Search
  • 使用proxman对iOS真机进行抓包
  • sdk manager (ubuntu20.4) 安装
  • Oracle修改字符集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
  • 函数的参数传递和返回值-PHP8知识详解
  • 【Redis】 Redis短连接的性能优化
  • 无涯教程-分类算法 - 逻辑回归
  • URL中传递JSON字符串
  • Python Opencv实践 - Sobel边缘检测
  • IDEA快速设置Services窗口
  • 【CSS】CSS 背景设置 ( 背景半透明设置 )
  • 基于android的学生公寓后勤系统/学生公寓管理系统APP
  • 跳跃游戏 II
  • GPT教我学Vue-Router
  • Tokenview再度升级:全新Web3开发者APIs数据服务体验!
  • 什么是原型链(Prototype Chain)?它在JavaScript中有什么作用?请解释一下JavaScript中的“this”关键字的含义和用法。
  • JS-this知识点、面试题
  • 【C++入门到精通】C++入门 —— 多态(抽象类和虚函数的魅力)
  • 基于springboot学生社团管理系统/基于Java的高校社团管理系统的设计与实现
  • 【C++】C++ 引用详解 ⑦ ( 指针的引用 )
  • ubuntu安装goland