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

标签 api amazon-ec2 network-programming bitcoin ethereum

<分区>

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

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

如果您对网络或币安施加的限制有任何帮助或见解,我们将不胜感激。

最佳答案

重要区别:

  • Ping:到最近的CDN边缘节点,它响应你;你无法靠近 Binance 服务器。

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

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

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

随机说明,客户端订单 ID 是可重用的,这使得它们无法用作使订单幂等的方法。 (但是,如果您使用固定订单大小,您可以先发制人地锁定所有剩余资金,然后在明知重复订单无法成功的情况下通过下单敲打 Binance,因为您没有资金。)

关于api - 如何减少 Binance API 订单簿调用的延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48331242/

相关文章:

api - 查看网站的 API 调用

python - Interactive Brokers - 获取OPT的历史数据(MIDPOINT和TRADES)

php - 智能地限制匿名评级?

apache - 如何在不破坏或丢失 ec2 数据的情况下使用 terraform 更新 ec2

tomcat - 监控 Tomcat Web 应用程序

java - Android使用TargetApi实现接口(interface)

amazon-web-services - aws-cli - 使用 --query 和 --filter 过滤输出

python - 如何统计 TCPServer 中已连接的客户端?

java - 与 KeyListener 并行运行的方法

c - 为什么同样的负载在三天后会出现略微不同的 IEEE 802.15.4 帧?