我正在尝试使用Binance API调用订单时减少延迟。
我收到~7毫秒的ping,但订单调用需要大约200毫秒才能下载。我正在使用在Binance使用的同一AWS场中托管的VM,并且我运行的网络速度约为800mbps。我不明白为什么订单调用接收的时间比订单服务器的大小相对较小时ping服务器所花费的时间多近两个数量级。
对Binance强加的网络或限制的任何帮助或见解将不胜感激。
答案 0 :(得分:1)
现在有多个api端点api/api1/api2/api3.binance.com 我使用 cmd ping 端点。以及@Tiana 提供的给定方法。 对我来说 api2 不知何故有最好的延迟。但并不比 api1 或 api3 好。 只是 normla api 不时有非常糟糕的延迟。 显然,端点在我猜和 api 的不同服务器上。端点被过度使用了一点。 所以我建议使用 api2.binance.com 端点
答案 1 :(得分:0)
Ping :主机和距离您最近的CDN边缘节点之间的微小数据包的往返;该数据包永远不会看到Binance服务器。
您的订单请求::转到同一边缘节点,在内部路由到实际的Binance服务器(或在中间的某个缓存处停止;谁知道),进行读取和处理,然后将响应一路发送给您。
通过这种方式,它们托管在东京AWS区域,如果我没记错的话,您可以将延迟降低到大约2毫秒(我可能不会;请自己进行测量),但从发送那一刻起就不会请求(该请求的范围可能会在12-15毫秒之内),但是从生成响应的那一刻起(您可能希望使用GET /api/v1/time
REST API端点运行实验)。
要降低延迟,您可以并行发布多个请求,然后在它们到达时对其进行处理,通常与发送的请求相同,但不一定与发送的请求相同,如果您有所不同。通过更改事物(例如发布订单)的API调用,很难(或常常是不可能)实现该策略。