Aracılığıyla paylaş


Azure Event Hubs ve Kafka veri akışı uç noktalarını yapılandırma

Ö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 ile Apache Kafka aracıları arasında çift yönlü iletişim kurmak için bir veri akışı uç noktası yapılandırabilirsiniz. Bu yapılandırma uç nokta, Aktarım Katmanı Güvenliği (TLS), kimlik doğrulaması ve diğer ayarları belirtmenize olanak tanır.

Önkoşullar

Azure Event Hubs

Azure Event Hubs Kafka protokolüyle uyumludur ve bazı sınırlamalarla veri akışlarıyla kullanılabilir.

Azure Event Hubs ad alanı ve olay hub'ı oluştur

İlk olarak Kafka özellikli bir Azure Event Hubs ad alanı oluşturun

Ardından ad alanında bir olay hub'ı oluşturun. Her olay hub'ı bir Kafka konusuna karşılık gelir. Aynı ad alanında birden çok Kafka konu başlığı göstermek için birden çok olay hub'ı oluşturabilirsiniz.

Yönetilen kimliğe izin atama

Azure Event Hubs için bir veri akışı uç noktası yapılandırmak için kullanıcı tarafından atanan veya sistem tarafından atanan yönetilen kimliği kullanmanızı öneririz. Bu yaklaşım güvenlidir ve kimlik bilgilerini el ile yönetme gereksinimini ortadan kaldırır.

Azure Event Hubs ad alanı ve olay hub'ı oluşturulduktan sonra Azure IoT İşlemleri yönetilen kimliğine olay hub'ına ileti gönderme veya alma izni veren bir rol atamanız gerekir.

Sistem tarafından atanan yönetilen kimliği kullanıyorsanız, Azure portalında Azure IoT İşlemleri örneğinize gidin ve Genel Bakış'ı seçin. Azure IoT Operations Arc uzantısından sonra listelenen uzantının adını kopyalayın. Örneğin, azure-iot-operations-xxxx7. Sistem tarafından atanan yönetilen kimliğiniz, Azure IoT Operations Arc uzantısının aynı adı kullanılarak bulunabilir.

Ardından Event Hubs ad alanı >Erişim denetimi (IAM)>Rol ataması ekle'ye gidin.

  1. Rol sekmesinde, Azure Event Hubs Data Sender veya Azure Event Hubs Data Receiver gibi uygun bir rol seçin. Bu, yönetilen kimliğe ad alanındaki tüm olay hub'ları için ileti göndermek veya almak için gerekli izinleri verir. Daha fazla bilgi edinmek için bkz. Event Hubs kaynaklarına erişmek için Microsoft Entra ID ile bir uygulamanın kimliğini doğrulama.
  2. Üyeler sekmesinde:
    1. Sistem tarafından atanan yönetilen kimliği kullanıyorsanız Erişim ata için Kullanıcı, grup veya hizmet sorumlusu seçeneğini belirleyin, ardından + Üyeleri seçin'i seçin ve Azure IoT Operations Arc uzantısının adını arayın.
    2. Kullanıcı tarafından atanan yönetilen kimlik kullanılıyorsa, Erişim ata içinYönetilen kimlik seçeneğini belirleyin, ardından + Üyeleri seçin'i seçin ve bulut bağlantıları için ayarlanmış kullanıcı tarafından atanan yönetilen kimliğinizi arayın.

Azure Event Hubs için veri akışı uç noktası oluşturma

Azure Event Hubs ad alanı ve olay hub'ı yapılandırıldıktan sonra Kafka özellikli Azure Event Hubs ad alanı için bir veri akışı uç noktası oluşturabilirsiniz.

  1. İşlem deneyimindeVeri akışı uç noktaları sekmesini seçin.

  2. Yeni veri akışı uç noktası oluştur'un altında Azure Event Hubs>Yeni'yi seçin.

    Azure Event Hubs veri akışı uç noktası oluşturmak için işlem deneyimini kullanan ekran görüntüsü.

  3. Uç nokta için aşağıdaki ayarları girin:

    Ayarlar Açıklama
    İsim Veri akışı uç noktasının adı.
    Sunucu Event Hubs ana bilgisayarının sunucu adı. Mevcut bir Event Hubs konağı için arama yapabilir veya biçimini <NAMESPACE>.servicebus.windows.netkullanarak konak adını el ile girebilirsiniz.
    Liman Event Hubs konağının bağlantı noktası. Event Hubs için bağlantı noktası 9093.
    Kimlik doğrulama yöntemi Kimlik doğrulaması için kullanılan yöntem. Sistem tarafından atanan yönetilen kimlik veya Kullanıcı tarafından atanan yönetilen kimlik'i seçmenizi öneririz.
  4. Uç noktayı sağlamak için Uygula'yı seçin.

Uyarı

Kafka konusu veya tek olay hub'ı daha sonra veri akışını oluşturduğunuzda yapılandırılır. Kafka konusu, veri akışı iletilerinin hedefidir.

Event Hubs kimlik doğrulaması için bağlantı dizesini kullanma

Önemli

