考察候选人是否理解订单簿热路径的确定性和顺序要求,而不是机械追求多线程。
说明同一本订单簿修改必须串行,再讲单线程 actor 的优点和横向扩展方式。
同一个交易对的订单簿有严格顺序要求。价格时间优先、FOK 预检查、撤单与成交并发、STP 判断,都依赖一个确定的命令顺序。
使用单线程撮合器可以避免在撮合热路径上引入复杂锁,减少锁竞争、死锁和状态撕裂。只要命令输入顺序一致,输出成交结果就一致,这也便于 WAL 回放和故障恢复。
这不代表整个交易所只有一个线程。不同交易对可以按 symbol 分片并行,例如 BTC-USDT 由 engine A 处理,ETH-USDT 由 engine B 处理。热门交易对可以独占进程或 CPU 核,冷门交易对共享分片。
单个超热门交易对吞吐不够时,你会如何优化?