对象生命周期和线程安全

编辑

Java API 客户端中有五种具有不同生命周期的对象。

对象映射器
无状态且线程安全,但创建成本可能很高。它通常是在应用程序启动时创建的单例,用于创建传输。
传输
线程安全,通过底层 HTTP 客户端保持网络资源。传输对象与 Elasticsearch 集群关联,必须显式关闭才能释放底层资源,例如网络连接。
客户端
不可变、无状态且线程安全。这些是非常轻量级的对象,仅包装传输并提供 API 端点作为方法。关闭客户端会关闭底层传输。
构建器
可变、非线程安全。构建器是瞬态对象,在调用 build() 后不应重用。
请求和其它 API 对象
不可变、线程安全。如果您的应用程序反复使用相同的请求或请求的相同部分,则可以预先准备这些对象,并在跨多个客户端(具有不同传输)的多个调用中重复使用。