Kümeleme hizmetleri söz konusu olduğunda, sıradan geliştiricilerin zeekeeper'ın bir dizi inşası ve yapılandırması, ters proxy hizmet ağ geçidi vb. Gibi çok karmaşık şeyler düşünmesi gerektiğine inanıyorum; genel olarak, belirli deneyime ve planlamaya sahip bir ekibin başvurması gerekir. ayağa kalk. Bu makalede, .net çekirdeği altında başka bir küme oluşturma çözümü görebilirsiniz, Beetlex aracılığıyla yüksek kullanılabilirliğe sahip küme hizmetlerini kolayca oluşturabilirsiniz.
Kısa giriş
Beetlex'in Webapi küme uygulaması üçüncü taraf hizmetlerine dayanmaz, ancak Beetlex tarafından tamamlanır; esas olarak İstemci ve politika izleme hizmetlerinin kombinasyonu aracılığıyla kümelenmiş hizmet yükü erişimini uygular. Hizmet yapısı aşağıdadır:
İstemci konfigürasyon merkezinden küme stratejisini aldıktan sonra, yük işlemeyi tek başına gerçekleştirmek için konfigürasyon merkezini terk edecek; çalışma sırasında, güncellenmiş stratejiyi konfigürasyon merkezinden periyodik olarak alacaktır.Bu süreçte, konfigürasyon merkezi kullanılamaz olsa bile, genel hizmet işleme etkilenmeyecektir. Aşağıda, yapılandırma merkezinin politika yönetimidir:
Yönetim merkezi aracılığıyla, farklı URL'lerin yük ağırlığını yapılandırabilirsiniz. Varsayılan olarak, tüm yüklerin üstesinden gelmek için bir * yapılandırabilirsiniz; belirli bir ölçeğe ulaşıldığında, belirli URL kuralları için politikalar yapılandırabilirsiniz. Politikaları yapılandırmanın yanı sıra, merkez ayrıca hizmetler de sağlar Kaynak izleme, ağırlık ayarlamalarını daha kolay hale getirebilir.
uygulama
Daha sonra, Beetlex aracılığıyla yüksek kullanılabilirliğe sahip bir webapi küme hizmetinin nasıl oluşturulacağını tanıtmak için basit bir örnek kullanılmıştır.
Aynısı bir konsol programı oluşturmak, ardından BeetleX.FastHttpApi'ye başvurmak, erişim arayüzünü tanımlamaktır.
ortak arabirim IDataService { string Merhaba (dize adı); }Böyle bir kümelenmiş hizmet tamamlandı.Bazıları bunun açıkça tek bir hizmet olduğunu sorabilir, nasıl yüksek düzeyde erişilebilir bir hizmet kümesi olabilir? Ardından, test süreciyle başa çıkmak için bir dizi stres testi yapacak ve konfigürasyon merkezi aracılığıyla hizmetleri sorunsuz bir şekilde artıracağız.
Yapılandırma yükü
Hedefimiz yüksek kullanılabilirlikli kümelerdir, ancak pratik uygulamalarda böyle bir talebe aynı anda sahip olmak imkansızdır. Küme hizmetlerine olan talep, iş büyüdükçe kademeli olarak ortaya çıkacaktır; daha sonra yukarıdaki tek hizmeti gerçekleştireceğiz Bir stres testinde, stres testi için 40 iş parçacığı açıldı, dağıtım hizmeti sadece iki çekirdek olduğundan, kaynaklar aynı anda boğulur.
Daha sonra, eşzamanlı işlemeyi desteklemek için yeni bir düğüm hizmetine ihtiyaç vardır. Şu anda, yalnızca yeni bir hizmeti dağıtmanız ve yapılandırma merkezine düğümler eklemeniz gerekir.
Yeni bir hizmet eklendikten sonra eşzamanlılık 1W'den 3W'a değişti ve bu ayarlama hiçbir program ayarlaması gerektirmez! Stres testinden sonra iki sunucunun kaynakları nispeten kısıtlı olduğundan, eşzamanlılıkla başa çıkmak için başka bir hizmet eklenir, ancak bu sefer eklenen hizmet ağırlığı önceki ikisinin yalnızca yarısıdır.
Test sonuçlarından, son eklenen hizmet ağırlık ayarına göre ilgili eşzamanlı işlemi taşır.
Yukarıdaki örnekler aracılığıyla, Beetlex aracılığıyla yüksek oranda kullanılabilir bir webapi küme hizmeti oluşturmanın çok basit olduğunu göreceksiniz.
Blog yazarı: Çamurlu Adam
Açık kaynak topluluğu OSC başlıkları, yabancı dil çevirisini, yazılım güncellemelerini, teknik blogları ve diğer yüksek kaliteli içeriği kapsayan en son yüksek kaliteli teknik makaleleri günlük olarak yayınlayın. Açık kaynak topluluğunun OSC başlıklarını takip edin, günlük en son teknik bilgileri alın, tıklayın " daha fazlasını anla "Orijinal makaleyi okuyun.