Java elasticsearch中关闭和关闭节点之间的区别?
具有具有单个节点的群集:Java elasticsearch中关闭和关闭节点之间的区别?,java,
elasticsearch,Java,
elasticsearch,具有具有单个节点的群集: Node node = NodeBuilder.nodeBuilder().loadConfigSettings(true).node(); 这两者有什么区别 node.close(); 及 ? 建议使用什么方法从java优雅地关闭节点/集群 如果设计在未连接的数据报套接字上使用shutdown(),则 只会使套接字无法用于进一步的send()和recv() 调用(请记住,如果连接()数据报,则可以使用这些 插座。) 需要注意的是,shutdown()实际上并没有关
Node node = NodeBuilder.nodeBuilder().loadConfigSettings(true).node();
这两者有什么区别
node.close();
及
?
建议使用什么方法从java优雅地关闭节点/集群
如果设计在未连接的数据报套接字上使用shutdown(),则
只会使套接字无法用于进一步的send()和recv()
调用(请记住,如果连接()数据报,则可以使用这些
插座。)
需要注意的是,shutdown()实际上并没有关闭文件
它只是改变了它的可用性。要释放套接字描述符,
您需要使用close()
我建议使用
节点
访问集群,然后循环集群并单独关闭所有节点。但是,这取决于您真正想要什么。上述两种操作的效果相同。区别可能在于它们影响的节点
使用node.close()
可以关闭从应用程序启动的自己的节点,如果将elasticsearch群集嵌入应用程序中,该节点可能是唯一的节点,或者只是通过java api(传输端口)连接到外部群集的客户端节点
使用可以在一次操作中有效地关闭远程节点、可能的多个节点和整个集群。因此,命令上下文中的每个节点都将关闭,再次调用close
方法
另外,这两个命令都会优雅地关闭节点。我在问题中提到了我真正想要的:“优雅地关闭节点”我通常看到
close()
与宽限期一起使用。我不确定Elasticsearch的节点
类是否允许提供一个宽限期(通常以毫秒为单位),但如果是这样的话,您应该提供一个宽限期以允许正常关闭/关闭。
node.client().admin().cluster().prepareNodesShutdown().execute().actionGet();