架构师_程序员_码农网

K Parolayı al
Kayıt Olun

QQ登录

Başlamak için sadece bir adım

Arama
Görüntüleme:31868|Yanıt: 3
打印 上一主题 下一主题

[ASP.NET Core tabanlı Consul hizmeti yüksek kullanılabilirlik

[Bağlantıyı kopyala]
D 跳转到指定楼层
sahibi
发表于 2020-10-16 18:33:07|只看该作者回帖奖励|TersGözat|Okuma Modu
İ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ı
NET'te sadece uygulama sürecinde yayınlanmış, teknik sıkıntılarla karşılaşılmış, başkalarını yanıltmayın.
hbsfgl96.html
发表于 2020-11-30 19:57:38|只看该作者
w174w174w174
Kod çiftçi ağı, sadece uygulama sürecinde yayınlandı, teknik zorluklarla karşılaştı, başkalarını yanıltmayın.
bank bank bank
发表于 2021-7-23 09:31:37|只看该作者
Paylaşım için teşekkürler!
Kod çiftçi ağı, sadece uygulama sürecinde yayınlandı, teknik zorluklarla karşılaştı, başkalarını yanıltmayın.
döşeme tahtaları
发表于 2021-9-3 09:05:16|只看该作者
Yazılım, on binlerce e-postayı içe aktarın, sahte ölüm yok, gecikme yok !!!!
Kod çiftçi ağı, sadece uygulama sürecinde yayınlandı, teknik zorluklarla karşılaştı, başkalarını yanıltmayın.
Geri gönderi yapabilmeniz için giriş yapmanız gerekmektedir Giriş Yap | Kayıt Ol

İntegral kurallarının bu versiyonu


YASAL UYARI: Code Farmer tarafından yayınlanan tüm yazılım, programlama materyalleri veya makaleler sadece öğrenme ve araştırma amaçlı kullanılmak üzere sınırlandırılmıştır; yukarıdaki içerikler ticari veya yasadışı amaçlarla kullanılamaz, aksi takdirde tüm sonuçlar kullanıcıların kendileri tarafından karşılanacaktır. Bu site bilgileri ağdan alınmıştır, telif hakkı anlaşmazlığının bu site ile hiçbir ilgisi yoktur. Yukarıdaki içeriği indirdikten sonraki 24 saat içinde bilgisayarınızdan tamamen kaldırmalısınız. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kaydı satın alın ve daha iyi orijinal hizmet alın. Herhangi bir ihlal varsa, bununla ilgilenmek için lütfen bizimle e-posta yoluyla iletişime geçin.

Posta To:help@itsvse.com

QQ| ( 鲁ICP备14021824号-2)|Sitemap

GMT+8, 2024-9-18 23:49

Hızlı YanıtBaşadön Listeye dön