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

标签 .net elasticsearch object-lifetime

当我使用 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);

是否建议我为 ElasticsearchClientConnectionConfigurationSniffingConnectionPool 内存/制作静态/制作单例包装器,以便不必每次搜索时都重建它们?

最佳答案

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

关于.net - ElasticSearch.NET 连接/客户端管理生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24210577/

相关文章:

c# - Google Pay 通行证

.NET 中的 java.lang.IllegalStateException?

c# - WPF:如何从不同程序集中的窗口开始

Elasticsearch 在加密 channel 上接收到明文流量,关闭连接 Netty4TcpChannel

ruby - Rails 对象生命周期 - 跨事务对象创建和销毁

c++ - 在 C++ 中检查不变量

c++ - 使用没有内联代码的 dll 时出现 LNK2028 和 LNK2019 错误

elasticsearch - 动态场 Elasticsearch 的问题

elasticsearch - Elasticsearch 和Spark

c++ - 数组和隐式生命周期对象创建