Azure IoT İşlemlerini güvenli ayarlarla etkinleştirmek için, önce bir Azure Key Vault yapılandırılmalı ve iş yükü kimlikleri etkinleştirilmelidir. Sonrasında, gizli bilgileri yönetmek için operasyon deneyimi web kullanıcı arayüzü kullanılabilir. Daha fazla bilgi edinmek için bkz . Azure IoT İşlemleri dağıtımında güvenli ayarları etkinleştirme.

İşlem deneyimi veri akışı uç noktası ayarları sayfasında Temel sekmesini ve ardından Kimlik doğrulama yöntemi>SASL'yi seçin.

Uç nokta için aşağıdaki ayarları girin:

Ayarlar Açıklama
SASL türü öğesini Plain seçin.
Senkronize gizli ad Bağlantı dizesini içeren Kubernetes gizli dizisinin adını girin.
Kullanıcı adı başvurusu veya belirteç sırrı SASL kimlik doğrulaması için kullanılan kullanıcı adı veya belirteç gizli dizisine yapılan atıf. Key Vault listesinden seçin veya yeni bir tane oluşturun. Değer olmalıdır $ConnectionString.
Belirteç gizli anahtarının parola referansı SASL kimlik doğrulaması için kullanılan şifre veya belirteç sırrına atıf. Key Vault listesinden seçin veya yeni bir tane oluşturun. Değerin Endpoint=sb://<NAMESPACE>.servicebus.windows.net/;SharedAccessKeyName=<KEY-NAME>;SharedAccessKey=<KEY> biçiminde olması gerekir.

Başvuru ekle'yi seçtikten sonra Yeni oluştur'u seçerseniz aşağıdaki ayarları girin:

Ayarlar Açıklama
Gizli isim Azure Key Vault'taki gizli anahtarın adı. Daha sonra listeden gizli öğeyi seçmek için hatırlaması kolay bir ad seçin.
Gizli değer Kullanıcı adı için girin $ConnectionString. Parola olarak bağlantı dizesini biçiminde Endpoint=sb://<NAMESPACE>.servicebus.windows.net/;SharedAccessKeyName=<KEY-NAME>;SharedAccessKey=<KEY> girin.
Etkinleştirme tarihini ayarlama Açıksa, gizli bilginin etkin olduğu tarih.
Son kullanma tarihini ayarlama Açıksa, gizli bilginin süresinin sona erdiği tarih.

Gizlilik hakkında daha fazla bilgi edinmek için Azure IoT İşlemlerinde Gizlilik Oluşturma ve Yönetme bölümüne bakın.

Sınırlamalar

Azure Event Hubs , Kafka'nın desteklediği tüm sıkıştırma türlerini desteklemez. Şu anda Azure Event Hubs premium ve ayrılmış katmanlarında yalnızca GZIP sıkıştırması desteklenmektedir. Diğer sıkıştırma türlerinin kullanılması hatalara neden olabilir.

Özel Kafka brokerleri

Event-Hub Olmayan Kafka aracıları için bir veri akışı uç noktası yapılandırmak için konağı, TLS'yi, kimlik doğrulamayı ve diğer ayarları gerektiği gibi ayarlayın.

  1. İşlem deneyimindeVeri akışı uç noktaları sekmesini seçin.

  2. Yeni veri akışı uç noktası oluştur'un altında Özel Kafka Aracısı>Yeni'yi seçin.

    Kafka veri akışı uç noktası oluşturmak için işlem deneyiminin kullanıldığı ekran görüntüsü.

  3. Uç nokta için aşağıdaki ayarları girin:

    Ayarlar Açıklama
    İsim Veri akışı uç noktasının adı.
    Sunucu Kafka aracısının <Kafka-broker-host>:xxxx biçimindeki konak adı. Ana bilgisayar ayarına bağlantı noktası numarasını ekleyin.
    Kimlik doğrulama yöntemi Kimlik doğrulaması için kullanılan yöntem. SASL'yi seçin.
    SASL türü SASL kimlik doğrulamasının türü. Düz, ScramSha256 veya ScramSha512'yi seçin. SASL kullanılıyorsa gereklidir.
    Senkronize gizli ad Gizli dizinin adı. SASL kullanılıyorsa gereklidir.
    Belirteç gizli anahtarının kullanıcı adı referansı SASL belirteç gizli bilgisindeki kullanıcı adına atıf. SASL kullanılıyorsa gereklidir.
  4. Uç noktayı sağlamak için Uygula'yı seçin.

Uyarı

Şu anda işlem deneyimi, kaynak olarak Kafka veri akışı uç noktasının kullanılmasını desteklemez. Kubernetes veya Bicep kullanarak kaynak Kafka veri akışı uç noktasıyla veri akışı oluşturabilirsiniz.

Uç nokta ayarlarını özelleştirmek için daha fazla bilgi için aşağıdaki bölümleri kullanın.

Kullanılabilir kimlik doğrulama yöntemleri

Kafka aracı veri akışı uç noktaları için aşağıdaki kimlik doğrulama yöntemleri kullanılabilir.

Sistem tarafından atanan yönetilen kimlik

