test: verify slow consumer peer progress
This commit is contained in:
@@ -17,13 +17,15 @@
|
||||
| 每条交付 attempts | 1、1 |
|
||||
| 重复处理 | 0 |
|
||||
|
||||
同批定向真实服务回归还运行了 ACK 提交回执丢失和自然租约补发:三项合计 52.645 秒,均通过;慢消费者用例本身 3.15 秒。环境为 Docker Go 1.25.14 Linux arm64、一次性 MySQL 8.4.10,服务端和 SDK 使用临时 modfile,仓库声明的 Go 1.27.1 未修改。`go test -race` 通过,数据库外键为 0。
|
||||
`TestIntegrationEventProcessSlowConsumerPeerProgress` 另外启动两个真实 Orbit 进程和两个独立 WebSocket 消费器:节点 A 持有第一条交付并阻塞,节点 B 在同一订阅上领取并确认第二条交付;释放 A 后第一条再确认。两个节点身份不同,最终两条交付仍各一次尝试。
|
||||
|
||||
同批定向真实服务回归还运行了 ACK 提交回执丢失和自然租约补发:三项合计 52.645 秒,均通过;单节点慢消费者用例本身 3.15 秒。双进程用例另以两个真实 Orbit 进程运行 3.125 秒并通过。环境为 Docker Go 1.25.14 Linux arm64、一次性 MySQL 8.4.10,服务端和 SDK 使用临时 modfile,仓库声明的 Go 1.27.1 未修改。`go test -race` 通过,数据库外键为 0。
|
||||
|
||||
## 结论边界
|
||||
|
||||
该用例证明容量窗口会把慢处理器期间的后续结果留在服务端,释放后按原交付身份继续消费,不会在 SDK 内存中并行启动超出容量的处理器。业务处理器仍必须响应 context 取消,并在业务 Inbox 去重与业务效果同一事务提交后才返回成功。
|
||||
|
||||
当前仍未验证多个节点同时连接、跨节点慢消费者公平性、连接风暴叠加积压、租约到期期间的业务 Inbox 去重、数据库锁/连接池/磁盘曲线和生产容量。上述项目必须在目标拓扑中另行执行,不能由本次单节点样本推导。
|
||||
当前仍未验证连接风暴叠加积压、租约到期期间的业务 Inbox 去重、数据库锁/连接池/磁盘曲线和目标拓扑生产容量;本次双进程只证明一个慢消费者不会阻塞同一订阅的对等节点,不证明跨故障域切换、全局公平或容量上限。上述项目必须在目标拓扑中另行执行,不能由本次样本推导。
|
||||
|
||||
## 复现
|
||||
|
||||
|
||||
Reference in New Issue
Block a user