refactor: 将 WithAffinity 重命名为 WithSticky,文件 affinity.go → sticky.go

This commit is contained in:
2026-05-08 11:37:34 +08:00
parent 3d293699e9
commit a3cf983b39
4 changed files with 34 additions and 34 deletions

View File

@@ -188,7 +188,7 @@ def slow_compute(n: int) -> int:
## Session 亲和路由
默认情况下,每次 `Invoke` 通过轮询分配 worker 进程。当多次调用需要共享同一 Python 进程的状态时,可以使用 Session 或 WithAffinity 将调用固定到同一进程。
默认情况下,每次 `Invoke` 通过轮询分配 worker 进程。当多次调用需要共享同一 Python 进程的状态时,可以使用 Session 或 WithSticky 将调用固定到同一进程。
### NewSession
@@ -223,13 +223,13 @@ def step(session_id: str, delta: int) -> int:
> `NewSession` 不拥有底层 pool 的生命周期,调用 `session.Close()` 是空操作,只需关闭原始 pool。
### WithAffinity
### WithSticky
`WithAffinity` 将亲和键写入 ctx相同 key 通过哈希稳定路由到同一 worker无需持有 session 对象:
`WithSticky` 将亲和键写入 ctx相同 key 通过哈希稳定路由到同一 worker无需持有 session 对象:
```go
// 每次调用前附加 key相同 key 始终走同一 worker
ctx = gobridge.WithAffinity(ctx, "user-42")
ctx = gobridge.WithSticky(ctx, "user-42")
gobridge.Invoke(ctx, pool, "method_a", ...)
gobridge.Invoke(ctx, pool, "method_b", ...)
```
@@ -262,7 +262,7 @@ gobridge.Invoke(ctx, sessB, "increment", 99) // worker 0: counter = 99独立
### 两种方式对比
| | `NewSession` | `WithAffinity` |
| | `NewSession` | `WithSticky` |
|---|---|---|
| 路由方式 | 创建时轮询确定 worker | 按 key 哈希确定 worker |
| 适用场景 | 显式会话管理 | 按自然键(用户 ID 等)路由 |