Exchange mengarahkan pesan dari produsen ke satu atau beberapa queue atau membuangnya berdasarkan routing key. Setiap tipe exchange menerapkan aturan routing yang berbeda. Anda dapat membuat exchange, melihat statistik, mengonfigurasi binding, dan mengirim pesan uji di konsol Alibaba Cloud Message Queue for RabbitMQ.
Buat exchange
Masuk ke ApsaraMQ for RabbitMQ console. Di panel navigasi sebelah kiri, klik Instances.
Di bilah navigasi atas halaman Instances, pilih wilayah tempat instans yang ingin Anda kelola berada. Lalu, dalam daftar instans, klik nama instans yang ingin Anda kelola.
Di panel navigasi sebelah kiri, klik Exchanges.
-
Pada halaman Exchanges, pilih vhost dari daftar drop-down Change di samping vhost, lalu klik Create Exchange.
-
Di panel Create Exchange, masukkan Exchange Name, pilih Type, tentukan apakah exchange tersebut merupakan exchange internal, lalu klik OK.
Parameter
Deskripsi
Exchange Name
Nama exchange. Nama yang diawali dengan
amq.bersifat reserved. Misalnya,amq.testtidak valid.Type
Tipe exchange. Nilai yang valid:
-
direct: Mengarahkan pesan ke queue yang binding key-nya persis cocok dengan routing key.
-
topic: Mirip dengan direct, tetapi mendukung pencocokan pola wildcard antara routing key dan binding key.
-
fanout: Mengarahkan semua pesan ke setiap queue yang terikat (bound), mirip dengan siaran (broadcast).
-
headers: Mengarahkan pesan dengan mencocokkan atribut header pesan terhadap atribut binding, keduanya ditentukan sebagai pasangan kunci-nilai. Tidak menggunakan routing key.
-
x-delayed-message: Atur header x-delay pada pesan untuk menentukan penundaan dalam milidetik. Setelah periode x-delay berakhir, pesan diarahkan berdasarkan tipe routing exchange yang ditentukan dalam x-delayed-type.
-
x-consistent-hash: Melakukan penghashan terhadap nilai routing key atau header dan menggunakan consistent hashing untuk mendistribusikan pesan ke berbagai queue.
x-delayed-type
Diperlukan saat Type bernilai
x-delayed-message. Menentukan tipe routing untuk exchange tersebut.Hash value
Diperlukan saat Type bernilai
x-consistent-hash. Menentukan tipe input untuk perhitungan hash. Nilai yang valid:-
Routing Key
-
Header Value: Jika dipilih, Anda juga harus menentukan parameter hash-header.
hash-header
Diperlukan saat Type bernilai
x-consistent-hashdan Hash value bernilai Header Value. Kunci header yang digunakan sebagai input untuk perhitungan hash.Internal
Apakah exchange tersebut internal. Default: No. Nilai yang valid:
-
Yes: Exchange bersifat internal dan hanya digunakan untuk binding antar-exchange.
-
No: Exchange tidak bersifat internal dan digunakan untuk binding exchange ke queue.
-
Lihat statistik
Anda dapat melihat berbagai metrik untuk mengidentifikasi dan menemukan masalah sedini mungkin.
-
Pada halaman Exchanges, temukan exchange target dan klik Details di kolom Actions.
-
Pada halaman Exchange Details, klik tab Monitoring and Alerting atau Dashboard.
Statistik yang tersedia bergantung pada edisi instans:
-
Edisi Perusahaan dan Edisi Platinum Perusahaan: Anda dapat melihat metrik yang disediakan oleh Managed Service for Prometheus dan Managed Service for Grafana. Untuk informasi tentang dashboard dan metrik yang ditampilkan di dashboard, lihat Dashboard.
-
Edisi Standar dan Edisi Profesional: Anda dapat melihat data pemantauan yang disediakan oleh CloudMonitor. Untuk informasi tentang metrik yang disediakan oleh CloudMonitor, lihat Monitoring and alerting.
CatatanApsaraMQ for RabbitMQ tidak lagi memungkinkan pembelian instans Edisi Standar. Anda dapat terus menggunakan instans Edisi Standar yang sudah ada.
-
Bind exchange ke queue
Bind exchange ke queue agar pesan dapat diarahkan ke queue tersebut.
-
Pada halaman Exchanges, temukan exchange target dan klik Bound as Source di kolom Actions.
-
Pada halaman Exchange Details, klik tab Bound as Source, lalu klik Add Binding.
-
Di panel Add Binding, atur Type of Destination to Bind menjadi Queue, pilih queue untuk Destination to Bind, atur Routing Key, lalu klik OK.
Catatan-
Untuk exchange x-consistent-hash, Routing Key merepresentasikan bobot queue dan harus berupa bilangan bulat dari 1 hingga 20.
-
Jika terdapat binding duplikat, hanya binding valid pertama yang berlaku.
-
Untuk mengubah bobot queue yang terikat, hapus binding yang ada dan tambahkan binding baru.

-
Bind exchange ke exchange lain
Bind exchange ke exchange lain sebagai tujuannya. Pesan diteruskan dari sumber ke tujuan berdasarkan aturan routing.
-
Pada halaman Exchanges, temukan exchange target dan klik Bound as Source di kolom Actions.
-
Pada halaman Exchange Details, klik tab Bound as Source, lalu klik Add Binding.
-
Di panel Add Binding, atur Type of Destination to Bind menjadi Exchange, pilih exchange untuk Destination to Bind, atur Routing Key, lalu klik OK.

Bind exchange sebagai tujuan
Bind exchange sumber ke exchange saat ini sehingga exchange ini menjadi tujuan. Pesan diteruskan dari sumber berdasarkan aturan routing.
-
Pada halaman Exchanges, temukan exchange target dan klik Details di kolom Actions.
-
Pada halaman Exchange Details, klik tab Bound as Destination, lalu klik Add Binding.
-
Di panel Add Binding, pilih Source Exchange dan masukkan routing key di kotak teks Routing Key. Type of Destination to Bind secara default bernilai Exchange, dan Destination Exchange secara default adalah exchange ini. Klik OK.

Kirim pesan
Setelah membuat binding, Anda dapat mengirim pesan uji dari konsol. Pesan akan diarahkan ke queue atau exchange tujuan yang terikat.
-
Pada halaman Exchanges, temukan exchange target dan klik Details di kolom Actions.
-
Pada halaman Exchange Details, klik tab Bound as Source atau Bound as Destination.
-
Dalam daftar binding, temukan binding target dan klik Send Message di kolom Actions.
-
Di panel Send Message yang muncul, masukkan Message ID dan Message Body, lalu klik OK.
Hapus exchange
-
Menghapus exchange bersifat ireversibel. Produsen tidak dapat lagi mengirim pesan ke exchange tersebut, dan seluruh proses routing akan berhenti.
-
Anda tidak dapat menghapus exchange bertipe headers.
-
Anda tidak dapat menghapus tiga exchange bawaan dalam vhost:
amq.direct,amq.topic, danamq.fanout.
-
Pada halaman Exchanges, klik nama exchange yang ingin Anda hapus. Pada halaman Exchange Details, klik Delete di pojok kanan atas.
-
Di kotak dialog Confirmation, baca pesan tersebut dan klik OK.