refactor(api): TOML 配置 SSOT、统一错误契约、Auth/事务加固与可观测性 (#33)

配置 SSOT(TOML + .env)
统一错误契约
Auth 与事务边界
Redis / Celery 可靠性:业务 Redis(DB/0)与 Celery broker/backend(DB/1)显式拆分;连接池、sync client
可观测性(OpenTelemetry + LGTM)
This commit is contained in:
Sully
2026-05-22 13:44:50 +08:00
committed by GitHub
parent f09ae248f9
commit 53e0065e3e
298 changed files with 15247 additions and 4344 deletions

View File

@@ -0,0 +1,55 @@
---
title: Use Read Replicas for Read-Heavy Workloads
impact: MEDIUM
impactDescription: Scales read throughput without adding primary nodes
tags: cluster, replicas, read-scaling, high-availability
description: Use Read Replicas for Read-Heavy Workloads
alwaysApply: true
---
## Use Read Replicas for Read-Heavy Workloads
For read-heavy workloads, distribute reads across replicas to reduce load on primaries.
**Correct:** Configure replica reads in Redis Cluster.
```python
from redis.cluster import RedisCluster
rc = RedisCluster(
host='localhost',
port=6379,
read_from_replicas=True # Distribute reads to replicas
)
# Writes go to primary
rc.set("key", "value")
# Reads can be served by replicas (eventually consistent)
value = rc.get("key")
```
**Correct:** Use replica reads in standalone replication setup.
```python
from redis import Redis
# Connect to primary for writes
primary = Redis(host='primary-host', port=6379)
# Connect to replica for reads
replica = Redis(host='replica-host', port=6379)
# Write to primary
primary.set("key", "value")
# Read from replica (eventually consistent)
value = replica.get("key")
```
**Considerations:**
- Replica reads are eventually consistent
- Don't read from replicas for data that was just written
- Use for read-heavy, slightly-stale-OK workloads (caches, analytics, dashboards)
Reference: [Redis Replication](https://redis.io/docs/latest/operate/oss_and_stack/management/replication/)