如果改成limit order 会有啥设计上的改变吗 我觉得这样fill order 后可能需要async执行 因为order可能在execution venue里不被执行 然后 会有partial的执行
当一天结束时候如果limit order 没被执行 execution venue 会告诉我们order service吗 还是我们需要自己去track 然后cancel order?
谢谢
Limit Order 成交时间不确定,所以需要一般会 register callback,有更新了可以通知我们的服务。Partial Order 也有可能的,会分成几单执行。
一天结束没有完成 Limit Order 也不一定要撤单的,有的 Limit Order 可以无限期。这个单子的信息是一开始就告诉 Execution Venue 有效期的,不用回头去 Cancel。
谢谢老师回复 这种情况下我们还需要使用saga来保证高一致性吗 感觉没必要让watchdog 一直在那等着
看alex xu那本书 把accountservice和orderservice 合并成了order manager,是不是可以就用DB自带的transaction了
仍然需要 Saga 维持内部和外部的一致性,保证 DB 和 Execution Venue 的一致性。比如 DB 认为 Execution Venue 收到了这个订单,那么 Execution Venue 就应该收到了。
还想问下 讲义里面order service里面带着一个queue 我们是用它保证顺序还是做buffer啊
你说的两个考虑都有
可以再讲下这个queue怎么work的吗 为什么不放在order service和execution venue 之间呢
还想问下 课件中的order service的async order status check 就是call execution venue不定期的查execution的状态吗 是有什么event trigger吗
order service 和 execution venue 就是简单的 Restful API call,当中没办法放 queue。你说的这个 queue 是 Order service 内部的,也就是 order service 即是 producer 又是 consumer。实现可以用 rabbitMQ 或者 zeroMQ.
是的。实际情况下,会 register callback 或者有 streaming API,这样就不用傻傻的反复 pull 了