-
Notifications
You must be signed in to change notification settings - Fork 8.1k
OpenSergo 动态规则源
Eric Zhao edited this page Jan 16, 2023
·
6 revisions
Sentinel 2.0 将作为 OpenSergo 流量治理的标准实现,原生支持 OpenSergo 流量治理相关 CRD 配置及能力,结合 Sentinel 提供的各框架的适配模块,让 Dubbo, Spring Cloud Alibaba, gRPC, CloudWeGo 等20+框架能够无缝接入到 OpenSergo 生态中,用统一的 CRD 来配置流量路由、流控降级、服务容错等治理规则。无论是 Java 还是 Go 还是 Mesh 服务,无论是 HTTP 请求还是 RPC 调用,还是数据库 SQL 访问,用户都可以用统一的容错治理规则 CRD 来给微服务架构中的每一环配置治理,来保障服务链路的稳定性。
Sentinel 社区提供对接 OpenSergo spec 的动态数据源模块 sentinel-datasource-opensergo
,只需要按照 Sentinel 数据源的方式接入即可。
注意:该适配模块目前还在 beta 阶段。目前 Sentinel OpenSergo 数据源支持流控规则、匀速排队规则以及熔断规则。
以 Java 版本为例,首先 Maven 引入依赖:
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-opensergo</artifactId>
<!-- 对应 Sentinel 1.8.6 版本 -->
<version>0.1.0-beta</version>
</dependency>
然后在项目合适的位置(如 Spring 初始化 hook 或 Sentinel InitFunc 中)中创建并注册 Sentinel OpenSergo 数据源。在应用启动前,确保 OpenSergo 控制面及 CRD 已经部署在 Kubernetes 集群中,可以参考控制面快速部署文档。
// 传入 OpenSergo Control Plane 的 endpoint,以及希望监听的应用名.
// 在我们的例子中,假定应用名为 foo-app
OpenSergoDataSourceGroup openSergo = new OpenSergoDataSourceGroup("localhost", 10246, "default", "foo-app");
// 初始化 OpenSergo 数据源
openSergo.start();
// 订阅 OpenSergo 流控规则,并注册数据源到 Sentinel 流控规则数据源中
FlowRuleManager.register2Property(openSergo.subscribeFlowRules());
启动应用后,即可编写 FaultToleranceRule、RateLimitStrategy 等 CR YAML 来动态配置流控容错规则,通过 kubectl apply 到集群中即可生效。
-
文档
-
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