İnternet projelerinin geliştirilmesinde, çeşitli hizmetlerle etkileşime girmek gereklidir; kullanıcılar sunucudan veri alır; hizmet arayüzlerinin yüksek erişilebilirliği özellikle e-ticaret ve ödeme sistemlerinde önemlidir; yüksek erişilebilirlik sistemin sağlam olup olmadığını da ölçür. Kümeler söz konusu olduğunda, birçok hizmetin sürdürülmesi de zordur.
Konsolos incelemesi
Consul, HashiCorp tarafından başlatılan Go dilinde geliştirilen açık kaynaklı bir araçtır; dağıtık sistemlerin hizmet keşfi ve yapılandırmasını gerçekleştirmek için kullanılır; yerleşik hizmet kayıt ve keşif çerçevesi, dağıtım tutarlılık protokolü uygulaması, sağlık kontrolü, anahtar/değer depolama ve kullanımı nispeten basit olan çoklu veri merkezi çözümleri içerir.
Konsolos hizmeti keşfi
Konsolos Hizmeti Keşfi Nasıl Kullanılır:
- Her bilgisayarda bir Konsol ajanı çalıştırın; bu sadece en son kayıt bilgilerini Konsolos Kümesi ile verimli şekilde paylaşmaktan sorumludur (lider seçimine katılmadan).
- Her bilgisayardaki hizmet hizmeti, hizmet adını ve hizmetin URL'sini yerel konsolos temsilcisine kaydeder
- Computer1'de konuşlandırılan bir program ServiceB'yi çağırmak zorunda olduğunda, ServiceA programı doğrudan yerel Konsolos Temsilcisinden hizmet adı üzerinden ServiceB'nin erişim adresini alır ve ardından doğrudan ServiceB'nin URL'sine bir talep yapar.
Kod şöyledir:
Startup sınıfında aşağıdaki gibi çağrı yapın:
Sağlık kontrolü
Sağlık kontrolü arayüzü konsolosa sadece 200 durum kodu göndermesi yeterlidir ve kod şu şekildedir:
Projeye başlayın, hizmete kaydolun
Kontrolör aşağıdaki gibi bir test yöntemi tanımlayabilir:
Projenin bin dizinine gidip komut satırından başlatalım, kod şöyle:
Bağlantıyı tarayıcınızdan görüntüleyin:
http://127.0.0.1:8500/ui/dc1/services/test.itsvse
http://127.0.0.1:8500/v1/catalog/service/test.itsvse
JSON verileri şöyledir:
[ { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Node": "MASAÜSTÜ-EB7B69D", "Adres": "127.0.0.1", "Veri Merkezi": "dc1", "TaggedAddresses": { "lan": "127.0.0.1", "wan": "127.0.0.1" }, "NodeMeta": { "konsolos-ağ-segmenti": "" }, "ServiceKind": "", "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0", "ServiceName": "test.itsvse", "ServiceTags": [ "test", "itsvse" ], "ServiceAddress": "127.0.0.1", "ServiceWeights": { "Pas Yapma": 1, "Uyarı": 1 }, "ServiceMeta": {}, "ServicePort": 8083, "ServiceEnableTagOverride": yanlış, "ServiceProxy": { "MeshGateway": {}, "Ortaya Çıkar": {} }, "ServiceConnect": {}, "CreateIndex": 1317, "ModifyIndex": 1317 }, { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Node": "MASAÜSTÜ-EB7B69D", "Adres": "127.0.0.1", "Veri Merkezi": "dc1", "TaggedAddresses": { "lan": "127.0.0.1", "wan": "127.0.0.1" }, "NodeMeta": { "konsolos-ağ-segmenti": "" }, "ServiceKind": "", "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228", "ServiceName": "test.itsvse", "ServiceTags": [ "test", "itsvse" ], "ServiceAddress": "127.0.0.1", "ServiceWeights": { "Pas Yapma": 1, "Uyarı": 1 }, "ServiceMeta": {}, "ServicePort": 8082, "ServiceEnableTagOverride": yanlış, "ServiceProxy": { "MeshGateway": {}, "Ortaya Çıkar": {} }, "ServiceConnect": {}, "CreateIndex": 1314, "ModifyIndex": 1314 }
]
Konsolos hizmeti çağrısı
Aşağıdaki kodla yeni bir .NET Core konsol projesi oluşturun:
Kayıtlı test.itsvse servisini rastgele arıyorum ve sonuç şu şekilde:
Son olarak, kaynak kodu indirme:
Turistler, bu gönderinin gizli içeriğini görmek isterseniz lütfen Yanıt |