下单成功后,我很快去用接口 GET /api/v3/order
查询刚才的订单, 结果显示 {“code”:-2013,“msg”:“Order does not exist.”}。这是怎么回事?
如果确实下单成功了,而且返回了订单号。但是查询不到这个订单信息。
币安的下单过程是先进入交易撮合引擎,随后将订单的信息发送给下游各个渠道,其中包括持久层, Websocket服务器等。 这一设计的最大优点是,整个交易系统的扩展性非常好,不会被常见的IO等问题所局限住。
GET /api/v3/order
这个接口是从持久层拿数据,返回给客户端。 根据上面的信息可知,从交易引擎到最后持久化,会有一个时间差。这个时间差在市场行情波动较大的时刻,最大可能会到10多秒的级别。我们的系统不断优化,尽量把延时控制在1秒之内。
为了保证用户可以尽快得到订单的最新消息,我们推荐用户通过Websocket的连接来获取最新消息。 比如某用户下一个订单后,websocket服务器会在最快的时间内,通过executionReport
的事件类型,把完整的订单数据集推送给用户。