全部产品
Search
文档中心

ApsaraMQ for RocketMQ:Produsen

更新时间:Jul 02, 2025

Topik ini menjelaskan konsep produsen dalam ApsaraMQ for RocketMQ, termasuk peran produsen dalam model pesan, atributnya, kompatibilitas, serta beberapa catatan penggunaan.

Definisi

Seorang produsen di ApsaraMQ for RocketMQ adalah entitas fungsional yang bertugas membuat dan mengirimkan pesan ke server.

Biasanya, produsen terintegrasi dengan sistem bisnis untuk mengenkapsulasi data sebagai pesan dalam ApsaraMQ for RocketMQ dan mengirimkannya ke server. Untuk informasi lebih lanjut tentang pesan, lihat Pesan.

Elemen berikut didefinisikan pada sisi pengiriman pesan oleh produsen:

  • Mode transmisi: Produsen dapat menentukan mode transmisi pesan melalui Operasi API. ApsaraMQ for RocketMQ mendukung transmisi sinkron dan asinkron. Untuk detail lebih lanjut, lihat Model.

  • Perilaku transaksional: ApsaraMQ for RocketMQ mendukung pesan transaksional. Produsen berperan dalam pemeriksaan transaksi untuk memastikan konsistensi akhir dari transaksi. Untuk informasi lebih lanjut, lihat Pesan transaksional.

Hubungan antara produsen dan topik bersifat banyak-ke-banyak. Seorang produsen dapat mengirim pesan ke beberapa topik, dan sebuah topik dapat menerima pesan dari beberapa produsen. Hubungan ini meningkatkan performa dan mendukung pemulihan bencana.

Producers and topics

Hubungan model

Gambar berikut menggambarkan peran produsen dalam model pesan ApsaraMQ for RocketMQ.Producer

  1. Produsen memproduksi dan mengirim pesan ke broker ApsaraMQ for RocketMQ.
  2. Broker ApsaraMQ for RocketMQ menyimpan pesan dalam antrian sesuai urutan penerimaan berdasarkan topik.
  3. Konsumen mengambil dan mengonsumsi pesan dari broker ApsaraMQ for RocketMQ berdasarkan langganan yang ditentukan.

Atribut internal

ID Klien

  • Definisi: Identitas unik global produsen dalam satu kluster. Digunakan untuk membedakan antar produsen.

  • Nilai: ID klien dibuat otomatis oleh SDK ApsaraMQ for RocketMQ dan digunakan untuk operasional seperti log dan debugging. ID klien tidak dapat diubah.

Parameter Komunikasi
  • Titik akhir (wajib): Alamat yang digunakan klien untuk mengakses broker ApsaraMQ for RocketMQ. Titik akhir mengidentifikasi kluster broker.

    Konfigurasikan titik akhir dalam format tertentu. Kami merekomendasikan penggunaan nama domain daripada alamat IP untuk mencegah masalah selama perubahan node.

  • Otentikasi identitas (opsional): Kredensial untuk memverifikasi identitas klien.

    Parameter ini hanya diperlukan jika fitur otentikasi diaktifkan pada broker.

  • Periode timeout permintaan (opsional): Timeout untuk permintaan klien. Untuk nilai valid, lihat Batas Parameter.

Daftar Topik Prebound

  • Definisi: Daftar topik tempat produsen ApsaraMQ for RocketMQ mengirim pesan. Topik prebound memberikan manfaat berikut:

    • Pesan transaksional: Atribut daftar topik prebound harus ditentukan untuk pesan transaksional. Dalam skenario transaksional, ketika produsen pulih atau dimulai ulang, ia memeriksa apakah ada pesan transaksional yang belum dikomit di topik.

    • Pesan non-transaksional : Server memeriksa izin akses dan validitas topik tujuan berdasarkan daftar topik prebound saat inisialisasi produsen, bukan setelah aplikasi dimulai. Disarankan untuk menentukan atribut daftar topik prebound untuk pesan non-transaksional.

      Jika atribut daftar topik prebound tidak ditentukan untuk pesan non-transaksional atau topik tujuan diubah, ApsaraMQ for RocketMQ akan secara dinamis memeriksa dan mengidentifikasi topik tujuan tersebut.

  • Batas: Untuk pesan transaksional, topik prebound harus ditentukan dan digunakan bersama dengan pemeriksa transaksi.

Pemeriksa Transaksi

  • ApsaraMQ for RocketMQ menggunakan mekanisme pesan transaksional yang mengharuskan produsen mengimplementasikan pemeriksa transaksi untuk memastikan konsistensi akhir transaksi. Untuk informasi lebih lanjut, lihat Pesan transaksional.

  • Saat mengirim pesan transaksional, pemeriksa transaksi harus dikonfigurasi dan digunakan bersama dengan topik prebound.

Kebijakan Pengulangan Pengiriman menentukan cara produsen mencoba mengirim ulang pesan setelah kegagalan. Untuk informasi lebih lanjut, lihat Pengulangan Pengiriman Pesan.

Kompatibilitas

Mulai versi 5.x ApsaraMQ for RocketMQ, produsen anonim dan grup produsen dihentikan. Untuk Message Queue for Apache RocketMQ versi 3.x dan 4.x, grup produsen yang ada dapat dihentikan tanpa memengaruhi bisnis Anda.

Catatan penggunaan

Kami merekomendasikan Anda membatasi jumlah produsen pada proses individu.

Dalam ApsaraMQ for RocketMQ, hubungan antara produsen dan topik bersifat banyak-ke-banyak. Seorang produsen tunggal dapat mengirim pesan ke beberapa topik. Kami merekomendasikan pembuatan jumlah produsen minimum yang diperlukan dan penggunaan kembali sebanyak mungkin produsen. Misalnya, dalam skenario multi-topik, Anda tidak perlu membuat produsen baru untuk setiap topik.

Kami merekomendasikan Anda tidak membuat dan menghapus produsen secara rutin.

Produsen ApsaraMQ for RocketMQ adalah sumber daya tingkat rendah yang dapat digunakan kembali, seperti kumpulan koneksi database. Hindari membuat produsen setiap kali mengirim pesan atau menghapusnya setelah pengiriman. Ini akan menghasilkan beban tinggi pada sistem karena permintaan koneksi singkat.

  • Contoh penggunaan yang benar

    Producer p = ProducerBuilder.build();
      for (int i =0;i<n;i++)
        {
          Message m= MessageBuilder.build();
          p.send(m);
        }
    p.shutdown();
  • Contoh penggunaan yang salah

    for (int i =0;i<n;i++)
      {
        Producer p = ProducerBuilder.build();
        Message m= MessageBuilder.build();
        p.send(m);
        p.shutdown();
      }