【问题标题】:starting elasticsearch instance from java?从java启动elasticsearch实例?
【发布时间】:2013-07-04 03:29:18
【问题描述】:

我想从 Java 管理 elasticsearch 的启动和停止。有什么简单/好的方法可以做到这一点?

我们正在尝试在我们的产品中部署 ElasticSearch,我们希望在我们自己的产品中维护客户机器上的 ElasticSearch 实例,而现在每件事都依赖于从 es.bat 或其他东西启动 ElasticSearch 实例.

顺便说一句,谁能给我一个示例,说明如何围绕 ElasticSearch 的 Jest API 模拟测试一些代码,这样我就可以对调用 ElasticSearch 的东西进行单元测试,而无需启动 ElasticSearch 实例?

【问题讨论】:

    标签: java elasticsearch


    【解决方案1】:

    启动一个 elasticsearch 实例非常简单。你只需要使用Java API。这意味着您必须将elasticsearch依赖添加到您的项目并创建一个节点,如reference中所述:

    // on startup
    Node node = nodeBuilder().node();
    Client client = node.client();
    
    // on shutdown
    node.close();
    

    创建节点后,它的行为将与从命令行启动的节点完全相同。您可以使用创建的客户端对象与它进行交互,但默认情况下,它还会打开 9200 和 9300(如果忙,则打开后续端口)端口用于休息调用和节点间通信。

    【讨论】:

    • 感谢您的回复。我曾假设这需要启动 ElasticSearch 来连接它,因此需要客户端,但是构建节点是有意义的……太棒了!我很快就能试试。很高兴这比我想象的要容易。
    • 您会发现它是多么简单 :) 在您确定它有用之后,您可能想要投票/接受您的答案。 ;)
    • 如果没有静态导入,NodeBuilder.nodeBuilder()
    • 它在 5.x 中不被支持,但是你仍然可以让它非正式地工作:stackoverflow.com/questions/41298467/…
    猜你喜欢
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    • 2018-08-30
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多