Azure Service Bus Coğrafi Olağanüstü Durum Kurtarma
Service Bus Coğrafi Olağanüstü Durum Kurtarma özelliği, Azure Service Bus uygulamalarını kesintilere ve olağanüstü durumlara karşı yalıtma seçeneklerinden biridir ve öncelikli olarak bileşik uygulama yapılandırmasının bütünlüğünü korumaya yardımcı olmayı amaçlar.
Not
Bu özellik, Azure Service Bus'ın Premium katmanında kullanılabilir.
Coğrafi Olağanüstü Durum Kurtarma özelliği, bir ad alanının (varlıklar, yapılandırma, özellikler) tüm yapılandırmasının birincil ad alanından eşleştirildiği ikincil ad alanına sürekli olarak çoğaltılmasını sağlar ve istediğiniz zaman birincil ad alanından ikincil ad alanına yalnızca bir kez yük devretme işlemi başlatmanızı sağlar. Yük devretme taşıma işlemi, ad alanı için seçilen diğer ad adını ikincil ad alanına yeniden işaret eder ve ardından eşleştirmeyi keser. Yük devretme işlemi başlatıldıktan hemen sonra gerçekleşir.
Dikkat edilmesi gereken önemli noktalar
- Bu özellik, aynı yapılandırmayla işlemlerin anında sürekliliğini sağlar, ancak kuyruklarda, konu aboneliklerinde veya teslim edilemeyen kuyruklarda tutulan iletileri çoğaltmaz. Kuyruk semantiğini korumak için, böyle bir çoğaltma yalnızca ileti verilerinin çoğaltılması değil, coğrafi çoğaltma özelliğinde (Genel Önizleme) sunulan aracıdaki her durum değişikliğinin de çoğaltılması gerekir.
- Birincil ad alanında Service Bus varlıklarına Microsoft Entra rol tabanlı erişim denetimi (RBAC) atamaları ikincil ad alanına çoğaltılamaz. Bunlara erişimin güvenliğini sağlamak için ikincil ad alanında el ile rol atamaları oluşturun.
- Aşağıdaki yapılandırmalar çoğaltılamaz.
- Sanal ağ yapılandırmaları
- Özel uç nokta bağlantıları
- Tüm ağlara erişim etkin
- Güvenilen hizmet erişimi etkin
- Genel ağ erişimi
- Varsayılan ağ eylemi
- Kimlikler ve şifreleme ayarları (müşteri tarafından yönetilen anahtar şifrelemesi veya kendi anahtarını getir (KAG) şifrelemesi)
- Otomatik ölçeklendirmeyi etkinleştirme
- Yerel kimlik doğrulamayı devre dışı bırakma
- Azure Event Grid abonelikleri
- Bölümlenmiş ad alanını bölümlenmemiş bir ad alanıyla eşleştirme desteklenmez.
- Bir varlık için etkinleştirilirse
AutoDeleteOnIdle
, yük devretme gerçekleştiğinde varlık ikincil ad alanında bulunmayabilir. İkincil birincil duruma geldiğinde, meta verilerin parçası olmayan son erişim durumu yeni birincil için kullanılamaz ve varlık temizleme kapsamındaAutoDeleteOnIdle
silinebilir.
İpucu
Kesintiler ve olağanüstü durumlarla başa çıkmak için kuyrukların ve konu aboneliklerinin içeriğini çoğaltmak ve ilgili ad alanlarını etkin/etkin yapılandırmalarda çalıştırmak için bu Coğrafi Olağanüstü Durum Kurtarma özellik kümesine dayanmayın, coğrafi çoğaltma özelliğini kullanın veya çoğaltma yönergelerini izleyin.
Temel kavramlar ve terimler
Coğrafi Olağanüstü Durum Kurtarma özelliği meta veri olağanüstü durum kurtarma uygular ve birincil ve ikincil olağanüstü durum kurtarma ad alanlarına dayanır. Coğrafi Olağanüstü Durum Kurtarma özelliği yalnızca Premium katman için kullanılabilir. Bağlantı diğer ad aracılığıyla yapıldığından bağlantı dizesi değişiklik yapmanız gerekmez.
Bu makalede aşağıdaki terimler kullanılmıştır:
Diğer ad: Ayarladığınız olağanüstü durum kurtarma yapılandırmasının adı. Diğer ad, tek bir kararlı Tam Etki Alanı Adı (FQDN) bağlantı dizesi sağlar. Uygulamalar bir ad alanına bağlanmak için bu diğer ad bağlantı dizesi kullanır. Diğer ad kullanmak, yük devretme tetiklendiğinde bağlantı dizesi değişmemesini sağlar.
Birincil/ikincil ad alanı: Diğer ad alanına karşılık gelen ad alanları. Birincil ad alanı "etkin" olur ve iletileri alır (mevcut veya yeni bir ad alanı olabilir). İkincil ad alanı "pasif" şeklindedir ve ileti almaz. Her ikisi arasındaki meta veriler eşitlenir, bu nedenle her ikisi de herhangi bir uygulama kodu veya bağlantı dizesi değişiklik olmadan iletileri sorunsuz bir şekilde kabul edebilir. Yalnızca etkin ad alanının iletileri aldığından emin olmak için diğer adı kullanmanız gerekir.
Meta veriler: Kuyruklar, konular ve abonelikler gibi varlıklar ve bunların ad alanıyla ilişkili hizmetin özellikleri. Yalnızca varlıklar ve ayarları otomatik olarak çoğaltılır. İletiler çoğaltılamaz.
Yük devretme: İkincil ad alanını etkinleştirme işlemi.
Ayarlama
Aşağıdaki bölüm, ad alanları arasında eşleştirmeyi ayarlamaya yönelik bir genel bakıştır.
Önce mevcut bir birincil ad alanını ve yeni bir ikincil ad alanını oluşturur veya kullanırsınız, ardından ikisini eşleştirebilirsiniz. Bu eşleştirme, bağlanmak için kullanabileceğiniz bir diğer ad sağlar. Diğer ad kullandığınızdan, bağlantı dizesi değiştirmeniz gerekmez. Yük devretme eşleştirmenize yalnızca yeni ad alanları eklenebilir.
Birincil premium katman ad alanını oluşturun.
İkincil premium katman ad alanını farklı bir bölgede oluşturun. Bu adım isteğe bağlıdır. Bir sonraki adımda eşleştirmeyi oluştururken ikincil ad alanını oluşturabilirsiniz.
Azure portalında birincil ad alanınıza gidin.
Soldaki menüden Coğrafi Kurtarma'yı seçin ve araç çubuğunda Eşleştirmeyi başlat'ı seçin.
Eşleştirmeyi başlat sayfasında şu adımları izleyin:
Mevcut ikincil ad alanını seçin veya farklı bir bölgede bir ad alanı oluşturun. Bu örnekte, ikincil ad alanı olarak mevcut bir ad alanı kullanılır.
Diğer Ad için Coğrafi Olağanüstü Durum Kurtarma eşleştirmesi için bir diğer ad girin.
Ardından Oluştur’u seçin.
Aşağıdaki görüntüde gösterildiği gibi Service Bus Geo-DR Diğer Adı sayfasını görmeniz gerekir. Ayrıca, soldaki menüden Coğrafi Kurtarma'ya tıklayarak birincil ad alanı sayfasından Geo-DR Diğer Adı sayfasına gidebilirsiniz.
Diğer adın birincil bağlantı dizesi erişmek için Geo-DR Diğer Adı sayfasında soldaki menüde Paylaşılan erişim ilkeleri'ni seçin. Birincil/ikincil ad alanına doğrudan bağlantı dizesi kullanmak yerine bu bağlantı dizesi kullanın. Başlangıçta, diğer ad birincil ad alanını gösterir.
Genel Bakış sayfasına geçin. Aşağıdaki eylemleri gerçekleştirebilirsiniz:
- Birincil ve ikincil ad alanları arasındaki eşleştirmeyi kesme. Araç çubuğunda Eşleştirmeyi kes'i seçin.
- İkincil ad alanına el ile yük devretme.
Araç çubuğunda Yük Devretme'yi seçin.
Diğer adınızı yazarak ikincil ad alanına yük devretmek istediğinizi onaylayın.
İkincil ad alanına güvenli bir şekilde yük devretmek için Güvenli Yük Devretme seçeneğini AÇIN.
Not
- Güvenli yük devretme, ikincilye geçmeden önce bekleyen Coğrafi Olağanüstü Durum Kurtarma çoğaltmalarının tamamlandığından emin olur. Alternatif olarak, zorlamalı veya el ile yük devretme, ikincil çoğaltmaya geçmeden önce bekleyen çoğaltmaların tamamlanmasını beklemez.
- Şu anda birincil ve ikincil ad alanları aynı Azure aboneliğinde değilse güvenli yük devretme başarısız olur.
Ardından Yük Devretme'yi seçin.
Önemli
Yük devretme ikincil ad alanını etkinleştirir ve birincil ad alanını Coğrafi Olağanüstü Durum Kurtarma eşleştirmesinden kaldırır. Yeni bir Coğrafi Olağanüstü Durum Kurtarma çiftine sahip olmak için başka bir ad alanı oluşturun.
Son olarak, yük devretme gerekip gerekmediğini algılamak için biraz izleme eklemeniz gerekir. Çoğu durumda, hizmet büyük bir ekosistemin bir parçasıdır, bu nedenle otomatik yük devretmeler nadiren mümkündür, genellikle yük devretmelerin kalan alt sistem veya altyapıyla eşitlenmiş olarak gerçekleştirilmesi gerekir.
Service Bus standart - premium
Azure Service Bus Standart ad alanınızı Azure Service Bus Premium'a geçirdiyseniz PS/CLI veya REST API aracılığıyla olağanüstü durum kurtarma yapılandırmasını oluşturmak için önceden var olan diğer adı (Service Bus Standart ad alanı bağlantı dizesi) kullanmanız gerekir.
Bunun nedeni, geçiş sırasında Azure Service Bus standart ad alanı bağlantı dizesi/DNS adınızın Azure Service Bus premium ad alanınızın diğer adı haline gelmesidir.
İstemci uygulamalarınız, olağanüstü durum kurtarma eşleştirmesinin ayarlandığı premium ad alanına bağlanmak için bu diğer adı (yani Azure Service Bus standart ad alanı bağlantı dizesi) kullanmalıdır.
Olağanüstü durum kurtarma yapılandırmasını ayarlamak için Azure portalını kullanırsanız portal bu uyarıyı sizden soyutlar.
Yük devretme akışı
Yük devretme, müşteri tarafından el ile (açıkça bir komut aracılığıyla veya komutu tetikleyen istemciye ait iş mantığı aracılığıyla) ve hiçbir zaman Azure tarafından tetiklemez. Müşteriye Azure'ın omurgası üzerinde kesinti çözümü için tam sahiplik ve görünürlük sağlar.
Yük devretme tetiklendiğinde -
Diğer ad bağlantı dizesi İkincil Premium ad alanına işaret eden şekilde güncelleştirilir.
İstemciler (gönderenler ve alıcılar) otomatik olarak İkincil ad alanına bağlanır.
Birincil ve İkincil premium ad alanı arasındaki mevcut eşleştirme bozuk.
Yük devretme başlatıldıktan sonra -
Başka bir kesinti oluşursa yeniden yük devretme yapabilmek istiyorsunuz. Bu nedenle, başka bir ikincil ad alanı ayarlayın ve eşleştirmeyi güncelleştirin.
Yeniden kullanılabilir duruma geldikten sonra eski birincil ad alanından iletileri çekin. Bundan sonra, Coğrafi Olağanüstü Durum Kurtarma kurulumunuzun dışındaki normal mesajlaşma için bu ad alanını kullanın veya eski birincil ad alanını silin.
Not
Yalnızca başarısız iletme semantiği desteklenir. Bu senaryoda yük devretme işlemi yapıp yeni bir ad alanıyla yeniden eşleştirin. Yeniden başarısız olunması desteklenmez; örneğin, bir SQL kümesinde olduğu gibi.
İzleme sistemleriyle veya özel olarak oluşturulmuş izleme çözümleriyle yük devretmeyi otomatikleştirebilirsiniz. Ancak, bu tür otomasyon, bu makalenin kapsamı dışında olan ek planlama ve çalışma gerektirir.
Yönetim
Örneğin ilk kurulum sırasında yanlış bölgeleri eşleştirdiyseniz, istediğiniz zaman iki ad alanının eşleştirmesini kesebilirsiniz. Eşleştirilmiş ad alanlarını normal ad alanları olarak kullanmak istiyorsanız diğer adı silin.
Var olan ad alanını diğer ad alanı olarak kullanma
Üreticilerin ve tüketicilerin bağlantılarını değiştirememenize neden olan bir senaryonuz varsa, ad alanı adınızı diğer ad olarak yeniden kullanabilirsiniz. GitHub'da örnek koda buradan bakın.
Örnekler
GitHub'da yer alan örneklerde yük devretmenin nasıl ayarlanacağı ve başlatıldığı gösterilmektedir. Bu örnekler aşağıdaki kavramları gösterir:
- Azure Resource Manager'ı Service Bus ile kullanmak, Coğrafi Olağanüstü Durum Kurtarma'yı ayarlamak ve etkinleştirmek için Microsoft Entra Id'de gerekli olan bir .NET örneği ve ayarları.
- Örnek kodu yürütmek için gereken adımlar.
- Var olan bir ad alanını diğer ad olarak kullanma.
- Alternatif olarak PowerShell veya CLI aracılığıyla Coğrafi Olağanüstü Durum Kurtarma'yı etkinleştirme adımları.
- Diğer adı kullanarak geçerli birincil veya ikincil ad alanından gönderme ve alma .
Dikkat edilmesi gereken noktalar
Bu sürümle ilgili dikkat edilmesi gereken aşağıdaki noktalara dikkat edin:
- Yük devretme planlamanızda zaman faktörünü de dikkate almanız gerekir. Örneğin, bağlantıyı 15-20 dakikadan uzun süre kaybederseniz, yük devretmeyi başlatmaya karar vekleyebilirsiniz.
- Hiçbir verinin çoğaltılmış olmaması, şu anda etkin oturumların çoğaltılması anlamına gelir. Ayrıca yinelenen algılama ve zamanlanmış iletiler çalışmayabilir. Yeni oturumlar, yeni zamanlanmış iletiler ve yeni yinelenenler çalışır.
- Karmaşık bir dağıtılmış altyapının yük devretmesi en az bir kez prova edilmelidir.
- Varlıkların eşitlenmesi biraz zaman alabilir ve dakikada yaklaşık 50-100 varlık olabilir. Abonelikler ve kurallar da varlık olarak sayılır.
Özel uç noktalar
Bu bölümde, özel uç noktaları kullanan ad alanlarıyla Coğrafi Olağanüstü Durum Kurtarma kullanılırken dikkat edilmesi gerekenler açıklanmıştır. Genel olarak Service Bus ile özel uç noktaları kullanma hakkında bilgi edinmek için bkz. Azure Service Bus'ı Azure Özel Bağlantı ile tümleştirme.
Yeni eşleştirmeler
Özel uç nokta içeren birincil ad alanı ile özel uç nokta içermeyen ikincil ad alanı arasında bir eşleştirme oluşturmaya çalışırsanız, eşleştirme başarısız olur. Eşleştirme yalnızca hem birincil hem de ikincil ad alanlarının özel uç noktaları varsa başarılı olur. Birincil ve ikincil ad alanları ve özel uç noktaların oluşturulduğu sanal ağlarda aynı yapılandırmaları kullanmanızı öneririz.
Not
Birincil ad alanını özel bir uç nokta ve ikincil ad alanıyla eşleştirmeye çalıştığınızda, doğrulama işlemi yalnızca ikincil ad alanında özel bir uç nokta olup olmadığını denetler. Yük devretme sonrasında uç noktanın çalışıp çalışmadığını denetlemez. Yük devretme sonrasında özel uç nokta ile ikincil ad alanının beklendiği gibi çalıştığından emin olmak sizin sorumluluğunuzdadır.
Özel uç nokta yapılandırmalarının aynı olup olmadığını test etmek için, sanal ağın dışından ikincil ad alanına bir Get queues isteği gönderin ve hizmetten bir hata iletisi aldığınızı doğrulayın.
Mevcut eşleştirmeler
Birincil ve ikincil ad alanı arasında eşleştirme zaten varsa, birincil ad alanında özel uç nokta oluşturma işlemi başarısız olur. Sorunu çözmek için önce ikincil ad alanında özel bir uç nokta oluşturun ve ardından birincil ad alanı için bir uç nokta oluşturun.
Not
İkincil ad alanına salt okunur erişim izni verilse de özel uç nokta yapılandırmalarında güncelleştirmelere izin verilir.
Önerilen yapılandırma
Uygulamanız ve Service Bus için olağanüstü durum kurtarma yapılandırması oluştururken, uygulamanızın hem birincil hem de ikincil örneklerini barındıran sanal ağlara karşı hem birincil hem de ikincil Service Bus ad alanları için özel uç noktalar oluşturmanız gerekir.
İki sanal ağınız olduğunu varsayalım: VNET-1, VNET-2 ve şu birincil ve ikincil ad alanları: ServiceBus-Namespace1-Primary
, ServiceBus-Namespace2-Secondary
. Aşağıdaki adımları uygulamanız gerekir:
- üzerinde
ServiceBus-Namespace1-Primary
, VNET-1 ve VNET-2 alt ağlarını kullanan iki özel uç nokta oluşturun - üzerinde
ServiceBus-Namespace2-Secondary
, VNET-1 ve VNET-2'den aynı alt ağları kullanan iki özel uç nokta oluşturun
Bu yaklaşımın avantajı, Service Bus ad alanından bağımsız olarak uygulama katmanında yük devretmenin gerçekleşebilir olmasıdır. Aşağıdaki senaryoları göz önünde bulundurun:
Yalnızca uygulama yük devretmesi: Burada uygulama VNET-1'de yoktur ancak VNET-2'ye geçer. Her iki özel uç nokta da hem birincil hem de ikincil ad alanları için hem VNET-1 hem de VNET-2'de yapılandırıldığından, uygulama yalnızca çalışır.
Service Bus yalnızca ad alanı yük devretmesi: Her iki özel uç nokta da hem birincil hem de ikincil ad alanları için her iki sanal ağda yapılandırıldığından, uygulama yalnızca çalışır.
Not
Sanal ağın Coğrafi Olağanüstü Durum Kurtarma ile ilgili yönergeler için bkz. Sanal Ağ - İş Sürekliliği.
Rol tabanlı erişim denetimi
Birincil ad alanında Service Bus varlıklarına Microsoft Entra rol tabanlı erişim denetimi (RBAC) atamaları ikincil ad alanına çoğaltılamaz. Bunlara erişimin güvenliğini sağlamak için ikincil ad alanında el ile rol atamaları oluşturun.
Sonraki adımlar
- Coğrafi Olağanüstü Durum Kurtarma REST API başvurusuna buradan bakın.
- GitHub'da Coğrafi Olağanüstü Durum Kurtarma örneğini çalıştırın.
- Diğer adlara ileti gönderen Coğrafi Olağanüstü Durum Kurtarma örneğine bakın.
Service Bus mesajlaşması hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: