4 个版本
0.0.4 | 2022年2月23日 |
---|---|
0.0.3 | 2022年2月21日 |
0.0.2 | 2022年1月28日 |
0.0.1 | 2022年1月28日 |
#7 in #tower-layer
每月下载量 38
15KB
276 行
tower-fault-injector
tower-fault-injector
是一个库,可以将各种故障注入到 tower::Service
。
层
您可以使用以下层将故障注入到服务中
ErrorLayer
- 随机将错误注入到服务中。LatencyLayer
- 随机向服务中添加延迟。
示例用法
use tower_fault_injector::latency::LatencyLayer;
use tower::{service_fn, ServiceBuilder};
async fn my_service() -> Result<(), ()> {
Ok(())
}
// Initialize a LatencyLayer with a 10% probability of injecting
// 200 to 500 milliseconds of latency.
let latency_layer = LatencyLayer::new(0.1, 200..500);
let service = ServiceBuilder::new()
.layer(latency_layer)
.service(service_fn(my_service));
lib.rs
:
为 tower
提供故障注入工具
此包提供 tower::Layer
,可用于将各种故障注入到 tower::Service
。
层
您可以使用以下层将故障注入到服务中
ErrorLayer
- 随机将错误注入到服务中。LatencyLayer
- 随机向服务中添加延迟。
示例
use tower_fault_injector::latency::LatencyLayer;
use tower::{service_fn, ServiceBuilder};
// Initialize a LatencyLayer with a 10% probability of injecting
// 200 to 500 milliseconds of latency.
let latency_layer = LatencyLayer::new(0.1, 200..500).unwrap();
let service = ServiceBuilder::new()
.layer(latency_layer)
.service(service_fn(my_service));
依赖项
~1.3–3MB
~59K SLoC