【问题标题】:Does Elastic High Level Rest Client need connection pool implements on my own in appliationElastic High Level Rest Client 是否需要我自己在应用程序中实现连接池
【发布时间】:2022-07-08 15:26:30
【问题描述】:

我在我的应用程序中使用 high-level-rest-client 作为我的 java 客户端,并通过在我的业务服务代码中自动装配 highRestClient 来使用它,这与在数据库连接中使用一些连接池不同。目前,它的性能还可以,但我想知道客户端的底层实现是否使用了某些类型的连接池。如果没有,是否需要我自己使用 high-level-rest-client 实现连接池以提高其性能?

【问题讨论】:

  • 嘿伙计,我建议你暂时不要考虑它(除非你“知道”性能从一开始就很重要)。只要建立你的东西让它工作。如果需要优化,请彻底调查您的瓶颈。不要到处解决你没有的问题。
  • 无论如何,您能否提供更多有关您使用的客户端的详细信息?您的目标是哪个版本的ES 等等...
  • 感谢您的建议,顺便说一下,我使用的是7.9.3版本,它的maven配置如下,org.elasticsearch.clientelasticsearch -rest-high-level-client7​​.9.3
  • 非常感谢。将所有这些信息放入您的问题中,它会使其更具可读性。
  • @Paulo 感谢您的建议,顺便说一下,我使用 ES java 客户端 elasticsearch-rest-high-level-client ,ES 服务器版本是 7.9.3。对于mysql这样的关系型数据库,我们让Alibaba Druid重用连接来减少每次创建连接连接数据库的开销,所以我很好奇是否需要做和ES一样的事情,或者它的官方客户已经考虑了吗?

标签: elasticsearch connection-pooling resthighlevelclient


【解决方案1】:

从官方文档RestHighLevelClient initialization 看来,ES 将连接池化。

高级客户端将在内部创建用于基于提供的构建器执行请求的低级客户端。 该低级客户端维护一个连接池并启动一些线程,因此您应该在您真正完成它时关闭高级客户端,然后它会关闭内部低级客户端释放这些资源。这可以通过关闭来完成

【讨论】:

    猜你喜欢
    • 2020-10-04
    • 2023-04-04
    • 1970-01-01
    • 2015-05-07
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 2021-01-14
    相关资源
    最近更新 更多