Talep-Denetim düzeni

Azure Event Grid
Azure Blob Storage

Talep Denetimi düzeni, iş yüklerinin yükü bir mesajlaşma sisteminde depolamadan aktarmasına olanak tanır. Desen yükü bir dış veri deposunda depolar ve yükü almak için bir "talep denetimi" kullanır. Talep denetimi benzersiz, belirsiz bir belirteç veya anahtardır. Yükü almak için, uygulamaların talep denetimi belirtecini dış veri deposuna sunmaları gerekir.

Bağlam ve sorun

Geleneksel mesajlaşma sistemleri, yüksek hacimli küçük iletileri yönetmek için iyileştirilmiştir ve genellikle işleyebileceği ileti boyutu üzerinde kısıtlamalara sahiptir. Büyük iletiler yalnızca bu sınırları aşma riskiyle kalmaz, aynı zamanda mesajlaşma sistemi bunları depoladığında tüm sistemin performansını düşürebilir.

Çözüm

Talep Denetimi düzenini kullanın ve mesajlaşma sistemine büyük iletiler göndermeyin. Bunun yerine yükü bir dış veri deposuna gönderin ve bu yük için bir talep denetimi belirteci oluşturun. Mesajlaşma sistemi, bu uygulamaların veri deposundan yükü alabilmesi için alma uygulamalarına talep denetimi belirtecini içeren bir ileti gönderir. Mesajlaşma sistemi yükü hiçbir zaman görmez veya depolamaz.

Talep Denetimi düzeninin diyagramı.

  1. Yük
  2. Veri deposundaki yükü kaydedin.
  3. Talep denetimi belirteci oluşturun ve talep denetimi belirteci ile ileti gönderin.
  4. İleti alın ve talep denetimi belirtecini okuyun.
  5. Yükü alın.
  6. Yükü işleyin.

Talep Denetimi düzeniyle ilgili sorunlar ve dikkat edilmesi gerekenler

Talep Denetimi düzenini uygularken aşağıdaki önerileri göz önünde bulundurun:

  • Tüketilen iletileri silin. İletiyi arşivlemeniz gerekmiyorsa, alıcı uygulamalar kullandıktan sonra iletiyi ve yükü silin. Zaman uyumlu veya zaman uyumsuz silme stratejisi kullanın:

    • Zaman uyumlu silme: Tüketen uygulama, tüketimin hemen ardından iletiyi ve yükü siler. Silme işlemini ileti işleme iş akışıyla bağlar ve mesajlaşma iş akışı işlem kapasitesini kullanır.

    • Zaman uyumsuz silme: İleti işleme iş akışının dışındaki bir işlem iletiyi ve yükü siler. Silme işlemini ileti işleme iş akışından ayırır ve mesajlaşma-iş akışı işleminin kullanımını en aza indirir.

  • Deseni koşullu olarak uygulayın. İleti boyutu mesajlaşma sisteminin sınırını aşıyorsa, gönderme uygulamasına Talep Denetimi desenini uygulayan mantığı ekleyin. Daha küçük iletiler için deseni atlayın ve daha küçük iletiyi mesajlaşma sistemine gönderin. Bu koşullu yaklaşım gecikme süresini azaltır, kaynak kullanımını iyileştirir ve aktarım hızını iyileştirir.

Talep Denetimi deseni ne zaman kullanılır?

Aşağıdaki senaryolar, Talep Denetimi düzeni için birincil kullanım örnekleridir:

  • Mesajlaşma sistemi sınırlamaları: İleti boyutları mesajlaşma sisteminizin sınırlarını aştığında Talep Denetimi desenini kullanın. Yükü dış depolama alanına boşaltın. İletiyi yalnızca talep denetimi belirteciyle mesajlaşma sistemine gönderin.

  • Mesajlaşma sistemi performansı: Büyük iletiler mesajlaşma sistemini zorlarken ve sistem performansını düşürürken Talep Denetimi düzenini kullanın.

Aşağıdaki senaryolar, Talep Denetimi düzeni için ikincil kullanım örnekleridir:

  • Hassas veri koruması: Yüklerde mesajlaşma sisteminin görünür olmasını istemeyen hassas veriler olduğunda Talep Denetimi desenini kullanın. Deseni yükteki hassas bilgilerin tümüne veya bölümlerine uygulayın. Hassas verileri doğrudan mesajlaşma sistemi üzerinden iletmeden güvenli bir şekilde sağlayın.

  • Karmaşık yönlendirme senaryoları: Birden çok bileşenden geçen iletiler seri hale getirme, seri durumdan çıkarma, şifreleme ve şifre çözme görevleri nedeniyle performans sorunlarına neden olabilir. Aracı bileşenler tarafından doğrudan ileti işlenmesini önlemek için Talep Denetimi desenini kullanın.

Talep Denetimi deseniyle iş yükü tasarımı

Bir mimar, Azure İyi Tasarlanmış Çerçeve yapılarında ele alınan hedefleri ve ilkeleri ele almak için talep denetimi düzeninin iş yükünün tasarımında nasıl kullanılabileceğini değerlendirmelidir. Örneğin:

