Aracılığıyla paylaş


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.

    Azure portalında bir sanal makine sayfasının Kimlik sekmesinin ekran görüntüsü.

  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.

      Event Hubs ad alanının Erişim Denetimi sayfasının ekran görüntüsü.

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

      Azure Event Hubs Veri Sahibi rolünün seçimini gösteren ekran görüntüsü.

    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.

        Rol ataması ekle -> Yönetilen kimlikleri seç sayfasını gösteren ekran görüntüsü.

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

      VM'nin yönetilen kimliğine atanmış rolle rol ataması ekle sayfasını gösteren ekran görüntüsü.

  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.

    Olayları gösteren Üretici ve Tüketici uygulama pencerelerini gösteren ekran görüntüsü.

Ş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.