Aracılığıyla paylaş


Azure SignalR'de coğrafi çoğaltma

Yerel varlık arayan veya sağlam bir yük devretme sistemi gerektiren şirketler genellikle hizmetleri birden çok Azure bölgesine dağıtmayı tercih eder. Azure SignalR'de coğrafi çoğaltmanın tümleştirilmesiyle birlikte, çok bölgeli senaryoları yönetmek önemli ölçüde daha kolay hale gelmiştir.

Coğrafi çoğaltma kullanmanın avantajları

  • Bölgesel kesintiye karşı daha dayanıklı: Bölgesel bir kesinti oluşursa Azure SignalR DNS, diğer bölgelerdeki iyi durumdaki çoğaltmalara çözümlenir.
  • Bölgeler Arası İletişim. Farklı çoğaltmalar birbirleriyle aynı örnekmiş gibi iletişim kurabilir.
  • Gelişmiş ağ hızı: Coğrafi olarak dağınık istemciler en yakın çoğaltmaya bağlanır. Bu çoğaltmalar Azure genel ağ omurgası üzerinden iletişim kurarak hızlı ve kararlı ağ iletişimi sağlar.
  • Paylaşılan yapılandırmalar. Tüm çoğaltmalar birincil Azure SignalR Hizmeti kaynağının yapılandırmasını korur.

Önkoşullar

  • Premium katmanında bir Azure SignalR Hizmeti.

Örnek kullanım örneği

Contoso, müşteri tabanı ABD ve Kanada'ya yayılmış bir sosyal medya şirketidir. Contoso, bu müşterilere hizmet vermek ve birbirleriyle iletişim kurmalarına izin vermek için hizmetlerini Orta ABD'de çalıştırır. Azure SignalR Hizmeti, kullanıcı bağlantılarını işlemek ve kullanıcılar arasındaki iletişimi kolaylaştırmak için kullanılır. Contoso'nun son kullanıcıları çoğunlukla telefon kullanıcılarıdır. Uzun coğrafi mesafeler nedeniyle, Kanada'daki son kullanıcılar yüksek gecikme süresi ve düşük ağ kalitesiyle karşılaşabilir.

İki ülkeden gelen trafiği işlemek için bir Azure SignalR örneği kullanma diyagramı.

Contoso, coğrafi çoğaltma özelliğinin ortaya çıkmasından önce Kanada kullanıcılarına hizmet vermek için Orta Kanada'da başka bir Azure SignalR Hizmeti ayarlayabilir. Coğrafi olarak daha yakın bir Azure SignalR Hizmeti ayarlayarak, son kullanıcılar artık daha iyi ağ kalitesine ve daha düşük gecikme süresine sahip olur.

Ancak, birden çok Azure SignalR Hizmeti yönetmek bazı zorluklar getirir:

  1. Kanada ve ABD kullanıcıları arasında konuşmayı etkinleştirmek için bölgeler arası iletişim mekanizması gerekir.
  2. Geliştirme ekibinin her birinde ayrı etki alanı ve bağlantı dizesi olan iki ayrı Azure SignalR Hizmeti yönetmesi gerekir.
  3. Bölgesel bir kesinti olursa trafiğin başka bir bölgeye geçiş yapması gerekir.

İki ülkeden gelen trafiği işlemek için iki Azure SignalR örneği kullanma diyagramı.

Coğrafi çoğaltmadan yararlanma

Contoso, yeni coğrafi çoğaltma özelliğiyle artık Orta Kanada'da bir çoğaltma oluşturarak yukarıda belirtilen engelleri etkili bir şekilde aşabilir.

İki ülkeden gelen trafiği işlemek için çoğaltma ile tek bir Azure SignalR örneği kullanma diyagramı.

SignalR çoğaltması oluşturma

Çoğaltma oluşturmak için Azure portalında SignalR Çoğaltmaları dikey penceresine gidin ve çoğaltma oluşturmak için Ekle'ye tıklayın. Oluşturma işleminden sonra otomatik olarak etkinleştirilir.