Veri akışı uç noktasını yapılandırmadan önce, Azure IoT İşlemleri yönetilen kimliğine Kafka aracısına bağlanma izni veren bir rol atayın:

  1. Azure portalında Azure IoT İşlemleri örneğinize gidin ve Genel Bakış'ı seçin.
  2. Azure IoT Operations Arc uzantısından sonra listelenen uzantının adını kopyalayın. Örneğin, azure-iot-operations-xxxx7.
  3. İzin vermek için ihtiyacınız olan bulut kaynağına gidin. Örneğin, Event Hubs ad alanı >Erişim denetimi (IAM)>Rol ataması ekle'ye gidin.
  4. Rol sekmesinde uygun bir rol seçin.
  5. Üyeler sekmesinde, Erişim ata için Kullanıcı, grup veya hizmet sorumlusu seçeneğini belirleyin, ardından + Üyeleri seçin'i seçin ve Azure IoT İşlemleri yönetilen kimliğini arayın. Örneğin, azure-iot-operations-xxxx7.

Ardından, sistem tarafından atanan yönetilen kimlik ayarlarıyla veri akışı uç noktasını yapılandırın.

İşlem deneyimi veri akışı uç noktası ayarları sayfasında, Temel sekmesini seçin ve ardından Kimlik doğrulama yöntemi olarak >'i tercih edin.

Bu yapılandırma, biçimindeki https://<NAMESPACE>.servicebus.windows.netEvent Hubs ad alanı konak değeriyle aynı olan varsayılan hedef kitleye sahip bir yönetilen kimlik oluşturur. Ancak, varsayılan hedef kitleyi geçersiz kılmanız gerekiyorsa, alanı istediğiniz değere ayarlayabilirsiniz audience .

İşlem deneyiminde desteklenmez.

Kullanıcı atamalı yönetilen kimlik

Kimlik doğrulaması için kullanıcı tarafından atanan yönetilen kimliği kullanmak için önce güvenli ayarların etkinleştirildiği Azure IoT İşlemleri'ni dağıtmanız gerekir. Ardından bulut bağlantıları için kullanıcı tarafından atanan bir yönetilen kimlik ayarlamanız gerekir. Daha fazla bilgi edinmek için bkz . Azure IoT İşlemleri dağıtımında güvenli ayarları etkinleştirme.

Veri akışı uç noktasını yapılandırmadan önce, kullanıcı tarafından atanan yönetilen kimliğe Kafka aracısına bağlanma izni veren bir rol atayın:

  1. Azure portalında izin vermeniz gereken bulut kaynağına gidin. Örneğin, Event Grid ad alanı >Erişim denetimi (IAM)>Rol ataması ekle'ye gidin.
  2. Rol sekmesinde uygun bir rol seçin.
  3. Üyeler sekmesinde, Erişim ata için Yönetilen kimlik seçeneğini belirleyin, ardından + Üyeleri seçin'i seçin ve kullanıcı tarafından atanan yönetilen kimliğinizi arayın.

Ardından, veri akışı uç noktasını kullanıcı tarafından atanan yönetilen kimlik ayarlarıyla yapılandırın.

İşlem deneyimi veri akışı uç noktası ayarları sayfasında Temel sekmesini seçin, ardından Kimlik doğrulama yöntemi> seçeneğini ve Kullanıcı tarafından atanan yönetilen kimlik seçeneğini seçin.

Burada kapsam, yönetilen kimliğin hedef kitlesi olur. Varsayılan değer, Event Hubs ad alanı konak değeriyle aynı formda https://<NAMESPACE>.servicebus.windows.net olarak belirlenmiştir. Ancak, varsayılan hedef kitleyi geçersiz kılmanız gerekiyorsa, Kapsam alanını Bicep veya Kubernetes kullanarak istediğiniz değere ayarlayabilirsiniz.

SASL

Kimlik doğrulaması için SASL kullanmak için SASL kimlik doğrulama yöntemini belirtin ve SASL türünü ve SASL tokenini içeren gizlinin adıyla bir gizli referansı yapılandırın.

İşlem deneyimi veri akışı uç noktası ayarları sayfasında Temel sekmesini ve ardından Kimlik doğrulama yöntemi>SASL'yi seçin.

Uç nokta için aşağıdaki ayarları girin:

Ayarlar Açıklama
SASL türü Kullanılacak SASL kimlik doğrulaması türü. Desteklenen türler : Plain, ScramSha256ve ScramSha512.
Senkronize gizli ad SASL belirtecini içeren Kubernetes gizlisinin adı.
Kullanıcı adı başvurusu veya belirteç sırrı SASL kimlik doğrulaması için kullanılan kullanıcı adı veya belirteç gizli dizisine yapılan atıf.
Belirteç gizli anahtarının parola referansı SASL kimlik doğrulaması için kullanılan şifre veya belirteç sırrına atıf.

Desteklenen SASL türleri şunlardır:

  • Plain
  • ScramSha256
  • ScramSha512

Gizli bilgi, Kafka veri akışı uç noktasıyla aynı ad alanında olmalıdır. Gizli dizi, anahtar-değer çifti olarak SASL belirtecini içermelidir.

Anonim

Anonim kimlik doğrulamasını kullanmak için, Kafka ayarlarının kimlik doğrulama bölümünü Anonim yöntemini kullanacak şekilde güncelleştirin.

İşlem deneyimi veri akışı uç noktası ayarları sayfasında Temel sekmesini ve ardından Kimlik doğrulama yöntemi Yok'u> seçin.

Gelişmiş ayarlar

