Coinbase API断线重连机制实现

我们最近的网站使用的Coinbase API经常断掉,所以想问下各位大佬有什么比较好的重连策略和方法?

4 个回答

智能合约吟诵者
智能合约吟诵者回答于 12 月 11 日
最佳答案

Coinbase的api断线问题很正常,先确定是api服务不稳定还是你自己写的有问题,用重连策略解决,指数退避(exponential backoff),就是第一次断线后隔一段时间再重连,然后第二次隔更久再重试,以此类推,防止服务器一下子被你的请求淹没。另外心跳ping一下,检查有没有断线。不要把所有请求都放在一跟连接上,用连接池或者异步,多做些容错处理。如果使用的是别人的sdk,也要确认下是不是别人的sdk版本太低,更新到最新版本看看。

志存高远
志存高远回答于 12 月 11 日

Coinbase API断的时候可以做一下心跳检测,定时发送ping看连接是否正常,断开了直接重连。然后使用指数退避,以免重连过于频繁,造成服务器宕机。编码方面可以try catch住异常,并打印日志,方便后面排查问题。另外还要检查一下网络问题和API的请求限制。

CryptoViking
CryptoViking回答于 12 月 12 日

Coinbase API断开连接:加个心跳检查+指数级回退

每隔一段时间发一个ping看api是否正常,没有响应就断开重连

重试时不要盲目尝试,可以采用第一次延迟1秒重连的方式,第二次延迟2秒,第三次4秒,以此类推,这样重连的概率就比较高。

同时我们还要记得处理连接超时和认证异常,这两种常见断点的场景处理。

建议使用python requests/websockets等库中已经实现好的策略,可以降低开发成本

墨韵流年
墨韵流年回答于 12 月 14 日

Coinbase api掉线了,一般会做重连处理,你自己设置下超时时间,3秒没收到返回结果就断开重连,指数退避,第一次失败等待1秒重试,第二次失败等待2秒重试,第三次失败等待4秒重试。。。再结合心跳包机制,确保连接一直在线,代码里捕获所有可能的异常,发生异常时直接关闭重连就好了,很简单,大部分情况下就可以保证正常了

您的答案