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.
Bu hızlı başlangıç kılavuzunda, Event Hubs için Azure Schema Registry kullanarak Apache Kafka uygulamalarından olayı doğrulamayı keşfedeceğiz.
Bu kullanım örneğinde Kafka üretici uygulaması Azure Schema Registry'de depolanan Avro şemasını kullanarak olayı seri hale getirip Azure Event Hubs'daki bir Kafka konusuna/olay hub'ına yayımlar. Kafka tüketicisi, Event Hubs'tan tükettiği olayları deserilize eder. Bunun için olayın şema kimliğini ve Azure Schema Registry'de depolanan Avro şemasını kullanır.
Önkoşullar
Azure Event Hubs'da yeniyseniz bu hızlı başlangıcı gerçekleştirmeden önce event hubs'a genel bakış konusuna bakın.
Bu hızlı başlangıcı tamamlamak için aşağıdaki önkoşullara ihtiyacınız vardır:
- Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Geliştirme ortamınızda aşağıdaki bileşenleri yükleyin:
- Java Development Kit (JDK) 1.7+.
- Bir Maven ikili arşivini indirin ve yükleyin.
- Git
- Kafka deposu için Azure Schema Registry'yi kopyalayın.
Olay hub’ı oluşturma
Hızlı başlangıçtaki yönergeleri izleyerek bir Event Hubs ad alanı ve olay hub'ı oluşturun: Event Hubs ad alanı ve olay hub'ı oluşturma. Ardından, Event Hubs ad alanınıza bağlantı dizesi almak için Bağlantı dizesini alma başlığındaki yönergeleri izleyin.
Geçerli hızlı başlangıçta kullandığınız aşağıdaki ayarları not edin:
- Event Hubs ad alanı için bağlantı dizesi
- Olay hub'ının adı
Şema oluşturma
Şema grubu ve şema oluşturmak için Şema Kayıt Defteri'ni kullanarak şema oluşturma başlığındaki yönergeleri izleyin.
Schema Registry portalını kullanarak contoso-sg adlı bir şema grubu oluşturun. Uyumluluk modu için serileştirme türü olarak Avro ve Yok kullanın.
Bu şema grubunda, aşağıdaki şema içeriğini kullanarak şema adıyla
Microsoft.Azure.Data.SchemaRegistry.example.Order
yeni bir Avro şeması oluşturun.{ "namespace": "Microsoft.Azure.Data.SchemaRegistry.example", "type": "record", "name": "Order", "fields": [ { "name": "id", "type": "string" }, { "name": "amount", "type": "double" }, { "name": "description", "type": "string" } ] }
Şema kayıt defterine erişmek için bir uygulama kaydetme
İstemci uygulamanızı Azure portalından bir Microsoft Entra kiracısına kaydederek Kafka üretici ve tüketici uygulamalarınıza Azure Schema Registry kaynaklarına erişme yetkisi vermek için Microsoft Entra ID kullanabilirsiniz.
example-app
adında bir Microsoft Entra uygulamasını kaydetmek için bkz Uygulamanızı bir Microsoft Entra kiracısına kaydedin.
- tenant.id - uygulamanın kiracı kimliğini ayarlar
- client.id - uygulamanın istemci kimliğini ayarlar
- client.secret - kimlik doğrulaması için istemci sırrını ayarlar
Yönetilen kimlik kullanıyorsanız şunları yapmanız gerekir:
- use.managed.identity.credential - MSI kimlik bilgilerinin kullanılması gerektiğini, MSI özellikli VM için kullanılması gerektiğini gösterir
- managed.identity.clientId - belirtilirse, verilen istemci kimliğiyle MSI kimlik bilgilerini oluşturur
- managed.identity.resourceId - belirtilirse, belirtilen kaynak kimliğiyle MSI kimlik bilgilerini oluşturur
Şema Kayıt Defteri Okuyucusu rolüne kullanıcı ekleme
Kullanıcı hesabınızı ad alanı düzeyinde Şema Kayıt Defteri Okuyucusu rolüne ekleyin. Şema Kayıt Defteri Katkıda Bulunanı rolünü de kullanabilirsiniz, ancak bu hızlı başlangıç için gerekli değildir.
- Event Hubs ad alanı sayfasında, soldaki menüden Erişim denetimi (IAM) öğesini seçin.
- Erişim denetimi (IAM) sayfasında, menüde + Ekle ->Rol ataması ekle'yi seçin.
- Atama türü sayfasında İleri'yi seçin.
- Roller sayfasında Şema Kayıt Defteri Okuyucusu (Önizleme) öğesini ve ardından sayfanın alt kısmındaki İleri'yi seçin.
- Önceki adımda oluşturduğunuz uygulamayı role eklemek
example-app
için + Üye seç bağlantısını kullanın ve ardından İleri'yi seçin. - Gözden geçir ve ata sayfasında Gözden geçir ve ata’yı seçin.
Kafka uygulamalarının istemci uygulama yapılandırmasını güncelleştirme
Kafka üretici ve tüketici uygulamalarının istemci yapılandırmasını, oluşturduğumuz Microsoft Entra uygulamasıyla ilgili yapılandırma ve şema kayıt defteri bilgileriyle güncelleştirmeniz gerekir.
Kafka Üretici yapılandırmasını güncelleştirmek için azure-schema-registry-for-kafka/tree/master/java/avro/samples/kafka-producer adresine gidin.
Event Hubs için Kafka Hızlı Başlangıç kılavuzunu izleyerek src/main/resources/app.properties içindeki Kafka uygulamasının yapılandırmasını güncelleştirin.
Şema kayıt defteriyle ilgili yapılandırmayı ve yukarıda oluşturduğunuz Microsoft Entra uygulamasını kullanarak src/main/resources/app.properties içindeki üreticinin yapılandırma ayrıntılarını aşağıdaki gibi güncelleştirin:
schema.group=contoso-sg schema.registry.url=https://<NAMESPACENAME>.servicebus.windows.net tenant.id=<> client.id=<> client.secret=<>
Aynı yönergeleri izleyin ve azure-schema-registry-for-kafka/tree/master/java/avro/samples/kafka-consumer yapılandırmasını da güncelleştirin.
Hem Kafka üretici hem de tüketici uygulamaları için aşağıdaki Avro şeması kullanılır:
{ "namespace": "com.azure.schemaregistry.samples", "type": "record", "name": "Order", "fields": [ { "name": "id", "type": "string" }, { "name": "amount", "type": "double" }, { "name": "description", "type": "string" } ] }
Avro şema doğrulaması ile Kafka üreticisini kullanma
Kafka üretici uygulamasını çalıştırmak için azure-schema-registry-for-kafka/tree/master/java/avro/samples/kafka-producer adresine gidin.
Avro'ya özgü kayıtlar veya genel kayıtlar üretebilmesi için üretici uygulamasını çalıştırabilirsiniz. Belirli bir kayıt modu için önce aşağıdaki maven komutunu kullanarak üretici şemasına karşı sınıfları oluşturmanız gerekir:
mvn generate-sources
Ardından aşağıdaki komutları kullanarak üretici uygulamasını çalıştırabilirsiniz.
mvn clean package mvn -e clean compile exec:java -Dexec.mainClass="com.azure.schemaregistry.samples.producer.App"
Üretici uygulamasının başarıyla yürütülmesinden sonra, üretici senaryosunu seçmeniz istenir. Bu hızlı başlangıç için 1 seçeneğini belirleyebilirsiniz: Avro SpecificRecords üretin.
Enter case number: 1 - produce Avro SpecificRecords 2 - produce Avro GenericRecords
Başarılı veri serileştirme ve yayımlama sonrasında üretici uygulamanızda aşağıdaki konsol günlüklerini görmeniz gerekir:
INFO com.azure.schemaregistry.samples.producer.KafkaAvroSpecificRecord - Sent Order {"id": "ID-0", "amount": 10.0, "description": "Sample order 0"} INFO com.azure.schemaregistry.samples.producer.KafkaAvroSpecificRecord - Sent Order {"id": "ID-1", "amount": 11.0, "description": "Sample order 1"} INFO com.azure.schemaregistry.samples.producer.KafkaAvroSpecificRecord - Sent Order {"id": "ID-2", "amount": 12.0, "description": "Sample order 2"}
Avro şema doğrulaması ile Kafka tüketicisi kullanma
Kafka tüketici uygulamasını çalıştırmak için azure-schema-registry-for-kafka/tree/master/java/avro/samples/kafka-consumer adresine gidin.
Avro'ya özgü kayıtları veya genel kayıtları tüketmesi için tüketici uygulamasını çalıştırabilirsiniz. Belirli kayıtlar modu için önce aşağıdaki maven komutunu kullanarak üretici şemasına karşı sınıfları oluşturmanız gerekir.
mvn generate-sources
Ardından aşağıdaki komutu kullanarak tüketici uygulamasını çalıştırabilirsiniz.
mvn clean package mvn -e clean compile exec:java -Dexec.mainClass="com.azure.schemaregistry.samples.consumer.App"
Tüketici uygulamasının başarıyla yürütülmesinden sonra, üretici senaryosunu seçmeniz istenir. Bu hızlı başlangıç için 1 - Avro SpecificRecords kullanma seçeneğini belirleyebilirsiniz.
Enter case number: 1 - consume Avro SpecificRecords 2 - consume Avro GenericRecords
Başarılı veri tüketimi ve seri durumdan çıkarma işleminden sonra üretici uygulamanızda aşağıdaki konsol günlüklerini görmeniz gerekir:
INFO com.azure.schemaregistry.samples.consumer.KafkaAvroSpecificRecord - Order received: {"id": "ID-0", "amount": 10.0, "description": "Sample order 0"} INFO com.azure.schemaregistry.samples.consumer.KafkaAvroSpecificRecord - Order received: {"id": "ID-1", "amount": 11.0, "description": "Sample order 1"} INFO com.azure.schemaregistry.samples.consumer.KafkaAvroSpecificRecord - Order received: {"id": "ID-2", "amount": 12.0, "description": "Sample order 2"}
Kaynakları temizleme
Event Hubs ad alanını silin veya ad alanını içeren kaynak grubunu silin.