# Production adapters 手册

本手册汇总生产 adapter 边界。详细说明保留在 [Production adapters](../production-adapters.md)。

## 已覆盖能力

- `discovery-etcd`：真实 etcd v3 registry，覆盖注册、lease keep-alive、watch、健康状态和反注册。
- `discovery-kube`：真实 Kubernetes EndpointSlice discovery watcher、本地缓存、fixture mapper 和外部集群验证边界。
- `otlp`：真实 OTLP tracing exporter、配置和 shutdown/flush handle。
- `db-sqlite` / `db-postgres` / `db-mysql`：SQLx pool、health check、transaction helper。
- `cache` / `cache-redis`：cache trait、in-memory backend、真实 Redis store、cache-aside helper。

## 运行边界

默认 workspace test 不连接外部服务。需要真实 Redis、etcd、Kubernetes、OTLP collector、Pyroscope、MySQL 或 PostgreSQL 时，先阅读 `examples/production-adapters/README.md` 和 [External integration CI](../external-integration-ci.md)，再运行对应 ignored test 或 `scripts/external-integration.sh`。

## 生产接入建议

- 明确 adapter feature gate。
- 为注册中心、数据库、缓存和 OTLP exporter 配置 timeout、backoff、health check。
- 先用 facade/codec/mapper 测试覆盖配置，再接入真实环境。
- etcd 接入前用 ignored external test 验证本地或测试集群：`RS_ZERO_ETCD_ENDPOINT=http://127.0.0.1:2379 cargo test --no-default-features --features discovery-etcd --test discovery_etcd_external -- --ignored`。
- Kubernetes 接入前确认 kubeconfig context、namespace、EndpointSlice RBAC 和 Service port name，并运行：`RS_ZERO_KUBE_EXTERNAL=1 cargo test --no-default-features --features discovery-kube --test discovery_kube_external -- --ignored`。
- Redis、OTLP、Pyroscope、MySQL 和 PostgreSQL 接入前运行 `scripts/external-integration.sh redis otlp pyroscope mysql postgres`，确认真实外部依赖生命周期可用。

## 相关测试

- `cargo test --test db_integration`
- `cargo test --test cache_integration`
- `cargo test --no-default-features --features discovery-etcd --test discovery_etcd_codec`
- `cargo test --no-default-features --features discovery-kube --test discovery_kube_mapper`
- `cargo test --test observability_otlp`
- `scripts/external-integration.sh all`
