Expand description
双轨影子流量校验模块
在 ORM 查询执行时,同步通过原生路径执行相同 SQL 并比较结果集, 用于在上线重大优化时验证 ORM 行为与原生驱动的一致性。
§设计
ShadowConnection 是一个装饰器(decorator),包装一个 ORM Connection
和一个用于比对的“原生“ Connection(通常底层是相同的 sqlx pool)。
每次 ORM 执行 query 时,原生连接同步执行相同 SQL,然后比较结果。
与 SKILL.md 中提到的 tower 中间件模式不同,sz-orm 是库而非 HTTP 服务,
装饰器模式更贴合 ORM 的 Connection trait 抽象。
§使用示例
ⓘ
use sz_orm_core::shadow::{ShadowConnection, ShadowConfig};
let orm_conn = pool.acquire().await?;
let raw_conn = pool.acquire().await?;
let mut shadow = ShadowConnection::new(orm_conn, raw_conn, ShadowConfig::default());
// 执行查询时自动双轨比对
let rows = shadow.query("SELECT * FROM users").await?;Structs§
- Shadow
Comparison - 影子流量比较结果
- Shadow
Config - 影子流量配置
- Shadow
Connection - 双轨影子流量校验连接装饰器
- Shadow
Stats - 影子流量累计统计
Enums§
- Mismatch
Action - 不一致处理策略