如何减少 Binance API 订单簿调用的延迟?

Pie*_*ceT 4 api network-programming amazon-ec2 bitcoin ethereum

我目前正在尝试减少使用 Binance API 调用订单簿时的延迟。

我收到的 ping 约为 7 毫秒,但订单簿调用需要约 200 毫秒才能下载。我使用的虚拟机托管在 Binance 使用的同一个 AWS 场中,并且运行的网络速度约为 800mbps。我不明白为什么当订单簿的大小相对较小时,订单簿调用的接收时间比 ping 服务器所需的时间多出近两个数量级。

任何有关网络或币安施加的限制的帮助或见解将不胜感激。

Tia*_*ana 5

重要区别:

  • Ping:前往最近的 CDN 边缘节点,该节点会响应您;你根本无法靠近币安服务器。

  • API 请求:发送到最近的 CDN 边缘节点,路由到 Binance 服务器,进行处理,然后将响应路由回您。

Binance服务器托管在东京的AWS上。如果您将主机放在那里,延迟将约为 12-15 毫秒(从 Binance 发送响应开始为 2 毫秒)。

为了降低平均延迟,您可以尝试并行发布幂等请求,然后使用最先到达的响应。这很粗鲁,但它完成了工作。

随机说明一下,客户端订单 ID 是可重用的,这使得它们作为使订单幂等的方法毫无用处。(但是,如果您使用固定订单规模,则可以先发制人地锁定所有剩余资金,然后通过订单放置锤击币安,因为您知道重复订单无法成功,因为您没有资金。)