Kafka veri akışı uç noktası için TLS, güvenilen CA sertifikası, Kafka mesajlaşma ayarları, toplu işlem ve CloudEvents gibi gelişmiş ayarlar ayarlayabilirsiniz. Bu ayarları veri akışı uç noktası Gelişmiş portal sekmesinde veya veri akışı uç noktası kaynağında ayarlayabilirsiniz.

İşlem deneyiminde, veri akışı uç noktası için Gelişmiş sekmesini seçin.

Kafka veri akışı uç noktası gelişmiş ayarlarını ayarlamak için işlem deneyimini kullanan ekran görüntüsü.

TLS ayarları

TLS modu

Kafka uç noktası için TLS'yi etkinleştirmek veya devre dışı bırakmak için TLS ayarlarındaki ayarı güncelleştirin mode .

İşlem deneyimi veri akışı uç noktası ayarları sayfasında Gelişmiş sekmesini seçin ve TLS modu etkin seçeneğinin yanındaki onay kutusunu kullanın.

TLS modu Enabled veya Disabled olarak ayarlanabilir. Mod olarak ayarlanırsa Enabled, veri akışı Kafka aracısı ile güvenli bir bağlantı kullanır. Mod olarak ayarlanırsa Disabled, veri akışı Kafka aracısı ile güvenli olmayan bir bağlantı kullanır.

Güvenilen CA sertifikası

Kafka aracısı ile güvenli bir bağlantı kurmak için Kafka uç noktası için güvenilen CA sertifikasını yapılandırın. Kafka aracısı otomatik olarak imzalanan bir sertifika veya varsayılan olarak güvenilir olmayan bir özel CA tarafından imzalanan bir sertifika kullanıyorsa bu ayar önemlidir.

İşlem deneyimi veri akışı uç noktası ayarları sayfasında Gelişmiş sekmesini seçin, ardından Güvenilen CA sertifikası yapılandırma eşlemesi alanını kullanarak güvenilen CA sertifikasını içeren ConfigMap'i belirtin.

Bu ConfigMap, CA sertifikasını PEM biçiminde içermelidir. ConfigMap, Kafka veri akışı kaynağıyla aynı ad alanında olmalıdır. Örneğin:

kubectl create configmap client-ca-configmap --from-file root_ca.crt -n azure-iot-operations

Tavsiye

Event Hubs hizmeti varsayılan olarak güvenilen bir genel CA tarafından imzalanan bir sertifika kullandığından, Azure Event Hubs'a bağlanırken CA sertifikası gerekli değildir.

Tüketici grubu kimliği

Tüketici grubu kimliği, veri akışının Kafka konusundan gelen iletileri okumak için kullandığı tüketici grubunu tanımlamak için kullanılır. Tüketici grubu kimliği Kafka aracısı içinde benzersiz olmalıdır.

Önemli

Kafka uç noktası kaynak olarak kullanıldığında, tüketici grubu kimliği gerekir. Aksi takdirde, veri akışı Kafka konusundan iletileri okuyamaz ve "Kafka türü kaynak uç noktaları için tanımlanmış bir tüketici grup ID'si olmalıdır" hatasını alırsınız.

İşlem deneyimi veri akışı uç noktası ayarları sayfasında Gelişmiş sekmesini seçin ve ardından Tüketici grubu kimliği alanını kullanarak tüketici grubu kimliğini belirtin.

Bu ayar yalnızca uç nokta kaynak olarak kullanıldığında (yani veri akışı bir tüketici olduğunda) geçerlilik kazanır.

Sıkıştırma

Sıkıştırma alanı Kafka konularına gönderilen iletiler için sıkıştırmayı etkinleştirir. Sıkıştırma, veri aktarımı için gereken ağ bant genişliğini ve depolama alanını azaltmaya yardımcı olur. Ancak sıkıştırma işlemine biraz ek yük ve gecikme de ekler. Desteklenen sıkıştırma türleri aşağıdaki tabloda listelenmiştir.

Değer Açıklama
None Sıkıştırma veya toplu işlem uygulanmaz. Sıkıştırma belirtilmezse hiçbiri varsayılan değer değildir.
Gzip GZIP sıkıştırma ve toplu işlem uygulanır. GZIP, sıkıştırma oranı ile hız arasında iyi bir denge sunan genel amaçlı bir sıkıştırma algoritmasıdır. Şu anda Azure Event Hubs premium ve ayrılmış katmanlarında yalnızca GZIP sıkıştırması desteklenmektedir.
Snappy Hızlı sıkıştırma ve toplu işlem uygulanır. Snappy, orta düzeyde sıkıştırma oranı ve hızı sunan hızlı bir sıkıştırma algoritmasıdır. Bu sıkıştırma modu Azure Event Hubs tarafından desteklenmez.
Lz4 LZ4 sıkıştırma ve toplu işleme uygulanıyor. LZ4, düşük sıkıştırma oranı ve yüksek hız sunan hızlı bir sıkıştırma algoritmasıdır. Bu sıkıştırma modu Azure Event Hubs tarafından desteklenmez.

Sıkıştırmayı yapılandırmak için:

İşlem deneyimi veri akışı uç noktası ayarları sayfasında Gelişmiş sekmesini seçin ve sıkıştırma türünü belirtmek için Sıkıştırma alanını kullanın.

