All Products
Search
Document Center

ApsaraMQ for RabbitMQ:Mengelola exchange

Last Updated:Mar 09, 2026

Exchange menerima pesan dari produsen dan mengirimkannya ke satu atau beberapa Antrian berdasarkan aturan routing. Setiap tipe exchange menggunakan strategi routing yang berbeda—exchange direct mencocokkan kunci routing secara eksak, sedangkan exchange fanout menyiarkan pesan ke semua Antrian yang terikat (bound). Jika tidak ada Antrian yang cocok, exchange akan membuang pesan tersebut.

Tipe Exchange

Pilih tipe exchange yang sesuai dengan kebutuhan routing Anda.

Type

Routing behavior

Use when

direct

Mengirimkan pesan ke Antrian yang kunci binding-nya persis sama dengan kunci routing pesan.

Anda memerlukan pengiriman pesan satu-ke-satu berdasarkan kunci eksak, seperti mengarahkan event order.created ke Antrian pemrosesan pesanan khusus.

topic

Mengirimkan pesan ke Antrian berdasarkan pencocokan pola antara kunci routing pesan dan pola binding. Mendukung wildcard * (mencocokkan tepat satu kata) dan # (mencocokkan nol atau lebih kata) pada kunci routing yang dipisahkan titik.

Anda memerlukan routing fleksibel, seperti mengarahkan logs.error.payment ke Antrian error umum (terikat dengan logs.error.#) dan Antrian khusus pembayaran (terikat dengan logs.*.payment).

fanout

Mengirimkan semua pesan ke setiap Antrian yang terikat, tanpa memperhatikan kunci routing.

Anda perlu menyiarkan pesan ke beberapa konsumen, seperti mendorong notifikasi ke semua klien yang terhubung.

headers

Mengirimkan pesan berdasarkan atribut header pesan, bukan kunci routing. Menggunakan argumen x-match dalam binding: diatur ke all untuk mewajibkan semua header cocok, atau any untuk mencocokkan minimal satu header.

Anda memerlukan routing berdasarkan beberapa atribut, bukan hanya satu kunci routing.

x-delayed-message

Menahan pesan selama durasi tertentu sebelum mengirimkannya. Atur penundaan dalam milidetik menggunakan header pesan x-delay. Strategi routing dasar ditentukan oleh parameter x-delayed-type.

Anda perlu menunda pengiriman pesan, seperti mengirim notifikasi pengingat 30 menit setelah suatu event.

x-consistent-hash

Mengirimkan pesan ke Antrian menggunakan consistent hashing pada kunci routing atau nilai header, sehingga mendistribusikan beban ke beberapa Antrian.

Anda memerlukan distribusi pesan yang merata di antara sejumlah Antrian konsumen untuk Pemrosesan paralel.

Buat Exchange

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Instans ApsaraMQ for RabbitMQ

  • vhost tempat exchange akan dibuat

Prosedur

  1. Masuk ke Konsol ApsaraMQ for RabbitMQ. Di panel navigasi kiri, klik Instances.

  2. Di bilah navigasi atas, pilih wilayah instans Anda. Klik nama instans tersebut.

  3. Di panel navigasi kiri, klik Exchanges.

  4. Di halaman Exchanges, klik tombol Change di samping vhost. Dari daftar drop-down, pilih vhost target. Lalu, klik Create Exchange.

  5. Di panel Create Exchange, konfigurasikan parameter berikut lalu klik OK.

    Parameter

    Description

    Exchange Name

    Nama exchange. Awalan amq. bersifat reservasi dan tidak dapat digunakan. Misalnya, amq.test bukan nama yang valid.

    Type

    Tipe exchange.

    x-delayed-type

    Diperlukan saat Type adalah x-delayed-message. Menentukan strategi routing dasar (direct, topic, fanout, headers, atau x-jms-topic).

    Hash value

    Diperlukan saat Type adalah x-consistent-hash. Menentukan sumber input hash: RoutingKey atau Header Value.

    hash-header

    Diperlukan saat Hash value diatur ke Header Value. Menentukan kunci header yang digunakan sebagai input hash.

    Internal

    Apakah exchange bersifat internal. Default: No. Atur ke Yes untuk membuat exchange internal yang hanya menerima pesan dari exchange lain (bukan langsung dari produsen). Atur ke No untuk exchange standar yang terikat ke Antrian.

Ikat Exchange ke Antrian

Ikat exchange ke Antrian untuk menentukan tujuan pengiriman pesan oleh exchange tersebut.

  1. Di halaman Exchanges, temukan exchange tersebut lalu klik Bound as Source di kolom Actions.

  2. Di tab Bound as Source pada halaman Exchange Details, klik Add Binding.

  3. Di panel Add Binding, atur Type of Destination to Bind ke Queue, pilih Antrian dari daftar drop-down Destination to Bind, konfigurasikan Routing Key, lalu klik OK.

Catatan
  • Untuk exchange x-consistent-hash, nilai Routing Key menentukan bobot Antrian (bilangan bulat dari 1 hingga 20). Untuk mengubah bobot, hapus binding yang ada dan buat yang baru.

  • Jika sebuah exchange diikat ke Antrian yang sama beberapa kali, hanya binding pertama yang cocok yang berlaku.

Ikat Exchange ke Exchange Lain

Teruskan pesan ke exchange lain (source binding)

Konfigurasikan exchange saat ini sebagai sumber untuk meneruskan pesannya ke exchange downstream berdasarkan aturan routing.

  1. Di halaman Exchanges, temukan exchange tersebut lalu klik Bound as Source di kolom Actions.

  2. Di tab Bound as Source, klik Add Binding.

  3. Di panel Add Binding, atur Type of Destination to Bind ke Exchange, pilih exchange tujuan dari daftar drop-down Destination to Bind, konfigurasikan Routing Key, lalu klik OK.

Terima pesan dari exchange lain (destination binding)

Konfigurasikan exchange saat ini sebagai tujuan untuk menerima pesan dari exchange upstream.

  1. Di halaman Exchanges, temukan exchange tersebut lalu klik Details di kolom Actions.

  2. Di halaman Exchange Details, klik tab Bound as Destination. Klik Add Binding.

  3. Di panel Add Binding, pilih exchange sumber dari daftar drop-down Source Exchange, masukkan kunci routing, pertahankan nilai default untuk Type of Destination to Bind dan Destination Exchange, lalu klik OK.

Kirim Pesan

Setelah mengikat exchange, Anda dapat mengirim pesan dari exchange ke Antrian yang terikat atau dari exchange tujuan ke exchange sumber melalui Konsol ApsaraMQ for RabbitMQ.

  1. Di halaman Exchanges, temukan exchange tersebut lalu klik Details di kolom Actions.

  2. Di pojok kanan atas halaman Exchange Details, klik Send Message.

  3. Di panel Send Message, masukkan Routing Key, pilih nilai untuk mandatory (true atau false), masukkan Message ID dan Message Body, lalu klik OK.

Lihat Statistik Exchange

Lihat metrik exchange untuk memantau routing pesan dan mengidentifikasi masalah.

  1. Di halaman Exchanges, temukan exchange tersebut lalu klik Details di kolom Actions.

  2. Di halaman Exchange Details, klik tab Dashboard.

Metrik yang tersedia bergantung pada edisi instans Anda:

Instance edition

Monitoring source

Details

Edisi Perusahaan, Edisi Platinum Perusahaan

Managed Service for Prometheus dan Managed Service for Grafana

Lihat Dashboard.

Edisi Profesional, Edisi Standar

CloudMonitor

Lihat Pemantauan dan Peringatan.

Catatan

Instans Edisi Standar tidak lagi tersedia untuk pembelian baru. Instans Edisi Standar yang sudah ada tetap berfungsi.

Hapus Exchange

Peringatan
  • Setelah Anda menghapus exchange, produsen tidak dapat lagi mengirim pesan ke exchange tersebut, dan exchange tidak dapat lagi mengirimkan pesan ke satu atau beberapa Antrian atau membuang pesan. Lakukan dengan hati-hati.

  • Exchange bertipe headers tidak dapat dihapus.

  • Exchange bawaan vhost (amq.direct, amq.topic, amq.fanout, amq.headers, dan amq.match) tidak dapat dihapus.

  1. Di halaman Exchanges, klik nama exchange yang akan dihapus.

  2. Di pojok kanan atas halaman Exchange Details, klik Delete.

  3. Di dialog konfirmasi Note, klik OK.

Referensi

Untuk informasi lebih lanjut tentang konsep dan arsitektur exchange, lihat Exchange.