使用建议

编辑

为了实现 Elasticsearch .NET 客户端的最高效使用,我们建议遵循本文档中定义的指导。

重用相同的客户端实例

编辑

在使用 Elasticsearch .NET 客户端时,我们建议使用者在应用程序的整个生命周期中重用 ElasticsearchClient 的单个实例。当重用同一个实例时

  • 初始化开销限制在第一次使用。
  • 诸如 TCP 连接之类的资源可以被池化并重复使用以提高效率。
  • 序列化开销减少,从而提高性能。

ElasticsearchClient 类型是线程安全的,可以在使用应用程序的多个线程之间共享和重用。可以通过创建单例静态实例或在使用依赖注入容器时将类型注册为单例生命周期来实现客户端重用。

优先使用异步方法

编辑

Elasticsearch .NET 客户端在 ElasticsearchClient 上公开了同步和异步方法。我们建议始终优先使用异步方法,这些方法具有 Async 后缀。使用 Elasticsearch .NET 客户端需要向 Elasticsearch 服务器发送 HTTP 请求。访问 Elasticsearch 有时会很慢或延迟,一些复杂的查询可能需要几秒钟才能返回。如果通过调用同步方法阻塞此类操作,则线程必须等到 HTTP 请求完成。在高负载场景下,这会导致线程使用量大幅增加,可能会影响使用应用程序的吞吐量和性能。通过优先使用异步方法,应用程序线程可以在潜在的阻塞任务完成之前继续执行不依赖于 Web 资源的其他工作。