ElasticSearch.NET连接/客户端管理生命周期

dav*_*sit 6 .net object-lifetime elasticsearch

当我使用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);
Run Code Online (Sandbox Code Playgroud)

难道建议我memoize的/让静态/做一个单包装的ElasticsearchClient,对ConnectionConfiguration,或者SniffingConnectionPool使他们不必每次都让我搜到重建?

bat*_*wad 0

我没有在文档中看到任何其他建议,但通常我会谨慎行事并避免使用单例,因为文档也没有对线程安全做出任何承诺。请务必处理掉所有内容IDisposable,如果您担心性能或内存使用情况,请使用分析器来确定您的工作目标。