Portalda Azure SignalR için çoğaltma oluşturma işleminin ekran görüntüsü.

Oluşturma işleminden sonra, çoğaltma adına tıklayarak çoğaltmanızı portalda görüntüleyebilir/düzenleyebilirsiniz.

Azure SignalR çoğaltma kaynağının genel bakış dikey penceresinin ekran görüntüsü.

Fiyatlandırma ve kaynak birimi

Her çoğaltmanın kendi unit ve autoscale settingsvardır.

Çoğaltma, Azure SignalR Hizmeti Premium katmanının bir özelliğidir. Her çoğaltma kendi birimine ve giden trafiğe göre ayrı olarak faturalandırılır. Ücretsiz ileti kotası da ayrı olarak hesaplanır.

Önceki örnekte Contoso, Orta Kanada'da bir çoğaltma eklemektedir. Contoso, Premium Fiyat'taki birimine ve iletisine göre Orta Kanada'daki çoğaltma için ödeme yapar.

Bölgeler arası giden trafik için çıkış ücretleri olacaktır. Bir ileti çoğaltmalar arasında aktarılır ve aktarımdan sonra bir istemciye veya sunucuya başarıyla gönderilirse, giden ileti olarak faturalandırılır.

Bir çoğaltmayı sil

Azure SignalR Hizmeti için bir çoğaltma oluşturduktan sonra, artık gerekli değilse istediğiniz zaman silebilirsiniz.

Azure portalında bir çoğaltmayı silmek için:

  1. Azure SignalR Hizmeti gidin ve Çoğaltmalar dikey penceresini seçin. Silmek istediğiniz çoğaltmaya tıklayın.
  2. Çoğaltmaya genel bakış dikey penceresinde Sil düğmesine tıklayın.

SignalR çoğaltmasının nasıl çalıştığını anlama

Aşağıdaki diyagramda SignalR Çoğaltmalarının işlevselliğine ilişkin kısa bir çizim yer almaktadır:

Azure SignalR çoğaltmasının kemerinin diyagramı.

  1. İstemci, uygulama sunucusuyla anlaşmaya varır ve Azure SignalR hizmetine bir yeniden yönlendirme alır. Ardından SignalR hizmetinin Tam Etki Alanı Adı (FQDN) — contoso.service.signalr.netsorununu çözer. Bu FQDN, en yakın bölgesel SignalR örneğinin Kurallı Adını (CNAME) döndüren Traffic Manager'ı gösterir.
  2. Bu CNAME ile istemci, bölgesel örneğe (Çoğaltma) bir bağlantı kurar.
  3. İki çoğaltma verileri birbiriyle eşitler. Bir çoğaltmaya gönderilen iletiler gerekirse diğer çoğaltmalara aktarılır.
  4. Bir çoğaltmanın Traffic Manager (TM) tarafından gerçekleştirilen sistem durumu denetimini başarısız olması durumunda, TM başarısız örneğin uç noktasını etki alanı çözümleme işleminin dışında tutar. Ayrıntılar için aşağıdaki Dayanıklılık ve Olağanüstü Durum Kurtarma bölümüne bakın

Not

  • Veri düzleminde birincil Azure SignalR kaynağı, çoğaltmalarıyla aynı şekilde çalışır

Dayanıklılık ve olağanüstü durum kurtarma

Azure SignalR Hizmeti, çoğaltmalarına yönelik sistem durumu denetimleri ve DNS çözümlemesi için bir trafik yöneticisi kullanır. Normal koşullarda, tüm çoğaltmalar düzgün çalıştığında istemciler en yakın çoğaltmaya yönlendirilir. Örneğin:

  • yakın eastus istemciler içinde eastusbulunan çoğaltmaya yönlendirilir.
  • Benzer şekilde, yakın westus istemciler içindeki westusçoğaltmaya yönlendirilir.

