全部产品
Search
文档中心

ApsaraMQ for RocketMQ:Proyek Demo

更新时间:Jul 02, 2025

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

  1. Impor file proyek demo ke IntelliJ IDEA.
  2. 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.

  3. Konfigurasikan demo.
    Konfigurasikan kelas MqConfig dan file common.xml berdasarkan informasi sumber daya yang dibuat pada langkah 2.
    1. 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>                            
    2. Konfigurasikan kelas MqConfig dengan 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.
    3. 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>

Jalankan demo dengan memanggil metode utama

  1. Kirim pesan.
    • Kirim pesan normal:
      • Java: Jalankan kelas SimpleMQProducer.
      • Spring: Jalankan kelas ProducerClient.
      • Spring Boot: Jalankan kelas ProducerClient.
    • Kirim pesan transaksional:
      • Java: Jalankan kelas SimpleTransactionProducer.

        Kelas LocalTransactionCheckerImpl digunakan untuk memeriksa status transaksi lokal. Untuk informasi lebih lanjut, lihat Kirim dan terima pesan transaksional.

      • Spring: Jalankan kelas TransactionProducerClient.
      • Spring Boot: Jalankan kelas TransactionProducerClient.
    • 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.

    • 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.
  2. Terima pesan.
    • Terima pesan normal:
      • Java: Jalankan kelas SimpleMQConsumer.
      • Spring: Jalankan kelas ConsumerClient.
      • Spring Boot: Jalankan kelas ConsumerClient.
    • Terima pesan transaksional:
      • Java: Jalankan kelas SimpleMQConsumer.
      • Spring: Jalankan kelas ConsumerClient.
      • Spring Boot: Jalankan kelas ConsumerClient.
    • Terima pesan terurut:
      • Java: Jalankan kelas SimpleOrderConsumer.
      • Spring: Jalankan kelas OrderConsumerClient.
      • Spring Boot: Jalankan kelas OrderConsumerClient.
    • 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.

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.

Referensi