网站管理 设置开启,网站建设规模与类别,常熟网站制作,网站建设项目内控单参数设置
熔断时长 、最小请求数、最大RT ms、比例阈值、异常数
熔断策略
慢调⽤⽐例 当单位统计时⻓内请求数⽬⼤于设置的最⼩请求数⽬#xff0c;并且慢调⽤的⽐例⼤于阈值#xff0c;则接下来的熔断时⻓内请求会⾃动被熔断
异常⽐例 当单位统计时⻓内请求数⽬⼤于设置…参数设置
熔断时长 、最小请求数、最大RT ms、比例阈值、异常数
熔断策略
慢调⽤⽐例 当单位统计时⻓内请求数⽬⼤于设置的最⼩请求数⽬并且慢调⽤的⽐例⼤于阈值则接下来的熔断时⻓内请求会⾃动被熔断
异常⽐例 当单位统计时⻓内请求数⽬⼤于设置的最⼩请求数⽬并且异常的⽐例⼤于阈值则接下来的熔断时⻓内请求会⾃动被熔断
异常数 当单位统计时⻓内的异常数⽬超过阈值之后会⾃动进⾏熔断
熔断规则 熔断条件 接口异常率超过10%或者慢调用响应时间3s的比例大于20%触发60s熔断 熔断操作 直接返回默认实现
ZooKeeper 作为配置中心
Sentinel 是阿里巴巴开源的一套服务容错框架用于服务的流量控制、熔断和系统负载保护。Sentinel 可以通过多种方式动态配置规则其中包括使用 ZooKeeper 作为配置中心来集中管理和推送规则。以下是 Sentinel 如何使用 ZooKeeper 的基本步骤和配置
搭建 ZooKeeper 环境
启动 ZooKeeper 服务可以使用 ZooKeeper 的常用命令来管理服务例如启动 (sh bin/zkServer.sh start)、查看状态 (sh bin/zkServer.sh status)、停止 (sh bin/zkServer.sh stop) 和重启 (sh bin/zkServer.sh restart) 服务。
引入 ZooKeeper 依赖
在 Sentinel Dashboard 工程中引入 ZooKeeper 相关的依赖例如使用 Apache Curator 客户端
dependency groupIdorg.apache.curator/groupId artifactIdcurator-recipes/artifactId version${curator.version}/version /dependency
注意去掉 test 标签以便在非测试环境中使用。
同步规则到 ZooKeeper
在 Sentinel Dashboard 中通过 ZooKeeper 同步流控规则和降级规则。需要指定 ZooKeeper 路径zkpath来存储规则信息例如
// 流控规则 final String flowPath /sentinel_rule_config/ appName /flow; // 降级规则 final String degradePath /sentinel_rule_config/ appName /degrade;
其中 appName 是应用的名称。
修改 Controller
修改 Sentinel Dashboard 中的 Controller以便在规则变更时通过 ZooKeeper 发送通知。这涉及到修改流控规则FlowController和降级规则DegradeController的 Controller。
客户端配置
在客户端项目中引入 Sentinel ZooKeeper 数据源依赖
dependency groupIdcom.alibaba.csp/groupId artifactIdsentinel-datasource-zookeeper/artifactId version${sentinel.version}/version /dependency
创建 ZookeeperDataSource 实例并注册到对应的 RuleManager
ReadableDataSourceString, ListFlowRule flowRuleDataSource new ZookeeperDataSource(remoteAddress, path, source - JSON.parseObject(source, new TypeReferenceListFlowRule() {})); FlowRuleManager.register2Property(flowRuleDataSource.getProperty());
其中 remoteAddress 是 ZooKeeper 服务地址path 是数据路径。
通过以上步骤Sentinel 可以利用 ZooKeeper 来集中管理和推送规则实现规则的持久化和实时更新。这样即使服务重启配置的规则也不会丢失并且可以快速响应规则的变化。