Bu ayar yalnızca uç noktanın veri akışının üretici olduğu bir hedef olarak kullanılması durumunda geçerlilik kazanır.

Gruplama

Sıkıştırmanın yanı sıra, iletileri Kafka konularına göndermeden önce toplu işlemeyi de yapılandırabilirsiniz. Toplu işlem, birden çok iletiyi birlikte gruplandırmanıza ve tek bir birim olarak sıkıştırmanıza olanak tanır; bu da sıkıştırma verimliliğini artırabilir ve ağ ek yükünü azaltabilir.

Alan Açıklama Gerekli
mode Enabled veya Disabled olabilir. Varsayılan değerin nedeni Kafka'nın eşleşmeyen mesajlaşmaya sahip Enabled. Disabled olarak ayarlandığında, toplu işlerin boyutu küçültülerek her seferinde tek bir mesaj içeren bir toplu iş oluşturulur. Hayı
latencyMs İletilerin gönderilmeden önce arabelleğe alınabileceği milisaniye cinsinden maksimum zaman aralığı. Bu zaman aralığına ulaşıldığında, arabelleğe alınan tüm iletiler, kaç tane oldukları veya ne kadar büyük oldukları fark etmeksizin toplu halde gönderilir. Ayarlanmadıysa, varsayılan değer 5'tir. Hayı
maxMessages Gönderilmeden önce tamponlanabilecek en fazla mesaj sayısı. Bu sayıya ulaşılırsa, arabelleğe alınan tüm iletiler, arabelleğe alınma süresi veya büyüklüklerinden bağımsız olarak toplu işlem halinde gönderilir. Ayarlanmadıysa, varsayılan değer 100000'dir. Hayı
maxBytes Gönderilmeden önce arabelleğe alınabilecek en büyük boyut, bayt cinsindendir. Bu boyuta ulaşılırsa, arabelleğe alınan tüm iletiler kaç tane olduklarına veya ne kadar süre arabelleğe alındıklarına bakılmaksızın toplu olarak gönderilir. Varsayılan değer 1000000 'dir (1 MB). Hayı

Örneğin, gecikme sürelerini 1000, maxMessages değerini 100 ve maxBytes değerini 1024 olarak ayarlarsanız, iletiler arabellekte 100 ileti olduğunda veya arabellekte 1.024 bayt olduğunda veya son göndermeden bu yana 1.000 milisaniye geçtiğinde (hangisi önce gelirse) gönderilir.

Toplu işlemi yapılandırmak için:

İşlem deneyimi veri akışı uç noktası ayarları sayfasında Gelişmiş sekmesini seçin ve toplu işlemi etkinleştirmek için Toplu işlem etkin alanını kullanın. Toplu işlem ayarlarını belirtmek için Toplu işlem gecikme süresi, Maksimum bayt sayısı ve İleti sayısı alanlarını kullanın.

Bu ayar yalnızca uç noktanın veri akışının üretici olduğu bir hedef olarak kullanılması durumunda geçerlilik kazanır.

Bölüm işleme stratejisi

Bölümleme stratejisi, mesajların Kafka topic'lerine gönderilirken Kafka bölümlerine nasıl atanacağını denetler. Kafka bölümleri, Kafka konularının paralel işlemeyi ve hataya dayanıklılığı mümkün kılan mantıksal parçalarıdır. Kafka konu başlığındaki her iletinin, iletileri tanımlamak ve sıralamak için kullanılan bir bölüm ve bir ofseti vardır.

Bu ayar yalnızca uç noktanın veri akışının üretici olduğu bir hedef olarak kullanılması durumunda geçerlilik kazanır.

Varsayılan ayar olarak, bir veri akışı iletileri round-robin algoritması kullanarak rastgele bölümlere atar. Ancak, MQTT konu adı veya MQTT ileti özelliği gibi bazı ölçütlere göre bölümlere ileti atamak için farklı stratejiler kullanabilirsiniz. Bu, daha iyi yük dengeleme, veri yerelliği veya ileti sıralaması elde etmeye yardımcı olabilir.

Değer Açıklama
Default Döngüsel dağıtım algoritması kullanarak iletileri farklı bölümlere atar. Strateji belirtilmezse bu varsayılan değerdir.
Static İletileri, veri akışının örnek kimliğinden türetilen sabit bir bölüm numarasına atar. Bu, her veri akışı örneğinin iletileri farklı bir bölüme gönderdiği anlamına gelir. Bu, daha iyi yük dengeleme ve veri konumu elde etmeye yardımcı olabilir.
Topic Bölümleme anahtarı olarak veri akışı kaynağından MQTT konu adını kullanır. Bu, aynı MQTT konu adına sahip iletilerin aynı bölüme gönderileceği anlamına gelir. Bu, daha iyi ileti sıralama ve veri konumu elde etmeye yardımcı olabilir.
Property Bölümleme anahtarı olarak veri akışı kaynağından bir MQTT ileti özelliği kullanır. Alandaki özelliğin partitionKeyProperty adını belirtin. Bu, aynı özellik değerine sahip iletilerin aynı bölüme gönderildiği anlamına gelir. Bu, özel bir ölçüte göre daha iyi ileti sıralama ve veri yerelliği elde etmeye yardımcı olabilir.

