在春季重新建立RPC连接

时间:2019-06-25 06:41:53

标签: spring-boot kotlin corda

我正在运行一个弹簧服务器,该服务器通过RPC连接到corda节点,目前我在初始化服务器时正在初始化连接。如果rpc节点出现故障,能够重新连接到rpc的最佳实践是什么?我只是轮询并检查rpc是否已断开连接?

1 个答案:

答案 0 :(得分:1)

在文档的Reconnecting RPC Clients部分中,与节点进行了某种程度的讨论。

  

在当前版本的Corda中,RPC连接和所有   客户端创建的观察者变量只会引发异常   并在节点或TCP连接不可用时死亡。

     

处理这些错误并重新连接是客户的责任   一旦节点再次运行。针对停止运行RPC命令   节点只会抛出异常。先前创建的Observables将   节点重启后不发出任何事件。客户必须   明确地重新运行该命令并重新订阅以接收更多事件。

     

具有副作用(例如启动流)的RPC可能具有   即使节点未收到返回值,也要在节点上执行   客户。确认的唯一方法是执行业务级查询   然后相应地重试。示例runFlowWithLogicalRetry可帮助您   这个。

     

如果用户需要这种功能来编写弹性RPC   客户,我们有一个示例,展示了如何实现此目标,以及   也是一个彻底的测试,证明它可以按预期工作。

当前到ReconnectingCordaRPCOPs的无效链接已被here移动