AMQProxy adalah layanan proxy open source untuk Advanced Message Queuing Protocol (AMQP) yang mendukung penggunaan ulang koneksi AMQP. Layanan ini memungkinkan klien yang hanya mendukung koneksi singkat, seperti klien PHP, untuk memanfaatkan koneksi persisten, sehingga mengurangi konsumsi jaringan dan sumber daya ApsaraMQ for RabbitMQ.
Prasyarat
Jika Anda ingin menggunakan koneksi SSL antara AMQProxy dan ApsaraMQ for RabbitMQ, pastikan OpenSSL telah diinstal pada server klien Anda. Untuk informasi selengkapnya, lihat Downloads.
Koneksi SSL ke ApsaraMQ for RabbitMQ tidak didukung di lingkungan VPC.
Informasi latar belakang
Klien dalam beberapa bahasa pemrograman, seperti PHP, tidak dapat menggunakan koneksi persisten dan sering membuka serta menutup koneksi secara berulang. Hal ini menghabiskan banyak sumber daya jaringan dan ApsaraMQ for RabbitMQ, sehingga memberikan beban signifikan pada ApsaraMQ for RabbitMQ.

AMQProxy
AMQProxy adalah layanan proxy AMQP open source yang disediakan oleh Cloud AMQP. Layanan ini memungkinkan klien mempertahankan koneksi persisten dengan ApsaraMQ for RabbitMQ. Setelah Anda menerapkan AMQProxy pada server klien, semua permintaan antara klien dan ApsaraMQ for RabbitMQ akan diarahkan melalui AMQProxy.
AMQProxy menangani permintaan koneksi dari klien sebagai berikut:
-
Saat klien meminta membuka koneksi, AMQProxy memeriksa apakah terdapat koneksi yang sesuai untuk digunakan ulang berdasarkan username, password, dan Vhost. Jika ditemukan kecocokan, AMQProxy menggunakan ulang koneksi tersebut. Jika tidak, AMQProxy membuka koneksi baru ke ApsaraMQ for RabbitMQ atas nama klien.
-
Saat klien meminta menutup koneksi, AMQProxy segera mengirimkan respons OK tetapi tidak menutup koneksi aktual ke ApsaraMQ for RabbitMQ. Ketika klien kemudian meminta koneksi baru, AMQProxy menggunakan ulang koneksi yang sudah ada.

Untuk informasi selengkapnya tentang AMQProxy, lihat AMQProxy.
Terapkan AMQProxy
-
Jalankan perintah berikut untuk mengunduh paket AMQProxy.
wget https://github.com/cloudamqp/amqproxy/releases/download/v0.4.4/amqproxy-0.4.4-1.linux-x86_64-static.tar.gzCatatanDokumen ini menggunakan AMQProxy 0.4.4 sebagai contoh. Untuk informasi selengkapnya tentang versi lain AMQProxy, lihat Releases.
-
Jalankan perintah berikut untuk mengekstrak paket AMQProxy.
tar -xzvf amqproxy-0.4.4-1.linux-x86_64-static.tar.gz -
Jalankan perintah berikut untuk masuk ke direktori AMQProxy.
cd amqproxy/ -
Jalankan perintah berikut untuk menjalankan AMQProxy.
./amqproxy -l LISTEN_ADDRESS -p LISTEN_PORT AMQP_URLParameter
Deskripsi
LISTEN_ADDRESS
Alamat IP AMQProxy. Karena Anda menerapkan AMQProxy pada server client, Anda dapat menggunakan alamat lokal 127.0.0.1.
LISTEN_PORT
Port pendengar untuk AMQProxy. Permintaan client dikirim ke AMQProxy melalui port ini. Anda dapat menggunakan port yang tersedia, misalnya 5673.
AMQP_URL
URL instans ApsaraMQ for RabbitMQ. Formatnya adalah
{amqp|amqps}://{endpoint}.-
amqp: Protokol AMQP. Gunakan protokol ini untuk koneksi non-SSL.
-
amqps: Protokol AMQP/SSL. Gunakan protokol ini untuk koneksi SSL.
-
endpoint: Titik akhir instans ApsaraMQ for RabbitMQ. Anda dapat menemukan titik akhir tersebut di halaman Instance Details di Konsol ApsaraMQ for RabbitMQ. Untuk informasi selengkapnya, lihat View instance details.
Berikut ini contoh perintah:
./amqproxy -l 127.0.0.1 -p 5673 amqps://188XXX420.mq-amqp.cn-hangzhou-a.aliyuncs.comBerikut ini contoh respons:
Proxy upstream: 188XXX420.mq-amqp.cn-hangzhou-a.aliyuncs.com:5671 TLS Proxy listening on 127.0.0.1:5673 0 clients 0 upstreamsParameter
Deskripsi
clients
Jumlah koneksi antara client dan AMQProxy.
upstreams
Jumlah koneksi antara AMQProxy dan instans ApsaraMQ for RabbitMQ.
-
-
Dalam kode klien Anda, ubah host dan port menjadi alamat IP dan port pendengar AMQProxy.
factory.setHost("127.0.0.1"); factory.setPort(5673);