Skip to main content

Module shadow

Module shadow 

Source
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§

ShadowComparison
影子流量比较结果
ShadowConfig
影子流量配置
ShadowConnection
双轨影子流量校验连接装饰器
ShadowStats
影子流量累计统计

Enums§

MismatchAction
不一致处理策略