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 Event Grid MQTT Aracısı'ndaki Shared abonelikleri birden çok istemcinin tek bir konu aboneliğindeki iletileri grup olarak kullanmasına olanak tanıyan ve aracının iletileri istemciler arasında yük dengeli bir şekilde dağıtmasına olanak tanıyan bir messaging desenidir. Her abone her iletiyi almak yerine, paylaşılan grup içindeki yalnızca bir istemci her iletiyi alır ve arka uç işleme sistemleri için ölçeklenebilirliği ve aktarım hızını artırır.
Paylaşılan abonelikler nasıl çalışır?
Standart bir MQTT aboneliğinde, abone olunan her istemci her iletinin bir kopyasını alır. Paylaşılan aboneliklerde aracı, bir istemci grubunu tek bir mantıksal abone olarak ele alır ve iletileri bunlar arasında dağıtır.
- Paylaşılan filtreyle eşleşen her uygulama iletisi, grupta yalnızca bir etkin oturuma teslim edilir
- Dağıtım genellikle grup içinde rastgele bir şekilde yük dengelidir
- İstemci oturumu aynı anda hem paylaşılan hem de paylaşımsız abonelikler içerebilir
- Birden çok grup aynı konuya bağımsız olarak abone olabilir
Paylaşılan abonelik konusu biçimi
Paylaşılan abonelikler aşağıdaki biçimi kullanır:
$share/{group-name}/{topic-filter}
Bileşen:
-
$share→ Paylaşılan aboneliği tanımlar -
{group-name}→ Mantıksal tüketici grubu -
{topic-filter}→ Konu başlığı veya joker karakter aboneliği
Örnek:
$share/order-processors/retail/orders/#
Temel özellikler
- Yük dengeli tüketim: verimli işleme sağlamak için iletiler aynı gruptaki istemciler arasında dağıtılır.
- Yatay ölçeklenebilirlik: Tüketiciler, yayımcıları etkilemeden ölçeği bağımsız olarak genişletebilir.
- Bağımsız tüketici grupları: Birden çok paylaşılan grup, içsel dengeleme yaparken aynı iletileri bağımsız olarak alır.
- Karma abonelik desteği: İstemci aynı oturumda hem paylaşılan hem de paylaşılmayan abonelikleri koruyabilir.
Örnek senaryo: Perakende sipariş işleme
Event Grid MQTT Aracısı kullanarak perakende sipariş işleme senaryolarını göz önünde bulundurun:
- Konu:
retail/orders - Paylaşılan grup:
order-workers - İstemciler: Worker1, Worker2, Worker3
Akışı:
- Siparişler şu şekilde yayımlanır:
retail/orders - Tüm çalışanlar abone olur:
$share/order-workers/retail/orders - Event Grid MQTT Aracısı dağıtır:
- Sipariş 1 → Çalışan1
- Sipariş 2 → Çalışan 2
- Sipariş 3 → Çalışan3
Sistem yatay olarak ölçeklendirilirken her sipariş bir kez işlenir.
Protokol davranışı ve kısıtlamaları
MQTT sürüm desteği
- Yalnızca MQTT 5 özelliği
- MQTT 3.1.1 istemcileri
$share/...denemeye çalıştığında bağlantısı kesilecektir.
İleti teslim semantiği
- Her ileti, grup başına bir istemciye teslim edilir
- Teslimat, en az bir kez semantiğini (QoS 1) izler.
İleti sıralama
- Grup üyeleri arasında katı sipariş garantisi yok
Oturum davranışı
- Oturum süresinin sona ermesi mesaj teslimini etkiler.
- İstemcinin bağlantısı kesilirse ve oturumun süresi dolarsa iletiler yeniden atanabilir
- Kalıcı oturumlar güvenilirliği artırır
Event Grid MQTT Aracısı'ndaki kullanım örnekleri
Paylaşılan abonelikler şunlar için idealdir:
- Yüksek aktarım hızına sahip IoT telemetrisi işleme: Telemetriyi veya olayları birden çok işleme hizmeti arasında dağıtma.
- Arka uç çalışan havuzları / mikro hizmetler: Durum bilgisi olmayan hizmetlerin, olayları yinelenmeden işlemesini etkinleştirin.
- Birleşik Ad Alanı (UNS) tüketicileri: Yüksek aktarım hızına sahip endüstriyel veri akışlarını verimli bir şekilde kullanın.
Paylaşılan abonelikler ne zaman kullanılır?
Aşağıdaki durumlarda paylaşılan abonelikleri kullanın:
- Paralel ileti işlemeye ihtiyacınız vardır.
- Tek bir tüketici yükü kaldıramaz.
- Ölçeklenebilir ve dayanıklı mimariler istiyorsunuz.
- Özel yük dengeleme oluşturmaktan kaçınmak istiyorsunuz.