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
-
Anda telah mengunduh paket kafka-spring-stream-demo dan mengunggahnya ke sistem Linux Anda.
-
Pastikan instans ApsaraMQ for Kafka Anda menggunakan versi 2.x atau lebih baru. Untuk informasi selengkapnya, lihat Tingkatkan versi instans.
-
Anda telah membuat topik dan kelompok konsumen.
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.
-
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 -
Jalankan perintah berikut untuk menuju ke path file konfigurasi.
cd sasl-ssl/src/main/resources/ -
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.
-
Jalankan perintah berikut untuk membuka file kafka_client_jaas.conf dan konfigurasikan username dan password untuk instans.
vi kafka_client_jaas.confCatatan-
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"; }; -
-
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.shProgram 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 !! -
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.
-
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 -
Jalankan perintah berikut untuk menuju ke path file konfigurasi.
cd vpc/src/main/resources/ -
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 -
Menuju ke direktori /home/doc/project/aliware-kafka-demos/kafka-spring-stream-demo/vpc dan jalankan perintah berikut untuk menjalankan Demo.
sh run_demo.shProgram mencetak output berikut.
Send: hello world !! Send: hello world !! Send: hello world !! Send: hello world !! -
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.