Mulai cepat: Mengalirkan data dengan Azure Event Hubs dan Apache Kafka

Mulai cepat ini menunjukkan kepada Anda cara mengalirkan data ke dan dari Azure Event Hubs menggunakan protokol Apache Kafka. Anda tidak akan mengubah kode apa pun dalam sampel aplikasi produsen atau konsumen Kafka. Anda hanya memperbarui konfigurasi yang digunakan klien untuk menunjuk ke namespace Layanan Pusat Aktivitas, yang mengekspos titik akhir Kafka. Anda juga tidak membangun dan menggunakan kluster Kafka sendiri. Sebagai gantinya, Anda menggunakan namespace Layanan Pusat Aktivitas dengan titik akhir Kafka.

Catatan

Sampel ini tersedia di GitHub

Prasyarat

Untuk menyelesaikan mulai cepat ini, pastikan prasyarat berikut dipenuhi:

Membuat namespace Azure Event Hubs

Saat Anda membuat namespace layanan Azure Event Hubs, titik akhir Kafka untuk namespace diaktifkan secara otomatis. Anda dapat melakukan stream peristiwa dari aplikasi Anda yang menggunakan protokol Kafka ke dalam event hubs. Ikuti instruksi langkah demi langkah di Buat event hub menggunakan portal Microsoft Azure untuk membuat namespace Azure Event Hubs. Jika Anda menggunakan kluster khusus, lihat Membuat namespace layanan dan pusat aktivitas di kluster khusus.

Catatan

Azure Event Hubs untuk Kafka tidak didukung di tingkat dasar.

Mengirim dan menerima pesan dengan Kafka di Azure Event Hubs

  1. Aktifkan identitas terkelola yang ditetapkan sistem untuk komputer virtual. Untuk informasi selengkapnya tentang mengonfigurasi identitas terkelola pada VM, lihat Mengonfigurasi identitas terkelola untuk sumber daya Azure pada VM menggunakan portal Azure. Identitas terkelola untuk sumber daya Azure memberikan layanan Azure identitas terkelola otomatis di Microsoft Entra ID. Anda dapat menggunakan identitas ini untuk mengautentikasi tiap layanan yang mendukung autentikasi Microsoft Entra, tanpa memiliki kredensial dalam kode Anda.

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

  2. Menggunakan halaman Kontrol akses namespace layanan Pusat Aktivitas yang Anda buat, tetapkan peran Pemilik Data Azure Event Hubs ke identitas terkelola VM. Azure Event Hubs mendukung penggunaan ID Microsoft Entra untuk mengotorisasi permintaan ke sumber daya Azure Event Hubs. Dengan MICROSOFT Entra ID, Anda dapat menggunakan kontrol akses berbasis peran Azure (Azure RBAC) untuk memberikan izin kepada prinsip keamanan, yang mungkin merupakan pengguna, atau perwakilan layanan aplikasi.

    1. Di portal Microsoft Azure, arahkan ke namespace layanan Azure Event Hubs. Buka "Access Control (IAM)" di navigasi kiri.

    2. Pilih + Tambahkan dan pilih Add role assignment.

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

    3. Di tab Peran, pilih Pemilik Data Azure Event Hubs, dan pilih tombol Berikutnya .

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

    4. Di tab Anggota , pilih Identitas Terkelola di bagian Tetapkan akses ke .

    5. Pilih tautan +Pilih anggota .

    6. Pada halaman Pilih identitas terkelola , ikuti langkah-langkah berikut:

      1. Pilih langganan Azure yang memiliki VM.

      2. Untuk Identitas terkelola, pilih Komputer virtual

      3. Pilih identitas terkelola komputer virtual Anda.

      4. Pilih Pilih di bagian bawah halaman.

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

    7. Pilih Tinjau + Tetapkan.

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

  3. Mulai ulang VM dan masuk kembali ke VM tempat Anda mengonfigurasi identitas terkelola.

  4. Kloning Azure Event Hubs untuk repositori Kafka.

  5. Buka azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer.

  6. Beralih ke src/main/resources/ folder, dan buka consumer.config. Ganti namespacename dengan nama namespace Layanan Pusat Aktivitas Anda.

    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;
    

    Catatan

    Anda dapat menemukan semua sampel OAuth untuk Azure Event Hubs untuk Kafka di sini.

  7. Beralih kembali ke folder Konsumen tempat file pom.xml berada dan, dan jalankan kode konsumen dan proses peristiwa dari pusat aktivitas menggunakan klien Kafka Anda:

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestConsumer"                                    
    
  8. Luncurkan jendela prompt perintah lain, dan navigasikan ke azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer.

  9. Beralih ke src/main/resources/ folder, dan buka producer.config. Ganti mynamespace dengan nama namespace Layanan Pusat Aktivitas Anda.

  10. Beralih kembali ke folder Produser tempat pom.xml file berada dan, jalankan kode produsen dan streaming peristiwa ke Azure Event Hubs:

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

    Anda akan melihat pesan tentang peristiwa yang dikirim di jendela produser. Sekarang, periksa jendela aplikasi konsumen untuk melihat pesan yang diterimanya dari pusat aktivitas.

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

Validasi skema untuk Kafka dengan Schema Registry

Anda dapat menggunakan Azure Schema Registry untuk melakukan validasi skema saat melakukan streaming data dengan aplikasi Kafka menggunakan Azure Event Hubs. Azure Schema Registry of Event Hubs menyediakan repositori terpusat untuk mengelola skema dan Anda dapat menghubungkan aplikasi Kafka baru atau yang sudah ada dengan Schema Registry dengan lancar.

Untuk mempelajari lebih lanjut, lihat Memvalidasi skema untuk aplikasi Apache Kafka menggunakan Avro.

Langkah berikutnya

Dalam artikel ini, Anda mempelajari cara melakukan streaming ke Azure Event Hubs tanpa mengubah klien protokol atau menjalankan kluster Anda sendiri. Untuk mempelajari lebih lanjut, lihat Panduan pengembang Apache Kafka untuk Azure Event Hubs.