Hızlı Başlangıç: Azure Event Hubs ve Apache Kafka ile veri akışı

Bu hızlı başlangıçta Apache Kafka protokolunu kullanarak Azure Event Hubs'a ve Azure Event Hubs'dan veri akışı yapmayı öğreneceksiniz. Örnek Kafka üretici veya tüketici uygulamalarında hiçbir kodu değiştirmezsiniz. İstemcilerin kafka uç noktasını kullanıma sunan bir Event Hubs ad alanına işaret etmek için kullandığı yapılandırmaları güncelleştirmeniz gerekir. Ayrıca kafka kümesini kendi başınıza oluşturup kullanmazsınız. Bunun yerine Event Hubs ad alanını Kafka uç noktasıyla kullanırsınız.

Not

Bu örnek GitHub'da sağlanır

Önkoşullar

Bu hızlı başlangıcı tamamlamak için aşağıdaki önkoşulların karşılandığından emin olun:

Azure Event Hubs ad alanı oluşturma

Bir Event Hubs ad alanı oluşturduğunuzda, ad alanının Kafka uç noktası otomatik olarak etkinleştirilir. Kafka protokollerini kullanan uygulamalarınızdan olay hub'larına olay akışı yapabilirsiniz. Event Hubs ad alanı oluşturmak için Azure portalını kullanarak olay hub'ı oluşturma başlığındaki adım adım yönergeleri izleyin. Ayrılmış küme kullanıyorsanız bkz . Ayrılmış bir kümede ad alanı ve olay hub'ı oluşturma.

Not

Kafka için Event Hubs temel katmanda desteklenmez.

Event Hubs’da Kafka ile ileti gönderme ve alma

  1. Sanal makine için sistem tarafından atanan yönetilen kimliği etkinleştirin. Bir VM'de yönetilen kimliği yapılandırma hakkında daha fazla bilgi için bkz . Azure portalını kullanarak VM'de Azure kaynakları için yönetilen kimlikleri yapılandırma. Azure kaynakları için yönetilen kimlikler, Azure hizmetlerine Microsoft Entra ID üzerinde otomatik olarak yönetilen bir kimlik sağlar. Bu kimliği kullanarak, Microsoft Entra kimlik doğrulamasını destekleyen tüm hizmetlerde kodunuzda kimlik bilgileri bulunmasına gerek kalmadan kimlik doğrulaması yapabilirsiniz.

    Screenshot of the Identity tab of a virtual machine page in the Azure portal.

  2. Oluşturduğunuz Event Hubs ad alanının Erişim denetim sayfasını kullanarak VM'nin yönetilen kimliğine Azure Event Hubs Veri Sahibi rolü atayın. Azure Event Hubs, Event Hubs kaynaklarına yönelik istekleri yetkilendirmek için Microsoft Entra Id kullanılmasını destekler. Microsoft Entra Id ile Azure rol tabanlı erişim denetimini (Azure RBAC) kullanarak bir kullanıcı veya uygulama hizmet sorumlusu olabilecek bir güvenlik sorumlusuna izin vekleyebilirsiniz.

    1. Azure portalında Event Hubs ad alanınıza gidin. Sol gezinti bölmesinde "Erişim Denetimi (IAM)" bölümüne gidin.

    2. + Ekle'yi ve ardından öğesini seçin Add role assignment.

      Screenshot of the Access Control page of an Event Hubs namespace.

    3. Rol sekmesinde Azure Event Hubs Veri Sahibi'ni ve ardından İleri düğmesini seçin.

      Screenshot showing the selection of the Azure Event Hubs Data Owner role.

    4. Üyeler sekmesinde, Erişim ata bölümünde Yönetilen Kimlik'i seçin.

    5. +Üyeleri seç bağlantısını seçin.

    6. Yönetilen kimlikleri seçin sayfasında şu adımları izleyin:

      1. VM'yi içeren Azure aboneliğini seçin.

      2. Yönetilen kimlik için Sanal makine'yi seçin

      3. Sanal makinenizin yönetilen kimliğini seçin.

      4. Sayfanın alt kısmındaki Seç'i seçin.

        Screenshot showing the Add role assignment -> Select managed identities page.

    7. Gözden geçir + Ata'yı seçin.

      Screenshot showing the Add role assignment page with role assigned to VM's managed identity.

  3. VM'yi yeniden başlatın ve yönetilen kimliği yapılandırdığınız VM'de yeniden oturum açın.

  4. Kafka için Azure Event Hubs deposunu kopyalayın.

  5. Şuraya gidin: azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer

  6. klasörüne src/main/resources/ geçin ve dosyasını açın consumer.config. değerini Event Hubs ad alanınızın adıyla değiştirin namespacename .

    bootstrap.servers=NAMESPACENAME.servicebus.windows.net:9093
    security.protocol=SASL_SSL
    sasl.mechanism=OAUTHBEARER
    sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required;
    sasl.login.callback.handler.class=CustomAuthenticateCallbackHandler;
    
  7. pom.xml dosyasının bulunduğu Tüketici klasörüne dönün ve Kafka istemcilerinizi kullanarak olay hub'ından tüketici kodunu çalıştırın ve olayları işleyin:

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestConsumer"                                    
    
  8. Başka bir komut istemi penceresi başlatın ve adresine azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producergidin.

  9. klasörüne src/main/resources/ geçin ve dosyasını açın producer.config. değerini Event Hubs ad alanınızın adıyla değiştirin mynamespace .

  10. Dosyanın bulunduğu pom.xml Producer klasörüne dönün ve üretici kodunu çalıştırın ve olayları Event Hubs'a akışla aktarın:

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    

    Üretici penceresinde gönderilen olaylar hakkındaki iletileri görmeniz gerekir. Şimdi, olay hub'ından aldığı iletileri görmek için tüketici uygulaması penceresini denetleyin.

    Screenshot showing the Producer and Consumer app windows showing the events.

Şema Kayıt Defteri ile Kafka için şema doğrulaması

Event Hubs kullanarak Kafka uygulamalarınızla veri akışı yaparken şema doğrulaması gerçekleştirmek için Azure Schema Registry'yi kullanabilirsiniz. Event Hubs Azure Schema Registry, şemaları yönetmek için merkezi bir depo sağlar ve yeni veya mevcut Kafka uygulamalarınızı Schema Registry ile sorunsuz bir şekilde bağlayabilirsiniz.

Daha fazla bilgi edinmek için bkz . Avro kullanarak Apache Kafka uygulamaları için şemaları doğrulama.

Sonraki adımlar

Bu makalede, protokol istemcilerinizi değiştirmeden veya kendi kümelerinizi çalıştırmadan Event Hubs'a akış yapmayı öğrendiniz. Daha fazla bilgi edinmek için bkz . Azure Event Hubs için Apache Kafka geliştirici kılavuzu.