1

我已经对破坏者模式进行了一些研究,但有一件事我无法绕开。

有生产者,它们为环形缓冲区提供条目。有环形缓冲区,基本上是一个固定但无限的数组。有消费者(基本上是独立的线程),处理来自环形缓冲区的条目。

我试图说明如何在股票市场的真实案例场景中使用破坏者模式。

通常,您将拥有包含所有订单的订单簿。我怎么看,生产者会收到经纪人的新订单。生产者将订单放入环形缓冲区。将订单放入环形缓冲区后,消费者获取订单并与订单簿进行交叉检查。

现在这是我在理解优势时遇到一些麻烦的部分。如果会有多个消费者,这就是你想要的可扩展系统,怎么会有多个消费者处理订单?

当消费者访问时,订单簿必须被锁定以确保完整性。我正在寻找的是这个问题的答案以及订单匹配引擎如何可能从这种模式中受益的粗略想法。

LMAX 有自己的订单匹配引擎,所以我必须忽略一些东西。

谢谢

4

1 回答 1

2

他们有一个消费者自己处理订单。其余的消费者对此订单处理器的输出采取行动 - 例如返回响应、写入日志、写入数据库等。实际的订单处理发生在单个线程上,这是访问订单簿的唯一线程,因此不需要锁定它。

他们声称能够在这个单线程上每秒处理多达 600 万个订单。

于 2013-11-20T21:28:04.060 回答