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 IoT İşlemleri, kurumsal düzeyde ve standartlara uygun bir MQTT aracısı içerir. MQTT aracısı ölçeklenebilir, yüksek oranda kullanılabilir ve Kubernetes yereldir. Azure IoT İşlemleri için mesajlaşma düzlemi sağlar, çift yönlü kenardan buluta iletişimi etkinleştirir ve uçta event temelli uygulamalar destekler.
MQTT uyumluluğu
MQTT, IoT alanında ortak bir protokoldür. Basit tasarımı, tek bir aracının basit yayımlama-abone olma konu oluşturma ve yönetimi ile aynı anda binlerce istemciye hizmet sunmasını sağlar. Birçok IoT cihazı MQTT'i yerel olarak destekler. Aşağı akış çeviri ağ geçitleri çeşitli IoT protokollerini MQTT'ye dönüştürür.
MQTT aracısı, Azure IoT İşlemleri'da mesajlaşma katmanını destekler ve MQTT v3.1.1 ve MQTT v5 ile uyumludur. Desteklenen MQTT özellikleri hakkında daha fazla bilgi için bkz . MQTT aracısında MQTT özellik desteği.
Mimari
MQTT aracısı iki ana katmana sahiptir:
- Durum bilgisi olmayan ön uç katmanı
- Durum bilgisi olan ve parçalı sunucu tarafı katmanı
Ön uç katmanı istemci bağlantılarını ve isteklerini işler ve bunları arka uçtan yönlendirir. Arka uç katmanı, istemci oturumları için istemci kimliği ve konu iletileri için konu adı gibi verileri anahtarlara göre bölümler. Arka uç katmanı, her bölüm içindeki verileri kopyalamak için zincir çoğaltmayı kullanır.
Mimarinin hedefleri şunlardır:
- Hataya dayanıklılık ve yalıtım: Arka uç podları başarısız olursa ve hatalar sistemin geri kalanına yayılmazsa ileti yayımlama devam eder.
- Hata kurtarma: Operatör müdahalesi olmadan otomatik hata kurtarma.
- İleti kaybı yok: Bir bölümdeki en az bir ön uç pod ve bir arka uç podu çalışıyorsa iletiler teslim edilir.
- Esnek ölçeklendirme: Yayımlama ve abone aktarım hızının yatay olarak ölçeklenmesi uç ve bulut dağıtımlarını destekler.
- Büyük ölçekte tutarlı performans: Zincir çoğaltması nedeniyle ileti gecikme süresi ek yükünü sınırlar.
- operasyonel kolaylık: Bakımı ve karmaşıklığı basitleştirmek için dış bileşenlere bağımlılığı azaltır.
Yapılandırma
MQTT aracısı yapılandırma için, aracının davranışının ve işlevselliğinin farklı yönlerini tanımlamak için birkaç Kubernetes özel kaynağı kullanır:
- Ana kaynak, kardinalite, bellek kullanım profili ve tanılama ayarları gibi genel ayarları tanımlayan Aracı'dır.
- Bir Aracı kaynağı, her biri belirtilen servis türündeki (,
NodePortveyaLoadBalancer) gelen MQTT bağlantılarını dinleyen en fazla üçClusterIPiçerebilir. Her BrokerListener kaynağının birden çok bağlantı noktası olabilir. - BrokerListener kaynağındaki her bağlantı noktası bir BrokerAuthentication kaynağı ve BrokerAuthorization kaynağıyla ilişkilendirilebilir. Bu kimlik doğrulama ve yetkilendirme ilkeleri, hangi istemcilerin bağlantı noktasına bağlanabileceğini ve aracıda hangi eylemleri gerçekleştirebileceklerini belirler.
Önemli
Aracı dinleyicilerini yönetmek için Azure portalını veya Azure CLI kullanın.
Broker ve BrokerListener arasındaki ilişki bire çok olurken, BrokerListener ile BrokerAuthentication/BrokerAuthorization arasındaki ilişki çoka çok olur. Bu kaynaklar için varlık ilişkisi diyagramı şöyledir:
Varsayılan olarak, IoT Operasyonları bir varsayılan Aracı, bir varsayılan BrokerListener ve bir varsayılan BrokerAuthentication dağıtır. Bu kaynakların tümü varsayılan olarak adlandırılır. Bu kaynaklar birlikte IoT İşlemlerinin çalışması için gereken temel bir MQTT aracı kurulumu sağlar. Varsayılan kurulum:
Önemli
Önyapılandırılmış BrokerListener, BrokerAuthentication veya BrokerAuthorization kaynaklarını değiştirmeyin veya silmeyin. Azure IoT İşlemleri'ın dahili bileşenleri bu kaynaklara bağlıdır.
Müşteri erişimini özelleştirmek için kendi BrokerListener, BrokerAuthentication ve BrokerAuthorization kaynaklarınızı oluşturun ve bunları varsayılan Broker ile ilişkilendirin. Ön yapılandırma kaynaklarını değiştirmeyin veya değiştirmeyin.
“Broker” kaynağı sabittir ve dağıtımdan sonra değiştirilemez, ancak yalnızca ileri düzey senaryolarda özelleştirme gerektirir. Aracı kaynağını özelleştirme hakkında daha fazla bilgi için bkz. Varsayılan Aracı Özelleştirme.
Tam dağıtımda, her birinde birden çok bağlantı noktası olan birden çok BrokerListener'ınız olabilir ve her bağlantı noktasının kendisiyle ilişkilendirilmiş farklı BrokerAuthentication ve BrokerAuthorization kaynakları olabilir.
Örneğin, varsayılan kurulumdan başlayarak şunları eklersiniz:
- Example-lb-listener adında, iki bağlantı noktası 1883 ve 8883 olan bir LoadBalancer BrokerListener.
-
example-nodeport-listener adlı bir NodePort BrokerListener, tek bağlantı noktası 1884 (
nodePort31884). - Özelleştirilmiş kimlik doğrulama yöntemi kullanan example-authn adlı bir BrokerAuthentication kaynağı.
- Özel yetkilendirme ayarlarınızla, example-authz adlı bir BrokerAuthorization kaynağı.
Tüm yeni bağlantı noktalarını aynı BrokerAuthentication ve BrokerAuthorization kaynaklarıyla yapılandırırsanız kurulum şöyle görünür:
Bu yaklaşım varsayılan kurulumu olduğu gibi tutar ve MQTT aracı dağıtımını özelleştirmek için yeni kaynaklar eklemenize olanak tanır.
Varsayılan Aracı kaynağı
Her IoT İşlemleri dağıtımı yalnızca bir aracıya sahip olabilir ve varsayılan olarak adlandırılmalıdır. IoT İşlemlerinin çalışması için varsayılan aracı kaynağı gereklidir. Sabittir ve dağıtımdan sonra değiştirilemez.
Dikkat
Varsayılan aracı kaynağını silmeyin. Bunun yapılması IoT İşlemleri iç bileşenleri arasındaki iletişimi kesintiye uğratır ve dağıtım çalışmayı durdurur.
Varsayılan aracıyı özelleştirme
Çoğu kurulum için varsayılan aracı kaynağını özelleştirmek gerekmez. Özelleştirme gerektiren ayarlar şunlardır:
- Kardinalite: Broker'ın daha fazla bağlantı ve mesaj işleme kapasitesini belirler ve pod veya düğüm hatalarında yüksek kullanılabilirliği artırır.
- Bellek profili: Brokerın en yüksek bellek kullanımını ve broker ölçeklendikçe bellek kullanımını nasıl yöneteceğini ayarlar.
- Disk destekli ileti arabelleği: RAM dolduğunda iletileri diske arabelleğe almak için yapılandırma.
- Tanılama ayarları: Log düzeyi ve metrik uç noktası gibi tanılama ayarları için yapılandırma.
- Gelişmiş MQTT istemci seçenekleri: Oturum süre sonu, ileti süre sonu ve etkin tutma ayarları gibi gelişmiş MQTT istemci seçenekleri için yapılandırma.
- İç trafiğin şifrelenmesi: Broker ön yüzü ve arka uç podları arasındaki iç trafiği şifreleme yapılandırması.
Varsayılan aracıyı yalnızca ilk dağıtım sırasında Azure CLI veya Azure portalını kullanarak özelleştirebilirsiniz. Farklı aracı yapılandırma ayarlarına ihtiyacınız varsa yeni bir dağıtım gereklidir.
Dağıtım sırasında varsayılan Aracıyı özelleştirmek için dağıtım yönteminizin yönergelerini izleyin:
IoT İşlemlerini dağıtmak için kılavuzu izlediğinizde, Yapılandırma bölümünde MQTT aracı yapılandırması bölümüne bakın. Burada kardinalite ve bellek profili ayarlarını özelleştirebilirsiniz. Disk destekli ileti arabelleği ve gelişmiş MQTT istemci seçenekleri gibi diğer ayarları yapılandırmak için Azure CLI kullanın.
Önemli
İlk dağıtımdan sonra aracı kaynağını güncelleştiremezsiniz. Dağıtım sonrası kardinalite, bellek profili veya disk arabelleğinde yapılandırma değişikliklerine izin verilmez.
Geçici bir çözüm olarak, Azure IoT İşlemleri az iot ops create komutuyla dağıtırken, MQTT aracısı için JSON yapılandırma dosyasıyla --broker-config-file parametresini ekleyebilirsiniz. Daha fazla bilgi için bkz . Dağıtım planlaması.
Varsayılan aracı ayarlarını görüntüleme
Varsayılan aracı ayarlarını görüntülemek için:
- Azure portalında IoT İşlemleri örneğine gidin.
- Bileşenler'in altında MQTT Aracısı'ni seçin.
- Aracı ayrıntıları altında JSON görünümü'nü seçin.