Apache ShardingSphere Shadow DB 及在 CyborgFlow 中的应用 - 侯阳
3.83 MB
22 页
0 评论
上传 | 格式 | 评分 |
---|---|---|
copilot | .pdf | 3 |
摘要 | ||
Apache ShardingSphere 提供并维护的 Shadow DB 是一种用于数据影子处理与路由的模块,其架构设计包含影子数据源、影子表和影子算法。CyborgFlow 集成多个 Apache 项目,包括 ShardingSphere、SkyWalking 和 APISIX,通过这些模块实现对 Shadow DB 的管理和应用。在 CyborgFlow 中启动项目时使用 cyborg-agent,网关通过配置解析 SQL 注解进行请求路由。Shadow DB 的作用包括全链路压测、灰度发布、服务预热和对比测试,影子数据源用于存储隔离数据,影子表涉及压测相关的业务表,影子算法则用于判定 SQL 是否执行到影子库。 | ||
AI总结 | ||
《Apache ShardingSphere Shadow DB 及在 CyborgFlow 中的应用 - 侯阳》摘要:
本文主要介绍了Apache ShardingSphere的Shadow DB功能及其在CyborgFlow中的应用,以下是核心内容总结:
### 1. 概述
- **Shadow DB**:由Apache ShardingSphere提供并维护,用于隔离数据源,常用于压力测试、功能测试和灰度发布等场景。
- **CyborgFlow**:结合Shadow DB实现全链路压测和服务预热,包含以下模块:
- **cyborg-agent & dashboard**:由Apache SkyWalking提供。
- **cyborg-flow-gateway**:由Apache APISIX提供。
- **cyborg-database-shadow**:Shadow DB的实现模块。
### 2. 架构设计
- **核心组件**:
- **影子数据源(Shadow Datasource)**:用于存储隔离数据,压力测试需与生产数据库一致。
- **影子表(Shadow Table)**:压测相关表,影子库仅需创建产生压测数据的影子表。
- **影子算法(Shadow Algorithm)**:判定SQL是否执行到影子库,支持多种类型(如VALUE_MATCH、REGEX_MATCH、SIMPLE_HINT)。
- **数据库路由**:根据影子算法判定结果,将SQL路由到影子数据源。
### 3. CyborgFlow中的Shadow DB应用
- **实现机制**:
- 通过cyborg-agent在JVM启动时加载,利用jdbc调用链传递标识。
- 网关(cyborg-flow-gateway)解析SQL注解(如`/*cyborg-flow:true*/`),匹配成功后执行影子库路由。
- 支持多种影子算法,灵活匹配条件,性能损耗小(最差情况约3%)。
- **配置示例**:
```yaml
shadowAlgorithms:
|
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
10 页请下载阅读 -
文档评分