当我使用 ElasticSearch.NET 设置到我的 ElasticSearch 集群的连接时,我使用了如下代码块:
var uris = settingsProvider.ElasticSearchUri.Split(';').Select(x => new Uri(x));
var sniffingConnectionPool = new SniffingConnectionPool(uris);
var connectionConfiguration =
new ConnectionConfiguration(sniffingConnectionPool)
.SniffOnConnectionFault()
.SniffOnStartup();
var client = new ElasticsearchClient(settings: connectionConfiguration);
是否建议我为 ElasticsearchClient
、ConnectionConfiguration
或 SniffingConnectionPool
内存/制作静态/制作单例包装器,以便不必每次搜索时都重建它们?
最佳答案
我没有在文档中看到任何其他建议,但通常我会谨慎行事并避免使用单例,因为文档也没有对线程安全做出任何 promise 。请务必处置任何 IDisposable
,如果您担心性能或内存使用情况,请使用分析器来确定您的工作目标。
关于.net - ElasticSearch.NET 连接/客户端管理生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24210577/