Coinbase API断线重连机制实现
4 个回答
Coinbase的api断线问题很正常,先确定是api服务不稳定还是你自己写的有问题,用重连策略解决,指数退避(exponential backoff),就是第一次断线后隔一段时间再重连,然后第二次隔更久再重试,以此类推,防止服务器一下子被你的请求淹没。另外心跳ping一下,检查有没有断线。不要把所有请求都放在一跟连接上,用连接池或者异步,多做些容错处理。如果使用的是别人的sdk,也要确认下是不是别人的sdk版本太低,更新到最新版本看看。
Coinbase API断的时候可以做一下心跳检测,定时发送ping看连接是否正常,断开了直接重连。然后使用指数退避,以免重连过于频繁,造成服务器宕机。编码方面可以try catch住异常,并打印日志,方便后面排查问题。另外还要检查一下网络问题和API的请求限制。
Coinbase API断开连接:加个心跳检查+指数级回退
每隔一段时间发一个ping看api是否正常,没有响应就断开重连
重试时不要盲目尝试,可以采用第一次延迟1秒重连的方式,第二次延迟2秒,第三次4秒,以此类推,这样重连的概率就比较高。
同时我们还要记得处理连接超时和认证异常,这两种常见断点的场景处理。
建议使用python requests/websockets等库中已经实现好的策略,可以降低开发成本
Coinbase api掉线了,一般会做重连处理,你自己设置下超时时间,3秒没收到返回结果就断开重连,指数退避,第一次失败等待1秒重试,第二次失败等待2秒重试,第三次失败等待4秒重试。。。再结合心跳包机制,确保连接一直在线,代码里捕获所有可能的异常,发生异常时直接关闭重连就好了,很简单,大部分情况下就可以保证正常了