Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Kuyruk Depolama, eşzamansız işleme için iletileri depolar. Bu makalede, çok kiracılı çözümler için bölümleme stratejileri, yalıtım modelleri ve Queue Storage özellikleri açıklanmaktadır. İleti yükünü dağıtmanıza, kiracıların iletilerini yalıtmanıza ve erişimi, şifrelemeyi ve kullanımı yönetmenize yardımcı olabilecek yönergeler sağlar.
Bölümleme stratejileri
Kuyruk Depolama, bir kuyruk içinde bölüm anahtarını veya alt kuyruğu kullanıma sunmaz. Kuyruk, ileti yükünü dağıtmak için kullanabileceğiniz en küçük sınırdır ve depolama hesabı bir sonraki sınırdır. Paylaşılan kuyruk kiracıya özgü aktarım hızı veya performans yalıtımı sağlamaz.
1 KiB olan iletiler için tek bir kuyruğun hedef aktarım hızı saniyede 2.000 iletiye kadardır ve depolama hesabının istek hızı saniyede en fazla 20.000 iletidir. İleti boyutu ve erişim desenleri, iş yükünüzün elde ettiği aktarım hızını etkiler. Kuyruk iletileri en fazla 64 KiB olabilir. Daha büyük iletiler veya gelişmiş aracı özellikleri için Azure Service Bus kullanmayı göz önünde bulundurun.
İş yükünüz kuyruk başına hedefi aşabiliyorsa iletileri birden çok kuyruğa dağıtın. Yönlendirme ve işlem gereksinimlerinize bağlı olarak kuyrukları kiracı/tenant’a, kiracı/tenant grubuna veya hizmet katmanına, işlevsel iş yüküne, dağıtım birimine veya bölgeye göre bölümleyebilirsiniz. Diğer tenant'larla bir kuyruğu paylaşan yüksek hacimli bir tenant, kuyruğun işleme kapasitesinden orantısız bir pay tüketebilir ve diğer tenant'lar için kısıtlamaya neden olabilir.
Aynı depolama hesabındaki birden çok kuyruk, hesabın kapasitesini ve hesap düzeyi yapılandırmasını paylaşmaya devam eder. Toplam iş yükü depolama hesabı hedefini aşabiliyorsa veya kiracının bağımsız ölçek veya bölgesel yapılandırmaya ihtiyacı varsa, kuyrukları birden çok depolama hesabına dağıtın. Daraltma durumunu izleyin, üstel geri çekilme ile yeniden denemeleri kullanın ve iş yükünüzü belgelenen Kuyruk Depolama ölçeklenebilirlik hedeflerine karşı test edin. Kiracı erişimi ve veri yalıtımı seçenekleri için bkz. Yalıtım modelleri.
Yalıtım modelleri
İleti yükünün nasıl dağıtileceğini belirledikten sonra, uygulanacak kiracı yalıtımı düzeyini belirleyin. Kuyruk Depolama paylaşılan kuyrukları, her kiracı için kuyrukları ve her kiracı için depolama hesaplarını destekler. Aşağıdaki tablo, Kuyruk Depolama için ana kiracı yalıtım modelleri arasındaki farkları özetlemektedir.
| Consideration | Paylaşılan kuyruklar | Her kiracı için kuyruklar | Her kiracı için depolama hesapları |
|---|---|---|---|
| Veri yalıtımı | Düşük. Uygulama yalıtımı uygular. | Düşük-orta | High |
| Performans yalıtımı | Low | Düşük. Kotaların ve sınırların çoğu depolama hesabının tamamı için geçerlidir. | High |
| Dağıtım karmaşıklığı | Low | Orta | High |
| operasyonel karmaşıklık | Low | Orta | High |
| Örnek senaryo | Büyük bir çok kiracılı çözümün paylaşılan bir uygulama katmanı vardır. | Tenant kapsamlı paylaşılan erişim imzası (SAS) URL'leri verilir. | Her kiracının kendi dağıtım damgası vardır. |
Note
Bir yalıtım modeli seçtiğinizde kotaları ve sınırları göz önünde bulundurun. Bu sınırlar Azure hizmet sınırlarını, Kuyruk Depolama ölçeklenebilirlik hedeflerini ve Depolama kaynak sağlayıcısı için ölçeklenebilirlik hedeflerini içerir.
Paylaşılan kuyruklar
Bir kuyruğu paylaşırsanız, tüm kiracıların işleme kapasitesi hedefini paylaşırsınız. Meşgul bir tenant diğer tenantlar için kısıtlamaya neden olabilir. İleti yükünü dağıtma stratejileri için Bölümleme stratejileri konusuna bakın.
Kuyruklar bölümleme veya alt sıra sağlamaz, bu nedenle tüm kiracıların verileri birbirine karışabilir. Uygulamanızın her ileti için tenant'ı tanımlaması ve işleme sırasında yalıtımı zorlaması gerekir. Diğer kiracıların iletilerine erişmemeleri gerekiyorsa, kiracılara paylaşılan kuyruğa doğrudan erişim izni verme.
Her kiracı için kuyruklar
Tek bir depolama hesabı içindeki her kiracı için ayrı kuyruklar oluşturabilirsiniz. Depolama hesabı içinde oluşturabileceğiniz kuyruk sayısıyla ilgili bir sınır yoktur.
Her kiracı için kuyruklar bir yönlendirme ve erişim denetimi sınırı sağlar, ancak performans yalıtımı sağlamaz. Hesaptaki tüm kuyruklar depolama hesabının kapasite ve performans hedeflerini paylaşır.
Bu senaryoda, her kiracının verilerine erişimi yönetmek için SAS dahil Kuyruk Depolama erişim denetimini kullanabilirsiniz.
Her kiracı için dinamik olarak kuyruklar oluşturduğunuzda, uygulama katmanınızın her kiracının kuyruğundaki iletileri nasıl tükettiğine dikkat edin. Gelişmiş senaryolar için, Azure Service Bus kullanmayı göz önünde bulundurun; bu hizmet, oturumlar, ileti otomatik yönlendirme ve konular ile abonelikler gibi özellikleri destekler.
Her kiracı için depolama hesapları
En güçlü yalıtım düzeyi, her kiracı için ayrılmış bir depolama hesabı kullanır. Bu model, bağımsız olarak yenileyebileceğiniz depolama hesabı anahtarlarının tam yalıtımını sağlar. Ayrıca, çözümünüzü her depolama hesabı için sınırların ve kotaların ötesinde ölçeklendirmenize de olanak tanır. Yüksek ileti hacimlerine sahip olan veya bağımsız bölgesel yapılandırma ya da performans hedefleri gerektiren kiracılar için bu modeli göz önünde bulundurun. Ancak tek bir Azure aboneliğinde izin verilen en fazla depolama hesabı sayısını da göz önünde bulundurmanız gerekir.
Çok kiracılılığı destekleyen Kuyruk Depolama özellikleri
Aşağıdaki Queue Storage özellikleri, seçtiğiniz yalıtım modelini uygulamanıza ve çalıştırmanıza yardımcı olabilir.
Paylaşılan erişim imzaları
bir istemci uygulamasından Kuyruk Depolama'yı kullandığınızda, istekleri uygulama katmanınız üzerinden yönlendirmeyi veya istemcilerin doğrudan kuyruğa bağlanmasına izin vermeyi göz önünde bulundurun. Doğrudan istemci erişimi arka uç uygulamalarınızdaki yükü ve ağ atlamalarının sayısını azaltabilir.
paylaşılan erişim imzası (SAS), istemci uygulamalarına kuyruğa sınırlı erişim sağlamanıza olanak tanır. İstemcinin gerçekleştirebileceği işlemleri ve erişime izin verilen süreyi kısıtlayabilirsiniz. Örneğin, kiracının iletileri okumasına veya silmesine izin vermeden kendi kuyruğuna ileti eklemesine izin veren bir SAS yayımlayabilirsiniz.
Uygulama katmanınızdan kısıtlanmış ve kapsamlı SAS belirteçleri vermek için Vale Anahtarı desenini kullanın. Uygulamanızın kimlik doğrulama sistemini kullanarak istemcinin kimliğini doğrulayın, hangi tenant'ın kuyruğuna erişebileceklerini belirleyin ve yalnızca gerekli işlemler için bir belirteç verin.
Depolanan erişim ilkeleri , birden çok hizmet SAS belirteci yayımladığınızda kullanılacak tek bir ilke tanımlamanızı sağlar. Depolanan erişim ilkeleri kullanıcı temsilcisi SAS belirteçleri veya hesap SAS belirteçleri için geçerli değildir.
Kullanıcı temsilcisi SAS
Depolama hesabı anahtarlarınızdan biriyle hizmet SAS'sı veya hesap SAS'i imzalanır. Kullanıcı temsilcisi SAS'sı bunun yerine Microsoft Entra kimlik bilgileriyle güvenli hale getirilir. Uygulama katmanınız kendi yönetilen kimliğini kullanarak bir kullanıcı temsilcisi anahtarı isteğinde bulunur, ardından her kiracı için kapsamı belirlenmiş, sınırlı süreli belirteçler imzalar. Hesap anahtarlarını dağıtmazsınız veya depolamazsınız. Microsoft, tasarımınız bunu destekliyorsa hesap anahtarı SAS'i yerine kullanıcı temsilcisi SAS'sinin kullanılmasını önerir.
Kısa belirteç yaşam sürelerini kullanın ve bir belirtecin güvenliği aşılırsa erişimin nasıl iptal edileceğini planlayın. Uygulama günlüklerinizi Kuyruk Depolama günlükleriyle ilişkilendirmek için, depolama isteklerinde bir istemci istek kimliği (x-ms-client-request-id) atayın ve bunu kiracı kimliğiyle birlikte günlüğe kaydedin.
Kimlik tabanlı erişim denetimi
Kuyruk Depolama, Microsoft Entra ID aracılığıyla kimlik tabanlı erişim denetimi sağlar. Hesap anahtarlarını depolamadan uygulamanızın kuyruklara erişmesini yetkilendirmek için yönetilen kimlikleri ve Azure rol tabanlı erişim denetimini kullanın. Kiracılar doğrudan erişim gerektirdiğinde her kiracının kuyruğuna erişimi sınırlandırın. Kuyruk düzeyinde yetkilendirme, paylaşılan kuyruktaki tek tek kiracıların iletilerini yalıtmaz.
Encryption
Kuyruk Depolama, bekleyen durumdaki verileri şifreler varsayılan olarak Microsoft tarafından yönetilen anahtarlarla. Müşteri tarafından yönetilen anahtarları kullanmak için depolama hesabını, hesabı oluştururken kuyruklar için hesap kapsamlı bir şifreleme anahtarı kullanacak şekilde yapılandırın . Hesap oluşturulduktan sonra bu şifreleme anahtarı kapsamını değiştiremezsiniz.
Kiracılar ayrı müşteri tarafından yönetilen anahtarlar gerektiriyorsa, ayrı depolama hesapları kullanın. Blob Depolama şifreleme kapsamları ve tek tek isteklerde müşteri tarafından sağlanan anahtarlar Kuyruk Depolama için geçerli değildir. kiracı yaşam döngünüzle birlikte anahtar döndürmeyi ve iptali planlayın.
Monitoring
Çok kiracılı bir çözümde, her kiracı için tüketimi ölçmeniz gerekip gerekmediğini göz önünde bulundurun. her kiracı için ileti veya işlem sayısı gibi izlenmesi gereken belirli ölçümleri tanımlayın. Ayrıca, her kiracının kullanım maliyetini izlemek ve birden çok abonelikte geri ödeme özelliğini etkinleştirmek için maliyet ayırmayı kullanabilirsiniz.
Kuyruk Depolama yerleşik izleme özellikleri sağlar. Kiracılar bir kuyruğu paylaştığında, ileti işlemeyi ve kullanımı doğru kiracıyla ilişkilendirebilmeniz için uygulama telemetrinize kiracı tanımlayıcılarını ekleyin.
Kuyrukların veya hesapların ölçeklenebilirlik hedeflerine yaklaştığını tespit etmek için istek oranlarını ve HTTP 500 ile 503 yanıtlarını izleyin. Kullanımı paylaşılan kapasiteyi etkileyen kiracıları tanımlayabilmeniz için bu telemetriyi kiracı tanımlayıcılarıyla ilişkilendirin.
İstek günlüklerini toplayabilir, ardından bunları uygulama telemetrinizle birlikte toplulaştırabilir ve analiz edebilirsiniz. Yüksek hacimli istekler oluşturan çözümlerde, avantajın bu günlükleri yakalama ve işleme maliyetini haklı çıkarıp sağlamadığını göz önünde bulundurun.
Contributors
Microsoft bu makaleyi korur. Bu makaleyi aşağıdaki katkıda bulunanlar yazdı.
Asıl yazar:
- John Downs | Baş Yazılım Mühendisi, Azure Desenleri ve Uygulamaları
Diğer katkıda bulunanlar:
- Dr. Christian Geuer-Pollmann | Baş Müşteri Mühendisi, Azure için FastTrack
- Patrick Horn | Kıdemli Müşteri Mühendisliği Yöneticisi, Azure için FastTrack
- Ben Hummerstone | Baş Müşteri Mühendisi, Azure için FastTrack
- Vic Perdana | Bulut Çözümü Mimarı, Azure ISV
- Daniel Scott-Raynsford | İş Ortağı Çözüm Mimarı, Veri ve Yapay Zeka
- Arsen Vladimirskiy | Azure için FastTrack’te Baş Müşteri Mühendisi
Herkese açık olmayan LinkedIn profillerini görmek için LinkedIn'e oturum açın.