All Products
Search
Document Center

ApsaraMQ for Kafka:Kirim dan terima pesan dengan Spring Cloud

Last Updated:Jul 11, 2026

Spring Cloud menyederhanakan pengembangan aplikasi layanan mikro berbasis pesan dengan fitur bawaan seperti penemuan layanan, manajemen konfigurasi, dan load balancing. Integrasikan dengan ApsaraMQ for Kafka untuk mengirim dan menerima pesan dalam sistem terdistribusi Anda.

Prasyarat

Akses Internet (otentikasi dan enkripsi diperlukan)

Untuk akses Internet, pesan diautentikasi dan dienkripsi melalui protokol SASL_SSL. Klien terhubung ke ApsaraMQ for Kafka melalui titik akhir SSL. Untuk informasi selengkapnya tentang titik akhir, lihat Perbandingan Titik Akhir.

Dalam contoh ini, paket demo diunggah ke /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo.

  1. Masuk ke sistem Linux dan jalankan perintah berikut untuk masuk ke direktori paket demo /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo.

    cd /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo
  2. Jalankan perintah berikut untuk menuju ke path file konfigurasi.

    cd sasl-ssl/src/main/resources/
  3. Jalankan perintah berikut untuk mengedit file application.properties dan konfigurasikan informasi instans berdasarkan daftar parameter.

    vi application.properties
    ## Ganti nilai placeholder dengan informasi instans Anda.
    kafka.bootstrap-servers=alikafka-pre-cn-zv**********-1.alikafka.aliyuncs.com:9093,alikafka-pre-cn-zv**********-2.alikafka.aliyuncs.com:9093,alikafka-pre-cn-zv**********-3.alikafka.aliyuncs.com:9093
    kafka.consumer.group=test-spring
    kafka.output.topic.name=test-output
    kafka.input.topic.name=test-input
    kafka.ssl.truststore.location=/home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo/sasl-ssl/src/main/resources/kafka.client.truststore.jks
    
    ### Parameter binding berikut mengaitkan ApsaraMQ for Kafka dengan binder Spring Cloud Stream. Anda dapat menggunakan nilai default.
    spring.cloud.stream.bindings.MyOutput.destination=${kafka.output.topic.name}
    spring.cloud.stream.bindings.MyOutput.contentType=text/plain
    spring.cloud.stream.bindings.MyInput.group=${kafka.consumer.group}
    spring.cloud.stream.bindings.MyInput.destination=${kafka.input.topic.name}
    spring.cloud.stream.bindings.MyInput.contentType=text/plain
    
    ### Binder adalah abstraksi Spring Cloud untuk middleware pesan. Anda dapat menggunakan nilai default untuk parameter berikut.
    spring.cloud.stream.kafka.binder.autoCreateTopics=false
    spring.cloud.stream.kafka.binder.brokers=${kafka.bootstrap-servers}
    spring.cloud.stream.kafka.binder.configuration.security.protocol=SASL_SSL
    spring.cloud.stream.kafka.binder.configuration.sasl.mechanism=PLAIN
    spring.cloud.stream.kafka.binder.configuration.ssl.truststore.location=${kafka.ssl.truststore.location}
    spring.cloud.stream.kafka.binder.configuration.ssl.truststore.password=KafkaOnsClient
    ### Jika tidak ada dalam demo, tambahkan parameter ini untuk menonaktifkan verifikasi hostname server.
    ### Verifikasi hostname server memeriksa apakah hostname dalam sertifikat SSL cocok dengan hostname server. Nilai default adalah HTTPS.
    spring.cloud.stream.kafka.binder.configuration.ssl.endpoint.identification.algorithm=
    Tabel 1. Daftar parameter

    Parameter

    Deskripsi

    kafka.bootstrap-servers

    Titik akhir instans ApsaraMQ for Kafka. Anda dapat memperoleh titik akhir ini dari bagian Endpoint Information pada halaman Instance Details di Konsol ApsaraMQ for Kafka.

    kafka.consumer.group

    Kelompok digunakan untuk berlangganan pesan. Anda dapat membuat kelompok di halaman Groups di Konsol ApsaraMQ for Kafka. Untuk informasi selengkapnya, lihat Langkah 3: Buat sumber daya.

    kafka.output.topic.name

    Topik untuk pesan yang diproduksi. Aplikasi demo secara berkala mengirim pesan dengan konten tetap ke topik ini. Anda dapat membuat topik di halaman Topics di Konsol ApsaraMQ for Kafka. Untuk informasi selengkapnya, lihat Langkah 3: Buat sumber daya.

    kafka.input.topic.name

    Topik tempat pesan dikonsumsi. Anda dapat mengirim pesan ke topik ini dari konsol. Aplikasi demo mengonsumsi pesan tersebut dan mencetaknya ke log.

    kafka.ssl.truststore.location

    Path ke sertifikat root SSL kafka.client.truststore.jks.

  4. Jalankan perintah berikut untuk membuka file kafka_client_jaas.conf dan konfigurasikan username dan password untuk instans.

    vi kafka_client_jaas.conf
    Catatan
    • Jika fitur daftar kontrol akses (ACL) dinonaktifkan untuk instans, Anda dapat memperoleh username dan password pengguna default dari halaman Instance Details di Konsol ApsaraMQ for Kafka.

    • Jika fitur daftar kontrol akses (ACL) diaktifkan untuk instans, pastikan pengguna SASL menggunakan mekanisme PLAIN dan memiliki izin untuk mengirim serta menerima pesan. Untuk informasi selengkapnya, lihat Berikan izin kepada pengguna SASL.

    KafkaClient {
      org.apache.kafka.common.security.plain.PlainLoginModule required
      username="your-username"
      password="your-password";
    };
  5. Menuju ke direktori /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo/sasl-ssl dan jalankan perintah berikut untuk menjalankan demo.

    sh run_demo.sh

    Program mencetak informasi berikut, yang menunjukkan bahwa program tersebut menerima pesan yang dikirim oleh program konsol ke topik yang ditentukan dalam parameter kafka.output.topic.name.

    Send: hello world !!
    Send: hello world !!
    Send: hello world !!
    Send: hello world !!
  6. Masuk ke Konsol ApsaraMQ for Kafka untuk memverifikasi bahwa pesan berhasil dikirim dan diterima.

    • Periksa apakah topik yang ditentukan untuk parameter kafka.output.topic.name telah menerima pesan dari aplikasi konsol. Untuk informasi selengkapnya, lihat Kueri pesan.

    • Kirim pesan ke topik yang dikonfigurasi dalam kafka.input.topic.name dan periksa log program demo untuk memverifikasi bahwa pesan tersebut dicetak. Untuk informasi selengkapnya, lihat Kirim pesan.

