2014-06-13 16 views
6

, aşağıdaki gibi bir kod bloğu kullanıyorum:ElasticSearch.NET bağlantısı/istemci yönetimi yaşam döngüsü

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); 

mi ben memoize önerilir/ElasticsearchClient, ConnectionConfiguration ya da SniffingConnectionPool için tekil sargılı bir etiket hazırlayın, böylece her aradığımda yeniden yapılandırılmaları gerekmez.

cevap

0

dokümanlar bu da iş parçacığı güvenliği konusunda hiçbir vaatlerde olarak belgelerinde şey aksi tavsiyelerde ama genellikle dikkatli bir tarafında err olur ve singleton önlemek görmedim. IDisposable ürününü attığınızdan emin olun ve performans veya bellek kullanımı konusunda endişeleriniz varsa, çabalarınızı nereye yönlendireceğinizi belirlemek için bir profil oluşturucu kullanın.

0

Gözatıcıyı kullanırken, 5 düğüm kümesinde arama için 800 ms ile 1.2 saniye arasında sürdüğünü fark ettik. Tek bir tane yapalım diye düşündük, böylece sadece bir kez koklayalım. ve .SniffOnConnectionFault (true) ayarlandıysa, eğer Sniffed Node (Düğüm Kapalı) giderse, doğru anlıyorsam başka birini seçer.

Bu model kullanıldı mı ve koklama çok yavaş olduğundan daha iyi bir yolu var mı?

+0

mi yoksa sürekli dışarı birden talepleri yoluyla 800 ms nedir? Müşterinin, müşterinin daha fazla zaman alan ilk istek için ısınması gerektiğini belirten yayınlarını okudum. – TchiYuan

0

Bu eski bir yayında, ancak bu bilgi birine yardımcı olabilir. Elasticsearch belgelerine diyor: Genel olarak

biz tekiz olarak onların ElasticClient örneklerini kayıt millet öneriyoruz. İstemci iş parçacığı güvenlidir, bu nedenle örnek iş parçacığı arasında paylaşım iyidir. sadece ilk talep üzerine 800 ms

https://www.elastic.co/guide/en/elasticsearch/client/net-api/2.x/lifetimes.html