问题本质是两个风控实例同时读取旧余额,都认为保证金足够,于是两笔订单都通过,最终账户风险超过限制。
解决方案包括:下单时预占保证金;同一账户的资金和风险命令进入同一消息分区按序处理;使用版本号、CAS 或原子条件更新可用余额;更新失败后重读状态重新计算。
即使前置风控出现竞态,清算层也必须设置最终安全边界,确保成交后不会产生非法资金和仓位状态。撮合可以按交易对分片,但账户资金和风险最好具备账户维度顺序一致性。