Akses VPC (tanpa otentikasi atau enkripsi)

Dalam VPC, pesan ditransmisikan melalui protokol PLAINTEXT tanpa otentikasi atau enkripsi. Klien terhubung ke ApsaraMQ for Kafka melalui titik akhir default. Untuk informasi selengkapnya tentang titik akhir, lihat Perbandingan Titik Akhir.

Dalam contoh ini, paket demo diunggah ke direktori /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo.

  1. Masuk ke sistem Linux dan jalankan perintah berikut untuk menuju ke direktori /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo yang berisi paket demo.

    cd /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo
  2. Jalankan perintah berikut untuk menuju ke path file konfigurasi.

    cd vpc/src/main/resources/
  3. Jalankan perintah berikut untuk mengedit file application.properties dan konfigurasikan informasi instans berdasarkan daftar parameter.

    vi application.properties
    ### Ubah parameter berikut berdasarkan informasi instans Anda.
    kafka.bootstrap-servers=alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9092,alikafka-pre-cn-zv**********-2-vpc.alikafka.aliyuncs.com:9092,alikafka-pre-cn-zv**********-3-vpc.alikafka.aliyuncs.com:9092
    kafka.consumer.group=test-spring
    kafka.output.topic.name=test-output
    kafka.input.topic.name=test-input
  4. Menuju ke direktori /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo/vpc dan jalankan perintah berikut untuk menjalankan Demo.

    sh run_demo.sh

    Program mencetak output berikut.

    Send: hello world !!
    Send: hello world !!
    Send: hello world !!
    Send: hello world !!
  5. Masuk ke Konsol ApsaraMQ for Kafka untuk memverifikasi bahwa pesan berhasil dikirim dan diterima.

    • Periksa apakah topik yang ditentukan untuk parameter kafka.output.topic.name telah menerima pesan dari aplikasi konsol. Untuk informasi selengkapnya, lihat Kueri pesan.

    • Kirim pesan ke topik yang dikonfigurasi dalam kafka.input.topic.name dan periksa log program demo untuk memverifikasi bahwa pesan tersebut dicetak. Untuk informasi selengkapnya, lihat Kirim pesan.

Dokumen terkait

Untuk informasi selengkapnya tentang framework Spring Cloud, lihat Spring Cloud Stream.