首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当etcd没有运行时,Java API ( etcd )客户端不会检测到

当etcd没有运行时,Java API ( etcd )客户端不会检测到
EN

Stack Overflow用户
提问于 2022-11-26 15:49:03
回答 1查看 15关注 0票数 0

我正在使用jetcd,这是一个非常好的用于etcd的Java客户端,并试图连接到etcd。当etcd正在运行时,它工作得很好。客户端已经建立,我可以执行put/get调用),但是即使etcd没有运行,我仍然会得到一个客户机。

我的问题是:如何检测(当我构建我的客户端时) etcd没有运行(然后我可以记录某件事情或等待/重新连接)?

下面是我使用的代码:

代码语言:javascript
运行
复制
import io.etcd.jetcd.Client;
:
:
connections = {"http://etcd-1:2379", "http://etcd-2:2379", "http://etcd3:2379"}
Client client = Client.builder().endpoints(connections).build();
log.debug("client: {}", client);

问题是,我得到一个有效的客户端返回,但没有例外,即使没有一个etcd节点正在运行。不过,我会得到一个“null”返回,或者抛出一个异常。

有没有更好的解决办法,还是我做错了什么?

作为一种临时解决方案,我可能会尝试一个"put“或"get”调用,这可能会导致错误/异常/等待,但这似乎不是正确的方法。

如能提供任何协助,我们将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2022-11-26 15:59:16

Etcd (实际上是任何网络服务)本质上是不可靠的,所以您的程序必须能够在任何时候处理故障:而不仅仅是在启动时。您可以让您的程序“测试”连接,但您也可以不这样做,因为测试不能保证接下来会发生什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74583563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档