Örneğin, bölüm işleme stratejisini Property olarak ve bölüm anahtarı özelliğini device-idolarak ayarlarsanız, aynı device-id özelliğe sahip iletiler aynı bölüme gönderilir.

Bölüm işleme stratejisini yapılandırmak için:

İşlem deneyimi veri akışı uç noktası ayarları sayfasında Gelişmiş sekmesini seçin ve bölüm işleme stratejisini belirtmek için Bölüm işleme stratejisi alanını kullanın. Strateji olarak ayarlandıysa bölümleme için kullanılan özelliği belirtmek için Property alanını kullanın.

Kafka bildirimleri

Kafka bildirimleri (acks), Kafka konularına gönderilen iletilerin dayanıklılığını ve tutarlılığını denetlemek için kullanılır. Üretici bir Kafka konusuna ileti gönderdiğinde, iletinin konuya başarıyla yazıldığından ve Kafka kümesinde çoğaltıldığından emin olmak için Kafka brokerından farklı onay düzeyleri isteyebilir.

Bu ayar yalnızca uç nokta hedef olarak kullanılıyorsa (yani veri akışı bir üreticiyse) geçerlilik kazanır.

Değer Açıklama
None Veri akışı, Kafka aracısından gelen onayları beklemez. Bu ayar en hızlı ancak en az dayanıklı seçenektir.
All Veri akışı, iletinin ana bölüme ve tüm takipçi bölümlere yazılmasını bekler. Bu ayar en yavaş ancak en dayanıklı seçenektir. Bu ayar aynı zamanda varsayılan seçenektir
One Veri akışı, iletinin öncü bölüme ve en az bir takipçi bölümüne yazılması için bekler.
Zero Veri akışı, iletinin öncü bölüme yazılması için bekler, ancak takipçilerden herhangi bir bildirim beklemez. Bu daha hızlıdır One ancak daha az dayanıklıdır.

Örneğin, Kafka onayını All olarak ayarlarsanız, veri akışı sonraki iletiyi göndermeden önce iletinin öncü bölüme ve tüm takipçi bölümlerine yazılmasını bekler.

Kafka bildirimlerini yapılandırmak için:

İşlem deneyimi veri akışı uç noktası ayarları sayfasında Gelişmiş sekmesini seçin, ardından Kafka onay alanını kullanarak Kafka onay düzeyini belirtin.

Bu ayar yalnızca uç noktanın veri akışının üretici olduğu bir hedef olarak kullanılması durumunda geçerlilik kazanır.

MQTT özelliklerini kopyalama

Varsayılan olarak, MQTT özelliklerini kopyala ayarı etkindir. Mesajı gönderen varlığın adını depolayan değerler gibi subject kullanıcı özelliklerini içerir.

İşlem deneyimi veri akışı uç noktası ayarları sayfasında Gelişmiş sekmesini seçin ve ardından MQTT özelliklerini kopyalamayı etkinleştirmek veya devre dışı bırakmak için MQTT özelliklerini kopyala alanının yanındaki onay kutusunu kullanın.

Aşağıdaki bölümlerde MQTT özelliklerinin Kafka kullanıcı üst bilgilerine nasıl çevrildiği ve ayar etkinleştirildiğinde bunun tersi açıklanmaktadır.

Kafka uç noktası bir hedeftir

Kafka uç noktası bir veri akışı hedefi olduğunda, tüm MQTT v5 belirtimi tanımlı özellikleri Kafka kullanıcı üst bilgilerine çevrilir. Örneğin, "İçerik Türü" içeren bir MQTT v5 iletisi, Kafka'ya iletildiğinde Kafka kullanıcı üst bilgisine çevrilir. Benzer kurallar, aşağıdaki tabloda tanımlanan diğer yerleşik MQTT özellikleri için de geçerlidir.

