【问题标题】:Cache the client connection with ElasticSearch Nest so the first call to the client is fast使用 ElasticSearch Nest 缓存客户端连接,以便快速调用客户端
【发布时间】:2014-06-23 18:08:57
【问题描述】:

我即将使用 NEST 客户端为 ElasticSearch 设置建议搜索。理想情况下,我会从输入的第二个字符开始匹配。但是,我第一次调用客户端需要 600 毫秒。每个后续调用更像是 20 毫秒。有没有办法缓存或准备 NEST 客户端?

我读过这篇文章:Elasticsearch and .NET

我还了解到,我可以创建新客户端或使用相同的客户端实例而不会产生任何影响。

我只想在调用客户端之前让客户端准备好使用,这样用户就不会等待客户端验证自身。

目前,只要用户访问网站,我就会与客户端建立连接,然后将客户端引用保存在会话中。但是,即使我已经建立了连接,第一次搜索仍然很慢。有没有办法预加载/缓存连接,以便在页面加载期间发生延迟?

【问题讨论】:

    标签: elasticsearch nest


    【解决方案1】:

    建立的第一个命中缓存是每个 AppDomain 的。所以你不需要缓存客户端本身。在第一次命中后您要实例化的每个客户端都将是warm

    我已经打开了一张工作票,这样您就可以在应用程序启动时启动预热过程,这样您就不再因预热费用而惩罚系统的第一个用户。

    https://github.com/elasticsearch/elasticsearch-net/issues/742

    【讨论】:

    • 由于是per appdomain,所以这个问题只会在开发环境中存在。如果其他用户没有延迟,影响生产环境中的第一个用户对我来说是一个非常小的问题。
    • 很高兴听到 Brandon 的声音,我仍在继续实施一个可以放置在程序/网站引导过程中的加热器。使用您自己的代码进行性能推理会更容易一些。
    猜你喜欢
    • 2017-12-22
    • 2015-02-19
    • 2023-04-09
    • 2012-09-23
    • 1970-01-01
    • 2020-12-22
    • 2014-10-14
    • 2017-01-02
    • 2015-04-24
    相关资源
    最近更新 更多