Yapı Taşı Bu desen sütun hedeflerini nasıl destekler?
Güvenilirlik tasarımı kararları, iş yükünüzün arızaya karşı dayanıklı olmasına ve hatadan sonra tamamen kurtarılmasını sağlamaya yardımcı olur. Mesajlaşma sistemleri genellikle ayrılmış veri depolarında bulunan güvenilirlik ve olağanüstü durum kurtarmanın aynısını sağlamaz. Verilerin iletiden ayrılması yük için daha fazla güvenilirlik sağlayabilir. Bu ayrım, olağanüstü durumdan sonra yükleri kurtarmanızı sağlayan veri yedekliliğini kolaylaştırır.

- RE:03 Hata modu analizi
- RE:09 Olağanüstü durum kurtarma
Güvenlik tasarımı kararları, iş yükü verilerinin ve sistemlerinin gizliliğini, bütünlüğünü ve kullanılabilirliğini sağlamaya yardımcı olur. Talep Denetimi düzeni, iletilerden hassas verileri ayıklayabilir ve güvenli bir veri deposunda depolayabilir. Bu kurulum daha sıkı erişim denetimleri uygulayarak yalnızca hassas verileri kullanmayı amaçlayan hizmetlerin bu denetimlere erişebilmesini sağlar. Aynı zamanda, bu verileri kuyruk izleme için kullanılanlar gibi ilgisiz hizmetlerden gizler.

- SE:03 Veri sınıflandırması
- SE:04 Segmentlere Ayırma
Maliyet İyileştirme, iş yükünüzün yatırım getirisini sürdürmeye ve geliştirmeye odaklanır. Mesajlaşma sistemleri genellikle ileti boyutuna sınırlar uygular ve artan boyut sınırları genellikle premium bir özelliktir. İleti gövdelerinin boyutunu küçültmek daha ucuz bir mesajlaşma çözümü kullanmanıza olanak sağlayabilir.

- CO:07 Bileşen maliyetleri
- CO:09 Akış maliyetleri
Performans Verimliliği , ölçeklendirmeyi, veri aktarımını ve kod yürütmeyi iyileştirerek iş yükünüzün talepleri verimli bir şekilde karşılamasını sağlar. Talep Denetimi düzeni, büyük iletileri daha etkili bir şekilde yöneterek uygulamaları ve mesajlaşma sistemini gönderme ve alma verimliliğini artırır. Mesajlaşma sistemine gönderilen iletilerin boyutunu küçültür ve alma uygulamalarının yalnızca gerektiğinde büyük iletilere erişmesini sağlar.

- PE:05 Ölçeklendirme ve bölümleme
- PE:12 Sürekli performans iyileştirme

Herhangi bir tasarım kararında olduğu gibi, bu desenle ortaya konulabilecek diğer sütunların hedeflerine karşı herhangi bir dengeyi göz önünde bulundurun.

Talep denetimi deseni örnekleri

Aşağıdaki örneklerde Azure'ın Talep Denetimi Deseninin uygulanmasını nasıl kolaylaştıracakları gösterilmektedir:

  • Azure mesajlaşma sistemleri: Örnekler dört farklı Azure mesajlaşma sistemi senaryosunu kapsar: Azure Kuyruk Depolama, Azure Event Hubs (Standart API), Azure Service Bus ve Azure Event Hubs (Kafka API).

  • Otomatik ve el ile talep denetimi belirteci oluşturma: Bu örnekler, talep denetimi belirtecini oluşturmak için iki yöntem de gösterir. 1-3 kod örneklerinde, gönderen uygulama yükü Azure Blob Depolama aktardığında Azure Event Grid otomatik olarak belirteci oluşturur. Kod örneği 4, yürütülebilir komut satırı istemcisi kullanan el ile belirteç oluşturma işlemini gösterir.

Gereksinimlerinize uygun örneği seçin ve sağlanan bağlantıyı izleyerek kodu GitHub'da görüntüleyin:

Örnek kod Mesajlaşma sistemi senaryoları Belirteç oluşturucu Uygulama alınıyor Veri deposu
Kod örneği 1 Azure Kuyruk Depolama Azure Event Grid İşlev

Yürütülebilir komut satırı istemcisi
Azure Blob Storage
Kod örneği 2 Azure Event Hubs (Standart API) Azure Event Grid İşlev

Yürütülebilir komut satırı istemcisi
Azure Blob Storage
Kod örneği 3 Azure Service Bus Azure Event Grid İşlev

Yürütülebilir komut satırı istemcisi
Azure Blob Storage
Kod örneği 4 Azure Event Hubs (Kafka API) Yürütülebilir komut satırı istemcisi İşlev Azure Blob Storage

Sonraki adımlar

  • Kurumsal Tümleştirme Desenleri sitesinde bu desenin açıklaması bulunur.
  • Başka bir örnek için bkz . Talep Denetimi deseni kullanarak büyük Service Bus iletileriyle ilgilenme (blog gönderisi).
  • Büyük iletileri işlemek için alternatif bir desen, Bölme ve Toplama'dır.
  • NServiceBus gibi kitaplıklar, "veri yolu" işlevleriyle bu desen için kullanıma hazır destek sağlar.