WAL 与状态复制
WAL(Write-Ahead Log)组件用有序日志描述对象的变化,使订阅者能够重放增量、检测不同步并恢复状态。 这里提供的是日志管理和同步算法,存储与传输通过回调接入;组件本身不保证日志先落盘再确认。 使用消息频道可先看dtmq 快速上手。
要解决的问题
一个队伍、频道或订单可能同时被资源所有者、成员、查询服务和客户端观察。 不同角色需要的内容不同:所有者需要完整状态,查询服务需要派生索引,成员只需要允许公开的字段。 逐次广播完整对象会增加带宽;只发送事件又无法帮助长时间离线或刚加入的订阅者恢复。
并发操作还需要顺序。例如匹配成功与取消、出售与撤单,必须先由资源所有者确定有效变化, 再发布已接受的事件。WAL 复制该顺序,不替业务决定冲突结果,也不让多个独立写入者自动达成共识。