Eastus'ta bölgesel bir kesinti olması durumunda (aşağıda gösterilmiştir), trafik yöneticisi bu bölge için sistem durumu denetimi hatasını algılar. Ardından, bu hatalı çoğaltmanın DNS'i trafik yöneticisinin DNS çözümleme sonuçlarından dışlanır. 90 saniye olarak ayarlanmış bir DNS Yaşam Süresi (TTL) süresinden sonra içindeki istemciler eastus içindeki çoğaltmaya westusbağlanmak için yeniden yönlendirilir.

Azure SignalR çoğaltma yük devretme diyagramı.

içindeki eastus sorun çözüldükten ve bölge yeniden çevrimiçi olduktan sonra sistem durumu denetimi başarılı olur. Bu durumda içindeki eastus istemciler, bir kez daha kendi bölgelerindeki çoğaltmaya yönlendirilir. Bağlı istemciler mevcut bağlantılar kapatılana kadar etkilenmeyeceği için bu geçiş sorunsuz olur.

Azure SignalR çoğaltma yük devretme kurtarma diyagramı.

Bu yük devretme ve kurtarma işlemi otomatiktir ve el ile müdahale gerektirmez.

Sunucu bağlantıları için yük devretme ve kurtarma, istemci bağlantılarında olduğu gibi çalışır.

Not

  • Bu yük devretme mekanizması Azure SignalR hizmetine yöneliktir. Uygulama sunucusunda bölgesel kesintiler bu belgenin kapsamı dışındadır.

Çoğaltma uç noktasını devre dışı bırakma veya etkinleştirme

Bir çoğaltmayı ayarlarken, uç noktasını etkinleştirme veya devre dışı bırakma seçeneğiniz vardır. Devre dışı bırakılırsa, birincil FQDN'nin DNS çözümlemesi çoğaltmayı içermez ve bu nedenle trafik buna yönlendirilmeyecektir.

Azure SignalR çoğaltma uç noktası ayarının diyagramı.

Uç nokta oluşturulduktan sonra devre dışı bırakma özelliğini de etkinleştirebilirsiniz. Birincil kaynağın çoğaltmaları dikey penceresinde, çoğaltmanın sağ tarafındaki üç nokta düğmesine tıklayın ve Uç Noktayı Etkinleştir veya Uç Noktayı Devre Dışı Bırak'ı seçin:

Azure SignalR çoğaltma uç noktası değişikliği diyagramı.

Çoğaltmayı silmeden önce uç noktasını devre dışı bırakmayı göz önünde bulundurun. Zaman içinde mevcut bağlantıların bağlantısı kesilir. Yeni bağlantı gelmediği için çoğaltma son olarak boşta olur. Bu, sorunsuz bir silme işlemi sağlar.

Bu özellik bölgesel sorunları gidermek için de yararlıdır.

Not

  • DNS önbelleği nedeniyle, DNS güncelleştirmesinin etkili olması birkaç dakika sürebilir.
  • Mevcut bağlantılar, bağlantı kesilene kadar etkilenmez.

Çoğaltma ekledikten sonra performans üzerindeki etki

Çoğaltmalar etkinleştirildikten sonra istemciler coğrafi konumlarına göre doğal olarak dağıtılır. SignalR, verileri bu çoğaltmalar arasında eşitleme sorumluluğunu üstlenirken, Sunucu Yükü'ne ilişkin ek yükün en yaygın kullanım örnekleri için en düşük düzeyde olduğunu bilmekten memnuniyet duyacaksınız.

Özellikle, uygulamanız genellikle daha büyük gruplara (boyut >10) veya tek bir bağlantıya yayınlanıyorsa eşitlemenin performans etkisi neredeyse fark edilemez. Küçük gruplara (boyut < 10) veya tek tek kullanıcılara ileti iletiniz varsa, biraz daha fazla eşitleme yükü fark edebilirsiniz.

Etkili yük devretme yönetimi sağlamak için her çoğaltmanın birim boyutunu tüm trafiği işleyecek şekilde ayarlamanız önerilir. Alternatif olarak, bunu yönetmek için otomatik ölçeklendirmeyi etkinleştirebilirsiniz.

Daha fazla performans değerlendirmesi için Bkz . Performans.