Elasticsearch Python API 中的持久连接是什么意思?



我正在使用Python Elasticsearch API与应用程序中的ES进行交互。目前,一旦应用收到用户请求,它就会执行esclient = Elasticsearch("127.0.0.1"),然后使用此esclient搜索所需的数据。但我最近读到ES有持久的连接。所以

  1. 我应该将esclient保存在某个地方并重复使用吗?如果是,我该怎么做?
  2. 如果我在请求后忘记esclient并下次打开一个新的,会不会有一些资源泄漏?如果是,我该如何解决这个问题/关闭打开的连接?

此外,memcached/Redis python API也有同样的问题。在每个用户请求期间,我确实多次client = Client("127.0.0.1")

抱歉,这似乎是一个愚蠢的问题,但我有点困惑。

提前感谢!

对于 elasticsearch python 客户端,你应该只有一个实例并继续重用它。

如果你创建新的连接,将会有一些连接挂起,但你的应用程序和Elasticsearch本身也将支付创建和维护其他连接的开销,即不好。

如果是 Django 或 Flask 应用程序,你可以创建一个特定于 elasticsearch 的资源文件,并创建一个连接,如下所示,并在任何地方重用它。

ESCLIENT = Elasticsearch()

在任何地方导入 ESCLIENT 并重复使用。

相关内容

  • 没有找到相关文章

最新更新