elasticsearch elasticsearch through NEST:连接到多个主机组成的集群的推荐方式是什么,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch elasticsearch through NEST:连接到多个主机组成的集群的推荐方式是什么,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch elasticsearch through NEST:连接到多个主机组成的集群的推荐方式是什么

elasticsearch elasticsearch through NEST:连接到多个主机组成的集群的推荐方式是什么,elasticsearch,nest,elasticsearch,Nest,我开始和NEST合作了。 我已经看到,我应该在程序开始时只使用TryConnect一次,然后使用Connect。 但对于一个长期运行的系统来说,这似乎有点太天真了。 如果我有一个由3台机器组成的集群,并且我想确保我可以连接到这3台机器中的任何一台,该怎么办? 推荐的方法是什么 我应该: -每次使用TryConnect,如果失败,则使用不同的主机+端口(缺点-每次额外往返)? -尝试使用客户端并使用某种重试机制来处理由于连接问题而导致的故障?也许可以在上面实现一个连接池? 还有其他选择吗? 有什么

我开始和NEST合作了。 我已经看到,我应该在程序开始时只使用TryConnect一次,然后使用Connect。 但对于一个长期运行的系统来说,这似乎有点太天真了。 如果我有一个由3台机器组成的集群,并且我想确保我可以连接到这3台机器中的任何一台,该怎么办? 推荐的方法是什么

我应该: -每次使用TryConnect,如果失败,则使用不同的主机+端口(缺点-每次额外往返)?
-尝试使用客户端并使用某种重试机制来处理由于连接问题而导致的故障?也许可以在上面实现一个连接池?

还有其他选择吗? 有什么建议吗? 示例代码

谢谢你的帮助,

Ron

连接池是一项经常被要求的功能,但由于涉及到许多试探法和不同的方法,NEST没有提供这种现成的功能。你必须自己实现这一点

我不建议在每次调用之前调用
TryConnect()
,因为现在您正在进行两次调用,而不是一次调用

每个NEST调用都返回一个可以检查
IsValid
ConnectionStatus
将保存请求和响应的详细信息

另请参见有关的文档

在1.0版本中,NEST将在TCP级别错误的情况下开始抛出异常,因此可以实现更通用的连接池方法,NEST可能会附带一个单独的nuget包来实现一个连接池(如果作为参考)。另见本讨论

希望这对现在有所帮助

更新此答案已过时,NEST 1.0附带了现成的连接池和群集故障切换支持: