订单簿至少要支持:找到最优买卖价、追加限价单、按价格成交、按 orderId 撤单、生成行情深度。
常见设计是价格层使用平衡树、跳表或有序 Map。买盘按价格降序,卖盘按价格升序。同一价格层内部使用 FIFO 队列或双向链表。为了快速撤单,需要维护 orderId 到订单节点的哈希表。
Best Bid 和 Best Ask 可以通过树的首尾节点获得,也可以额外缓存。系统还需要能定期生成快照,并配合命令日志或成交日志重放恢复。