MQTT Özelliği Çevrilmiş Davranış
Yük Biçimi Göstergesi Anahtar: "Yük Biçimi Göstergesi"
Değer: "0" (Yük bayttır) veya "1" (Yük UTF-8'dir)
Yanıt Konusu Anahtar: "Yanıt Konusu"
Değer: Özgün iletiden Yanıt Konusu kopyası.
İleti Süre Sonu Aralığı Anahtar: "İleti Süre Sonu Aralığı"
Değer: İletinin süresi dolmadan önce saniye sayısının UTF-8 gösterimi. Diğer ayrıntılar için bkz . İleti Süre Sonu Aralığı özelliği .
Bağıntı Verileri: Anahtar Kelime: "Bağıntı Verileri"
Değer: Özgün iletiden Bağıntı Verilerinin kopyası. UTF-8 kodlanmış birçok MQTT v5 özelliğinin aksine, bağıntı verileri rastgele veriler olabilir.
İçerik Türü: Anahtar: "İçerik Türü"
Değer: özgün iletiden İçerik Türü kopyası.

MQTT v5 kullanıcı özelliği anahtar değer çiftleri doğrudan Kafka kullanıcı üst bilgilerine çevrilir. Bir mesajdaki kullanıcı üst bilgisi, yerleşik bir MQTT özelliğiyle (örneğin, "İlişkilendirme Verileri" adlı bir kullanıcı üst bilgisi) aynı ada sahip olduğunda, MQTT v5 spesifikasyon özelliğinin mi yoksa kullanıcı özelliğinin mi iletileceği belirsizdir.

Veri akışları hiçbir zaman bir MQTT Aracısı'ndan bu özellikleri almaz. Bu nedenle, bir veri akışı bunları hiçbir zaman iletmez:

  • Konu Diğer Adı
  • Abonelik Tanımlayıcıları
İleti Süre Sonu Aralığı özelliği

İleti Süre Sonu Aralığı, bir iletinin atılmadan önce bir MQTT aracısında ne kadar süreyle kalabileceğini belirtir.

Bir veri akışı, İleti Süre Sonu Aralığı belirtilen bir MQTT iletisi aldığında, şu şekilde olur:

  • İletinin alındığı saati kaydeder.
  • İleti hedefe gönderilmeden önce, kuyrukta olmasından kaynaklanan zaman özgün süre sonu aralığından çıkarılır.
  • İletinin süresi dolmadıysa (yukarıdaki işlem 0'dır > ), ileti hedefe gönderilir ve güncelleştirilmiş İleti Süre Sonu Saati'ni içerir.
  • İletinin süresi dolduysa (yukarıdaki işlem = 0 ise <), ileti Hedef tarafından gönderilmez.

Örnekler:

  • Veri akışı, İleti Süre Sonu Aralığı = 3600 saniye olan bir MQTT iletisi alır. Karşılık gelen hedefin bağlantısı geçici olarak kesiliyor ancak yeniden bağlanabiliyor. Bu MQTT İletisinin Hedefe gönderilmesi için 1.000 saniye geçer. Bu durumda, hedefin iletisinin İleti Süre Sonu Aralığı 2600 (3600 - 1000) saniye olarak ayarlanmıştır.
  • Veri akışı, İleti Süre Sonu Aralığı = 3600 saniye olan bir MQTT iletisi alır. Karşılık gelen hedefin bağlantısı geçici olarak kesiliyor ancak yeniden bağlanabiliyor. Ancak bu durumda yeniden bağlanmak 4.000 saniye sürer. İletinin süresi doldu ve veri akışı bu iletiyi hedefe iletmez.

Kafka uç noktası bir veri akışı kaynağıdır

Uyarı

Event Hubs uç noktasını veri akışı kaynağı olarak kullanırken Kafka üst bilgisinin MQTT'ye çevrildikçe bozulmasıyla ilgili bilinen bir sorun vardır. Bu yalnızca, Event Hubs istemcisi aracılığıyla, arka planda AMQP kullanan Event Hubs'ı kullanıldığında gerçekleşir. Örneğin "foo"="bar", "foo" çevrilir, ancak değer "\xa1\x03bar" olur.

Kafka uç noktası bir veri akışı kaynağı olduğunda, Kafka kullanıcı üst bilgileri MQTT v5 özelliklerine çevrilir. Aşağıdaki tabloda Kafka kullanıcı üst bilgilerinin MQTT v5 özelliklerine nasıl çevrildiği açıklanmaktadır.

Kafka Üst Bilgisi Çevrilmiş Davranış
Anahtar Anahtar: "Anahtar"
Değer: Anahtarın özgün iletiden kopyası.
Zaman Damgası Anahtar: "Zaman damgası"
Değer: Unix dönemlerinden bu yana milisaniye sayısı olan Kafka Timestamp'ın UTF-8 kodlaması.

Tümü UTF-8 ile kodlanmış olmaları koşuluyla Kafka kullanıcı üst bilgi anahtarı/değer çiftleri doğrudan MQTT kullanıcı anahtarı/değer özelliklerine çevrilir.

UTF-8 / İkili Uyuşmazlıklar

MQTT v5 yalnızca UTF-8 tabanlı özellikleri destekleyebilir. Veri akışı, UTF-8 olmayan bir veya daha fazla üst bilgi içeren bir Kafka iletisi alırsa, veri akışı şunları yapacaktır:

  • Sorunlu özelliği veya özellikleri kaldırın.
  • Önceki kuralları izleyerek iletinin geri kalanını açık olarak iletin.

Kafka Kaynak üst bilgilerinde => MQTT Hedefi özelliklerinde ikili aktarım gerektiren uygulamaların önce UTF-8 tarafından kodlanmış olması gerekir; örneğin Base64 aracılığıyla.

>=64 KB özellik uyuşmazlıkları

MQTT v5 özellikleri 64 KB'tan küçük olmalıdır. Veri akışı = 64 KB olan bir veya daha fazla üst bilgi >içeren bir Kafka iletisi alırsa, veri akışı şunları yapacaktır:

  • Sorunlu özelliği veya özellikleri kaldırın.
  • Önceki kuralları izleyerek iletinin geri kalanını açık olarak iletin.
Event Hubs ve AMQP kullanan üreticilerle çalışırken özelliklerin çevrilmesi

İletileri ileten bir istemciniz varsa, aşağıdaki eylemlerden herhangi birini yapan bir Kafka veri akışı kaynak uç noktası:

  • Azure.Messaging.EventHubs gibi istemci kitaplıklarını kullanarak Event Hubs'a ileti gönderme
  • AMQP'i doğrudan kullanma

Özelliklerin çevirisiyle ilgili farkında olunması gereken nüanslar vardır.

Aşağıdakilerden birini yapmalısınız:

  • Özellikleri göndermekten kaçının
  • Özellikleri göndermeniz gerekiyorsa UTF-8 olarak kodlanmış değerleri gönderin.

Event Hubs özellikleri AMQP'den Kafka'ya çevirirken, mesajında temel olarak AMQP kodlanmış türlerini içerir. Davranış hakkında daha fazla bilgi için bkz. Farklı Protokoller Kullanan Tüketiciler ve Üreticiler Arasında Olay Alışverişi Yapma.

Aşağıdaki kod örneğinde veri akışı uç noktası "foo":"bar" değerini aldığında, bu özelliği <0xA1 0x03 "bar"> olarak alır.

using global::Azure.Messaging.EventHubs;
using global::Azure.Messaging.EventHubs.Producer;

var propertyEventBody = new BinaryData("payload");

var propertyEventData = new EventData(propertyEventBody)
{
  Properties =
  {
    {"foo", "bar"},
  }
};

var propertyEventAdded = eventBatch.TryAdd(propertyEventData);
await producerClient.SendAsync(eventBatch);

Veriler UTF-8 olmadığından veri akışı uç noktası payload özelliğini <0xA1 0x03 "bar"> bir MQTT iletisine iletemiyor. Ancak bir UTF-8 dizesi belirtirseniz, veri akışı uç noktası MQTT'ye göndermeden önce dizeyi çevirir. UTF-8 dizesi kullanırsanız, MQTT iletisi kullanıcı özelliklerine sahip "foo":"bar" olabilir.

Yalnızca UTF-8 üst bilgileri çevrilir. Örneğin, özelliğin float olarak ayarlandığı aşağıdaki senaryo göz önünde bulundurulduğunda:

Properties = 
{
  {"float-value", 11.9 },
}

Veri akışı uç noktası, alanı içeren "float-value" paketleri atar.

propertyEventData.correlationId dahil olmak üzere tüm olay verileri özellikleri iletılmaz. Daha fazla bilgi için bkz . Olay Kullanıcı Özellikleri,

CloudEvents

CloudEvents , olay verilerini ortak bir şekilde açıklamanın bir yoludur. CloudEvents ayarları, CloudEvents biçiminde ileti göndermek veya almak için kullanılır. CloudEvents'i, farklı hizmetlerin aynı veya farklı bulut sağlayıcılarında birbirleriyle iletişim kurması gereken olay odaklı mimariler için kullanabilirsiniz.

Seçenekler CloudEventAttributes veya PropagateCreateOrRemap.

İşlem deneyimi veri akışı uç noktası ayarları sayfasında Gelişmiş sekmesini seçin ve cloud event attributes alanını kullanarak CloudEvents ayarını belirtin.

Aşağıdaki bölümlerde CloudEvent özelliklerinin nasıl yayıldığı veya oluşturulduğu ve yeniden eşlendiği açıklanmaktadır.

Yayılma ayarı

CloudEvent özellikleri, gerekli özellikleri içeren iletiler için doğrudan aktarılır. İleti gerekli özellikleri içermiyorsa, ileti olduğu gibi geçirilir. Gerekli özellikler varsa, CloudEvent özellik adına bir ce_ ön ek eklenir.

İsim Gerekli Örnek değer Çıkış adı Çıkış değeri
specversion Evet 1.0 ce-specversion Olduğu şekliyle aktarılmıştır.
type Evet ms.aio.telemetry ce-type Olduğu şekliyle aktarılmıştır.
source Evet aio://mycluster/myoven ce-source Olduğu şekliyle aktarılmıştır.
id Evet A234-1234-1234 ce-id Olduğu şekliyle aktarılmıştır.
subject Hayı aio/myoven/sensor/temperature ce-subject Olduğu şekliyle aktarılmıştır.
time Hayı 2018-04-05T17:31:00Z ce-time Olduğu gibi geçti. Restamped değil.
datacontenttype Hayı application/json ce-datacontenttype İsteğe bağlı dönüştürme aşamasından sonra çıkış verisi içerik türüne değiştirildi.
dataschema Hayı sr://fabrikam-schemas/123123123234234234234234#1.0.0 ce-dataschema Dönüştürme yapılandırmasında bir çıkış veri dönüştürme şeması verilmişse, dataschema çıkış şeması olarak değiştirilir.

CreateOrRemap ayarı

CloudEvent özellikleri, gerekli özellikleri içeren iletiler için doğrudan aktarılır. İleti gerekli özellikleri içermiyorsa, özellikler oluşturulur.

İsim Gerekli Çıkış adı Eksikse oluşturulan değer
specversion Evet ce-specversion 1.0
type Evet ce-type ms.aio-dataflow.telemetry
source Evet ce-source aio://<target-name>
id Evet ce-id Hedef istemcide UUID oluşturuldu
subject Hayı ce-subject İletinin gönderildiği çıkış konusu
time Hayı ce-time Hedef istemcide RFC 3339 olarak oluşturuldu
datacontenttype Hayı ce-datacontenttype İsteğe bağlı dönüştürme aşamasından sonra çıkış verisi içerik türüne değiştirildi
dataschema Hayı ce-dataschema Şema kayıt defterinde tanımlanan şema

Sonraki Adımlar

Veri akışları hakkında daha fazla bilgi edinmek için bkz. Veri akışı oluşturma.