我使用弹性搜索传输客户端连接到弹性搜索。我尝试过两种方法
1)Singleton客户端在我的整个应用程序中共享。响应时间在1-2s之间
2)每次调用Elastic Search的新客户端实例大约需要7秒才能响应。具体而言,有5个类需要连接ES群集,此方法为每个类创建一个新的传输客户端。
是1)在弹性搜索方面是一个很好的方法,因为通常不建议使用单例数据库连接对象吗?
是否有可用于Elastic Search的连接池机制,就像我们有关系数据库的DBCP一样?
答案 0 :(得分:2)
您的客户应该是单身人士。 来源:http://elasticsearch-users.115913.n3.nabble.com/What-is-your-best-practice-to-access-a-cluster-by-a-Java-client-td4015311.html
答案 1 :(得分:0)
它不一定是单例客户端(“单例”是指一个只能初始化一次的实例)。 您可以保存客户端实例的状态,并将其作为应用程序模块之间的参数传递。这样您就不会将应用程序限制为仅使用一个客户端资源。
我还附上了关于why singeltons are bad
的好参考资料