使用建议

编辑

为了最有效地使用 Elasticsearch .NET 客户端,我们建议遵循本文中定义的指导原则。

复用同一个客户端实例

编辑

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

  • 初始化开销仅限于第一次使用。
  • 可以池化和复用 TCP 连接等资源,以提高效率。
  • 序列化开销减少,从而提高性能。

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

首选异步方法

编辑

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