全部产品
Search
文档中心

ApsaraMQ for RabbitMQ:Koneksi dan Saluran

更新时间:Jul 02, 2025

Topik ini menjelaskan konsep koneksi dan saluran dalam ApsaraMQ for RabbitMQ serta memberikan catatan terkait penggunaannya.

Koneksi

Koneksi mengacu pada koneksi fisik Protokol Kontrol Transmisi (TCP). Koneksi dibentuk antara aplikasi dan ApsaraMQ for RabbitMQ. Koneksi dapat digunakan untuk mendukung tugas jaringan dasar seperti autentikasi, resolusi alamat IP, dan perutean. Pembentukan koneksi antara aplikasi dan ApsaraMQ for RabbitMQ memerlukan sekitar 15 paket TCP untuk interaksi. Hal ini mengonsumsi sejumlah besar sumber daya jaringan dan sumber daya ApsaraMQ for RabbitMQ. Sejumlah besar koneksi dapat menyebabkan tekanan besar pada ApsaraMQ for RabbitMQ atau bahkan memicu perlindungan terhadap serangan SYN Flood. Dalam kasus ini, ApsaraMQ for RabbitMQ mungkin gagal merespons, dan bisnis Anda terpengaruh.

dg_connection

Saluran

Saluran adalah koneksi virtual yang dibentuk berdasarkan koneksi fisik TCP. Semua operasi berbasis AMQP dilakukan melalui saluran dari koneksi antara aplikasi dan ApsaraMQ for RabbitMQ. Sebagai contoh, antrian dibuat melalui saluran, dan pesan dikirim serta diterima melalui saluran. Setiap koneksi dapat memiliki beberapa saluran. Saluran bergantung pada koneksi; jika koneksi ditutup, semua saluran dari koneksi tersebut juga akan ditutup. Untuk menghubungkan sejumlah besar aplikasi ke ApsaraMQ for RabbitMQ guna mengirim dan menerima pesan, disarankan membentuk jumlah koneksi yang tepat dan menggunakan kembali beberapa saluran dalam satu koneksi untuk mengurangi penggunaan sumber daya sistem.

dg_channel

Catatan Penggunaan

  • Gunakan koneksi persisten. Hindari membuka atau menutup koneksi secara berulang. Jika diperlukan untuk membuka atau menutup koneksi secara sering, gunakan kembali beberapa saluran sambil mempertahankan jumlah koneksi yang sesuai. Untuk informasi lebih lanjut tentang batasan operasi API yang dipanggil untuk membuka koneksi dan saluran pada suatu instance, lihat Batasan.

  • Jika jumlah koneksi kecil tetapi volume data yang dikonsumsi besar, kemungkinan terjadi ketidakseimbangan konsumsi. Untuk mencegah masalah ini, tingkatkan jumlah koneksi yang dibentuk oleh setiap konsumen atau tambahkan jumlah konsumen, dengan memastikan bahwa jumlah koneksi yang dibentuk oleh setiap konsumen tetap sama. Disarankan agar total jumlah koneksi yang dibentuk oleh semua konsumen lebih dari 30.

  • Beberapa thread dapat berbagi koneksi. Saat beberapa proses berbagi koneksi, hindari membuka atau menutup koneksi secara sering. Jika tidak, kesalahan ChannelNotFind dapat terjadi.

  • Produsen dan konsumen harus menggunakan koneksi yang berbeda untuk memproduksi dan mengonsumsi pesan.