ASP.NET Core Consul Tabanlı Hizmet Yüksek Erişilebilirliği
- ASP.NET Core
- 16373
|
İnternet projelerinin geliştirilmesinde, hizmetler arasında veri etkileşimi ihtiyacı, kullanıcının sunucudan veri alması, hizmet arayüzünün yüksek kullanılabilirliği özellikle e-ticarette, ödeme sisteminde önemlidir, yüksek kullanılabilirlik aynı zamanda sistemin sağlam olup olmadığının bir ölçüsüdür. Kümeleme durumunda, birçok hizmetin bakımı da zordur.
Consul İncelemesi
Consul, HashiCorp şirketidir ve dağıtılmış sistemlerin uygulanması, hizmet keşfi ve yapılandırması, yerleşik hizmet kaydı ve keşif çerçevesi, dağıtım tutarlılığı protokolü uygulaması, sağlık kontrolleri, Anahtar / Değer depolama, çoklu veri merkezi çözümleri için açık kaynaklı araçların go dili geliştirmesinin kullanımını başlattı. nispeten basit.
Anahtar/Değer deposunun dağıtılmış yapılandırmasını sağlamak için Consul tabanlı Net/c# h ttps:// www.itsvse.com/thread-9420-1-1.html
NET Core tabanlı Consul dinamik yapılandırma sıcak güncellemesi. h ttps:// www.itsvse.com/thread-9421-1-1.html
Consul hizmet keşfi
Consul Hizmet Keşfi nasıl kullanılır?
- Her bilgisayarda İstemci Modunda bir Consul aracısı çalıştırmak, bu aracı yalnızca Consul Kümesi ile en son kayıt bilgilerini verimli bir şekilde değiş tokuş etmekten sorumludur (Lider seçimine dahil değildir) Her bilgisayardaki hizmet hizmeti, hizmetin adı ve hizmetin url'si ile yerel consul aracısına kaydolur Bilgisayar1'de konuşlandırılan ServiceA uygulamasının hizmeti çağırması gerektiğinde, uygulama tarafından sağlanan hizmetin adı ve url'si bilgisayardaki Consul aracısına kaydedilecektir. Bilgisayar1'de konuşlandırılan ServiceA programının ServiceB hizmetini çağırması gerektiğinde, ServiceA programı ServiceB'nin erişim adresini doğrudan yerel bilgisayarın Consul Agent'ından hizmet adı aracılığıyla alır ve ardından doğrudan ServiceB'nin url'sine bir istek gönderir.
Kod aşağıdaki gibidir:
Startup sınıfında aşağıdaki gibi çağrılır:
Sağlık Kontrolü
Konsülün, hizmetin normal çalıştığından emin olmak için düzenli aralıklarla hizmete istek göndermesi gerekir. Sağlık kontrolü arayüzünün konsüle yalnızca 200 durum kodu döndürmesi gerekir, kod aşağıdaki gibidir:
Projeyi başlatma ve hizmeti kaydetme
Kontrolör aşağıdaki gibi bir test yöntemi tanımlar:
Projenin bin dizinine gidiyoruz ve aşağıdaki kod ile komut satırından başlatıyoruz:
Bağlantıyı tarayıcınız üzerinden görüntüleyin:
h ttp://1 27.0.0.1:8500/ui/dc1/services/test.itsvse
h ttp://1 27.0.0.1:8500/v1/catalog/service/test.itsvse
Json verileri aşağıdadır:
[ { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "^". "Düğüm": "DESKTOP-EB7B69D", "Adres": "127.0.0.1", "Datacenter": "dc1", "TaggedAddresses". "TaggedAddresses": { "lan": "127.0.0.1", "wan": "127.0.0.1", "taggedAddresses": { "wan": "127.0.0.1" }, "NodeMeta": { "consul-network-segment": "" }, "ServiceKind": "", "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0", "ServiceName": "test.itsvse", "ServiceTags": [ "test", "itsvse" "ServiceWeights": { "Geçiyor": 1, "Uyarı": 1 "Uyarı": 1 }, "ServiceMeta": {}, "ServiceMeta": {} "ServiceMeta": {}, "ServicePort": 8083, "ServiceEnableTagOverride": false, "ServiceEnableTagOverride": false "ServiceEnableTagOverride": false, "ServiceProxy": { "MeshGateway": {}, "Expose": {} }, "ServiceConnect": {}, "CreateIndex": 1317, "ModifyIndex": 1317, "MeshGateway": {} "ModifyIndex": 1317 }, "ServiceConnect": {} { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", { "Düğüm": "DESKTOP-EB7B69D", { "Adres": "127.0", } "Adres": "127.0.0.1", "Datacenter": "dc1", "TaggedAddresses". "TaggedAddresses": { "lan": "127.0.0.1", "wan": "127.0.0.1", "taggedAddresses": { "wan": "127.0.0.1" }, "NodeMeta": { "consul-network-segment": "" }, "ServiceKind": "", "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228", "ServiceName": "test.itsvse", "ServiceTags": [ "test", "itsvse" "ServiceWeights": { "Geçiyor": 1, "Uyarı": 1 "Uyarı": 1 }, "ServiceMeta": {}, "ServiceMeta": {} "ServiceMeta": {}, "ServicePort": 8082, "ServiceEnableTagOverride": false, "ServiceEnableTagOverride": false "ServiceEnableTagOverride": false, "ServiceProxy": { "MeshGateway": {}, "Expose": {} }, "ServiceConnect": {}, "CreateIndex": 1314, "ModifyIndex": 1314, "MeshGateway": {} "ModifyIndex": 1314 } ]
Konsolosluk Servis Çağrıları
Aşağıdaki kodu içeren yeni bir .net core konsol projesi oluşturun:
Kayıtlı test.itsvse servisini rastgele çağırıyorum ve sonuç aşağıdaki gibi oluyor:
Son olarak, kaynak kodu indirilir:
Misafir, bu yazının gizli içeriğini görüntülemek istiyorsanız lütfen şu adrese yanıt verin |
Önceki makale: [Mimari] Consul tabanlı ASP.NET Core sıcak güncellemelerin dinamik yapılandırmasıSonraki İçerik:dmp dosyası içe aktarma istisnası
|