我目前正在尝试减少使用Binance API调用orderbook时的延迟。
我收到了~7ms的ping,但orderbook调用需要大约200ms才能下载。我使用的虚拟机托管在Binance使用的同一个AWS群中,并且运行在大约800 uses的网络速度上。我不明白为什么当orderbook的大小相对较小时,接收orderbook调用所需的时间要比ping服务器所需的时间多两个数量级。
对网络的任何帮助或洞察,或者Binance施加的限制,我们都将不胜感激。
发布于 2018-11-10 20:14:08
CDN :在您的主机和离您最近的边缘节点之间进行往返;该数据包永远不会访问Binance服务器。
你的订单簿请求:转到同一个边缘节点,在内部路由到实际的Binance服务器(或者在中间某处的缓存停止;谁知道呢),它被读取和处理,然后响应被一路路由回你。
这样一来,它们就托管在东京AWS区域,如果我没记错的话,你可以降低到大约2ms的延迟(我可能没有记错;请自己测量一下),但不是从你发送请求的那一刻开始(更多的是在12-15ms的范围内),而是从响应产生的那一刻开始(你可能想要使用GET /api/v1/time REST API端点运行实验)。
为了降低延迟,您可以并行发布多个请求,然后在它们到达时对其进行处理,这通常与发送时相同,但不一定与发送请求时相同,如果您得到差异的话。这个策略很难(或者,通常是不可能的)通过改变事情的API调用来实现(例如发布订单)。
发布于 2020-12-30 00:24:26
到目前为止,有多个api端点api/api1/api2/api3.binance.com我使用cmd using了端点。以及@Tiana提供的给定方法。对我来说,api2的延迟是最好的。但并不比api1或api3好。仅仅是normla api就会时不时地出现非常糟糕的延迟。显然,端点位于不同的服务器和api上。端点被过度使用了一点。因此,我建议使用api2.binance.com端点
https://stackoverflow.com/questions/48331242
复制相似问题