Azure IoT İşlemleri yerleşik yerel MQTT aracısı
Önemli
Bu sayfa, önizleme aşamasında olan Kubernetes dağıtım bildirimlerini kullanarak Azure IoT İşlemleri bileşenlerini yönetme yönergelerini içerir. Bu özellik çeşitli sınırlamalarla sağlanır ve üretim iş yükleri için kullanılmamalıdır.
Beta veya önizleme aşamasında olan ya da başka bir şekilde henüz genel kullanıma sunulmamış olan Azure özelliklerinde geçerli olan yasal koşullar için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.
Azure IoT İşlemleri ölçeklenebilir, yüksek oranda kullanılabilir ve Kubernetes'e özel kurumsal sınıf, standartlara uyumlu bir MQTT aracısı içerir. Azure IoT İşlemleri için mesajlaşma düzlemi sağlar, çift yönlü uç/bulut iletişimini etkinleştirir ve uçta olay odaklı uygulamaları destekler.
MQTT uyumluluğu
İleti Kuyruğu Telemetri Aktarımı (MQTT), IoT alanında protokoller arasında lingua franca olarak ortaya çıktı. MQTT'nin basit tasarımı, tek bir aracının aynı anda on binlerce istemciye hizmet vermesine ve basit bir yayımlama-abone olma konu oluşturma ve yönetimine olanak tanır. Birçok IoT cihazı, MQTT'yi yerel olarak kullanıma açık olarak destekler ve IoT protokollerinin uzun kuyruğu aşağı akış çeviri ağ geçitleri tarafından MQTT'de rasyonalize olur.
MQTT aracısı IoT İşlemleri'nde mesajlaşma katmanını temel alır ve hem MQTT v3.1.1 hem de MQTT v5'i destekler. 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ı arka uç katmanı.
Ön uç katmanı, istemci bağlantılarını ve isteklerini işler ve bunları arka uça yönlendirir. Arka uç katmanı, verileri istemci oturumları için istemci kimliği ve konu iletilerinin konu adı gibi farklı anahtarlara göre bölümlere ayırır. Her bölümdeki verileri çoğaltmak için zincir çoğaltma kullanır.
Mimarinin hedefleri şunlardır:
- Hataya dayanıklılık ve yalıtım: Arka uç podları başarısız olursa ileti yayımlama devam eder ve hataların sistemin geri kalanına yayılmasını önler
- 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 iletilerin teslimi
- Esnek ölçeklendirme: Uç ve bulut dağıtımlarını desteklemek için yayımlama ve abone aktarım hızını yatay ölçeklendirme
- Büyük ölçekte tutarlı performans: Zincir çoğaltması nedeniyle ileti gecikme süresi yükünü sınırlayın
- operasyonel kolaylık: Bakımı ve karmaşıklığı basitleştirmek için dış bileşenlere minimum bağımlılık
Yapılandırma
Yapılandırma için MQTT aracısı, aracının davranışının ve işlevselliğinin farklı yönlerini tanımlayan çeşitli Kubernetes özel kaynaklarından oluşur.
- Ana kaynak, kardinalite, bellek kullanım profili ve tanılama ayarları gibi genel ayarları tanımlayan Aracı'dır.
- Bir Aracı, her biri belirtilen hizmet türündeki (NodePort, LoadBalancer veya ClusterIP) gelen MQTT bağlantılarını dinleyen en fazla üç BrokerListener'a sahip olabilir. Her BrokerListener'ın birden çok bağlantı noktası olabilir.
- BrokerListener içindeki her bağlantı noktası bir BrokerAuthentication kaynağı ve Bir BrokerAuthorization kaynağıyla ilişkilendirilebilir. Bunlar, hangi istemcilerin bağlantı noktasına bağlanabileceğini ve aracıda hangi eylemleri gerçekleştirebileceklerini belirleyen kimlik doğrulama ve yetkilendirme ilkeleridir.
Bu nedenle, Broker ve BrokerListener arasındaki ilişki bire çok ve BrokerListener ile BrokerAuthentication/BrokerAuthorization arasındaki ilişki çoka çok olur. Bu kaynaklar için varlık ilişkisi diyagramı (ERD) aşağıdaki gibidir:
Varsayılan olarak, Azure IoT İşlemleri bir varsayılan Aracı, varsayılan BrokerListener ve varsayılan BrokerAuthentication dağıtır. Bu kaynakların tümü varsayılan olarak adlandırılır. Bu kaynaklar birlikte Azure IoT İşlemlerinin çalışması için gereken temel bir MQTT aracısı kurulumu sağlar. Varsayılan kurulum aşağıdaki gibidir:
Önemli
Azure IoT İşlemleri iç bileşenleri arasındaki iletişimde istemeden kesinti yaşanmasını önlemek için varsayılan yapılandırmaları değiştirmemenizi öneririz.
MQTT aracı dağıtımını özelleştirmek için, varsayılan Aracıya BrokerListeners, BrokerAuthentication ve BrokerAuthorization gibi yeni kaynaklar ekleyin .
Aracı kaynağının kendisi sabittir ve dağıtımdan sonra değiştirilemez, ancak yalnızca gelişmiş senaryolarda özelleştirmeye ihtiyaç duyar. Aracı kaynağını özelleştirme hakkında daha fazla bilgi edinmek için bkz . Varsayılan Aracıyı özelleştirme.
Tam dağıtımda, her birinde birden çok bağlantı noktası bulunan birden çok BrokerListener'ınız olabilir ve her bağlantı noktasıyla ilişkilendirilmiş farklı BrokerAuthentication ve BrokerAuthorization kaynakları olabilir.
Örneğin, varsayılan kurulumdan başlayarak şunları eklersiniz:
- İki bağlantı noktası 1883 ve 8883 olan example-lb-listener adlı bir LoadBalancer BrokerListener
- Tek bir bağlantı noktası 1884 (nodePort 31884) ile example-nodeport-listener adlı bir NodePort BrokerListener
- Özel kimlik doğrulama yöntemiyle example-authn adlı bir BrokerAuthentication kaynağı
- Özel yetkilendirme ayarlarınız ile example-authz adlı bir BrokerAuthorization kaynağı
Ardından tüm yeni bağlantı noktalarını yapılandırırsanız aynı BrokerAuthentication ve BrokerAuthorization kaynaklarını kullanırsanız kurulum şöyle görünür:
Bu şekilde, varsayılan kurulumu olduğu gibi tutar ve MQTT aracısı dağıtımını ihtiyaçlarınıza göre özelleştirmek için yeni kaynaklar eklersiniz.
Varsayılan Aracı kaynağı
Her Azure IoT İşlemleri dağıtımı yalnızca bir Aracıya sahip olabilir ve varsayılan olarak adlandırılmalıdır. Azure 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ı Azure 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: Aracının daha fazla bağlantı ve ileti işleme kapasitesini belirler ve pod veya düğüm hataları varsa yüksek kullanılabilirliği artırır.
- Bellek profili: Aracının en yüksek bellek kullanımını ve aracı ölçeği arttıkça bellek kullanımını işlemeyi ayarlar.
- Disk destekli ileti arabelleği: RAM dolduğunda iletileri diske arabelleğe almak için yapılandırma.
- Tanılama ayarları: Günlük düzeyi ve ölçüm 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: Aracı ön ucu ve arka uç podları arasındaki iç trafiği şifreleme yapılandırması.
Varsayılan aracıyı özelleştirme işlemi, Azure CLI veya Azure portalı kullanılarak ilk dağıtım sırasında yapılmalıdır. Farklı Aracı yapılandırma ayarları gerekiyorsa yeni bir dağıtım gerekir.
Dağıtım sırasında varsayılan Aracıyı özelleştirmek için:
Azure IoT İşlemlerini dağıtma kılavuzunu takip ederken, 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'yi kullanın.
Varsayılan Aracı ayarlarını görüntüleme
Varsayılan Aracı ayarlarını görüntülemek için:
- Azure portalında Azure IoT İşlemleri örneğine gidin.
- Bileşenler'in altında MQTT Aracısı'ni seçin.
- Aracı ayrıntıları'nın altında JSON görünümü'nü seçin.
Sonraki adımlar
Azure IoT İşlemlerini Arc özellikli bir Kubernetes kümesine dağıtma