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.

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.

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
ChannelNotFinddapat terjadi.Produsen dan konsumen harus menggunakan koneksi yang berbeda untuk memproduksi dan mengonsumsi pesan.