我正在向elasticsearch中提取数百万条记录,并从elasticsearch中提取记录。我正在使用elasticsearch java客户端。我在每个JVM上只创建一个客户端。使用此客户端,将数据提取到elasticsearch中 使用相同的方法从elasticsearch中提取数据。提取的数据写入文件并进行一些分析,再次写入文件并使用数据将数据导入弹性搜索。
1)这是在一个JVM上只创建一个Java客户端并使其保持活动状态的最佳方法吗?
2)或在需要时创建客户端并提取/提取数据,关闭它。
3)或者创建客户端池并重用它。(比如连接池)
这样做的最佳方式是什么?
答案 0 :(得分:1)
这是一个非常好的问题,但根据我在真正可扩展和庞大的 Elasticsearch 系统方面的经验,我在单个 JVM 中没有看到超过一个 ES 客户端,这些客户端是单例和线程安全的,出于以下原因,您也应该坚持使用到每个 JVM 的单个 ES 客户端。