Topik ini menjelaskan cara membangun proyek uji ApsaraMQ for RocketMQ menggunakan TCP client SDK untuk Java. Proyek demo menyediakan kode contoh untuk pesan normal, pesan terurut, pesan transaksional, pesan terjadwal, dan pesan tertunda, serta konfigurasi Spring untuk pengujian.
Prasyarat
- Lingkungan pengembangan terintegrasi (IDE) telah diinstal.
Anda dapat menggunakan IntelliJ IDEA atau Eclipse. Contoh dalam topik ini menggunakan IntelliJ IDEA.
Pastikan bahwa IntelliJ IDEA Ultimate Edition telah diunduh dan diinstal. Untuk informasi lebih lanjut, kunjungi halaman unduhan.
- Paket proyek demo telah diunduh.
Unduh paket proyek demo dan ekstrak ke mesin lokal Anda. Folder bernama rocketmq-demo-master akan dibuat, berisi kode contoh untuk Java, Spring, dan Spring Boot. Untuk informasi lebih lanjut, lihat rocketmq-demo.
- Java Development Kit (JDK) telah diinstal. Untuk informasi lebih lanjut, lihat Unduhan Java.
Konfigurasikan proyek demo
- Impor file proyek demo ke IntelliJ IDEA.
- Buat sumber daya.
Buka Konsol Message Queue for Apache RocketMQ untuk membuat sumber daya seperti instance, topik, grup konsumen, ID AccessKey (AK), dan Rahasia AccessKey (SK).
Untuk informasi lebih lanjut, lihat Buat sumber daya.
- Konfigurasikan demo.Konfigurasikan kelas
MqConfigdan file common.xml berdasarkan informasi sumber daya yang dibuat pada langkah 2.- Modifikasi file pom.xml. Kami merekomendasikan agar Anda mengubah versi TCP client SDK untuk Java menjadi versi terbaru. Untuk informasi tentang versi SDK, lihat Catatan rilis.
<dependency> <groupId>com.aliyun.openservices</groupId> <artifactId>ons-client</artifactId> <!--Kami merekomendasikan agar Anda mengganti nomor versi berikut dengan nomor versi terbaru dari TCP client SDK untuk Java--> <version>1.8.8.5.Final</version> </dependency> - Konfigurasikan kelas
MqConfigdengan merujuk pada kode contoh berikut:public static final String TOPIC = "Topik yang Anda buat"; public static final String GROUP_ID = "Grup konsumen yang Anda buat"; public static final String ORDER_TOPIC = "Topik yang Anda buat untuk mengirim dan menerima pesan terurut"; public static final String GROUP_ID = "Grup konsumen yang Anda buat untuk mengirim dan menerima pesan terurut"; public static final String ACCESS_KEY = "ID AccessKey dari akun Alibaba Cloud Anda". Untuk informasi tentang cara mendapatkan ID AccessKey, lihat Buat pasangan AccessKey"; public static final String SECRET_KEY = "Rahasia AccessKey dari akun Alibaba Cloud Anda. Untuk informasi tentang cara mendapatkan rahasia AccessKey, lihat Buat pasangan AccessKey"; public static final String TAG = "Tag kustom dari pesan"; public static final String NAMESRV_ADDR = "Titik akhir TCP yang dapat digunakan untuk mengakses instance Message Queue for Apache RocketMQ Anda. Anda dapat melihat titik akhir di bagian TCP Endpoint halaman Detail Instance di konsol Message Queue for Apache RocketMQ;Catatan- Anda juga dapat menggunakan pasangan AccessKey dari pengguna RAM yang diberi izin pada topik yang Anda buat.
- Untuk informasi lebih lanjut, lihat Metode dan parameter.
- Konfigurasikan file common.xml.
<props> <prop key="AccessKey">XXX</prop> <!-- Ubah nilai berdasarkan sumber daya Anda. --> <prop key="SecretKey">XXX</prop> <prop key="GROUP_ID">XXX</prop> <prop key="Topic">XXX</prop> <prop key="NAMESRV_ADDR">XXX</prop> </props>
- Modifikasi file pom.xml. Kami merekomendasikan agar Anda mengubah versi TCP client SDK untuk Java menjadi versi terbaru. Untuk informasi tentang versi SDK, lihat Catatan rilis.
Jalankan demo dengan memanggil metode utama
- Kirim pesan.
- Kirim pesan normal:
- Java: Jalankan kelas
SimpleMQProducer. - Spring: Jalankan kelas
ProducerClient.
- Java: Jalankan kelas
- Kirim pesan transaksional:
- Java: Jalankan kelas
SimpleTransactionProducer.Kelas
LocalTransactionCheckerImpldigunakan untuk memeriksa status transaksi lokal. Untuk informasi lebih lanjut, lihat Kirim dan terima pesan transaksional. - Spring: Jalankan kelas
TransactionProducerClient. - Spring Boot: Jalankan kelas
TransactionProducerClient.
- Java: Jalankan kelas
- Kirim pesan terurut:
- Java: Jalankan kelas
SimpleOrderProducer. - Spring: Jalankan kelas
OrderProducerClient. - Spring Boot: Jalankan kelas
OrderProducerClient.
Pesan terurut dikirim dan dikonsumsi dalam urutan first-in-first-out (FIFO). Untuk informasi lebih lanjut, lihat Kirim dan terima pesan terurut.
- Java: Jalankan kelas
- Kirim pesan terjadwal dan tertunda: Jalankan kelas
MQTimerProducer. Pesan dikirim setelah penundaan 3 detik.Anda juga dapat menentukan waktu tunda untuk mengirimkan pesan-pesan ini. Nilai maksimum dari waktu tunda adalah 40 hari. Untuk informasi lebih lanjut, lihat Kirim dan terima pesan terjadwal.
Di Konsol ApsaraMQ for RocketMQ, kueri pesan berdasarkan topik. Anda dapat melihat bahwa pesan dikirim ke topik. - Kirim pesan normal:
- Terima pesan.
- Terima pesan normal:
- Java: Jalankan kelas
SimpleMQConsumer. - Spring: Jalankan kelas
ConsumerClient. - Spring Boot: Jalankan kelas
ConsumerClient.
- Java: Jalankan kelas
- Terima pesan transaksional:
- Java: Jalankan kelas
SimpleMQConsumer. - Spring: Jalankan kelas
ConsumerClient. - Spring Boot: Jalankan kelas
ConsumerClient.
- Java: Jalankan kelas
- Terima pesan terurut:
- Java: Jalankan kelas
SimpleOrderConsumer. - Spring: Jalankan kelas
OrderConsumerClient. - Spring Boot: Jalankan kelas
OrderConsumerClient.
- Java: Jalankan kelas
- Terima pesan terjadwal dan tertunda: Jalankan kelas
SimpleMQConsumer.Catatan Spring dan Spring Boot tidak mendukung transmisi pesan terjadwal dan tertunda.
Sebuah log dicetak. Log tersebut menunjukkan bahwa pesan telah diterima. Inisialisasi kelas membutuhkan beberapa detik untuk selesai. Di lingkungan produksi, inisialisasi kelas jarang dilakukan. - Terima pesan normal:
Verifikasi hasil: Lihat status konsumen di Konsol ApsaraMQ for RocketMQ. Anda dapat menemukan bahwa konsumen yang telah dimulai sedang online dan telah berlangganan ke topik yang sama.