Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 55716|Yanıt: 3

[Kaynak] 【Mimari】ASP.NET Core Consul hizmetlerine dayalı olarak oldukça erişilebilir

[Bağlantıyı kopyala]
2020-10-16 tarihinde 18:33:07 tarihinde yayınlandı | | | |
İ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.

[Mimarlık]. net/c#, Consul temelinde Anahtar/Değer deposunun dağıtık yapılandırmasını uygular
https://www.itsvse.com/thread-9420-1-1.html

Mimari: ASP.NET Core, Consul'a dayalı sıcak güncellemeleri dinamik olarak yapılar
https://www.itsvse.com/thread-9421-1-1.html


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ütfenYanıt




Önceki:Mimari: ASP.NET Core, Consul'a dayalı sıcak güncellemeleri dinamik olarak yapılar
Önümüzdeki:DMP dosya içe aktarma olağanüstü
2020-11-30 tarihinde 19:57:38 tarihinde yayınlandı |
w174w174w174
2021-7-23 09:31:37 tarihinde yayınlandı |
Paylaştığın için teşekkürler
2021-9-3 09:05:16 tarihinde yayınlandı |
yazılım, on binlerce e-posta içe aktar, sahte ölüm yapma, dondurma!!
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com