使用建议编辑

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

重复使用相同的客户端实例编辑

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

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

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

优先使用异步方法编辑

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