Saya akan berterima kasih jika ada yang bisa mengarahkan saya ke arah angka skala yang wajar / batasan pada rabbitmq (pada perangkat keras "rata-rata", fwiw) atau memposting pengalaman Anda dengan kinerjanya. Saya mencoba untuk merasakan kapasitas untuk jumlah antrian, jumlah pelanggan pada antrian, implikasi kinerja memiliki ratusan atau ribuan pendengar pada antrian fanout, setiap angka sulit yang mungkin dimiliki siapa pun yang menjalankan kelinci di lingkungan berkapasitas tinggi.
performance
rabbitmq
pengguna21640
sumber
sumber
Jawaban:
Pertama-tama, Anda perlu memahami item mana dalam daftar Anda yang memiliki batas skala yang mungkin Anda tekan, dan mana yang tidak. Beberapa di antaranya tergantung pada implementasi sehingga sangat membantu untuk membaca internal, misalnya buku RabbitMQ in Action.
Jumlah antrian dibatasi oleh RAM Anda. Jumlah pesan yang dimainkan, di sisi lain, tidak dibatasi oleh RAM karena RabbitMQ secara otomatis mengeluarkannya ke disk. Suatu kali saya secara tidak sengaja mendapat hampir 8 juta pesan yang dimainkan di server pengembangan ketika saya tidak memperhatikan.
Juga tidak ada batasan untuk ukuran pesan, tetapi Anda benar-benar harus berpikir dua kali jika ukuran satu pesan melebihi 512 ribu. Saya akhirnya menggunakan cache memori untuk mengirimkan objek besar di antara aplikasi dan hanya mengirim pesan kontrol yang lebih kecil yang menyertakan kunci memcache. Tetapi jika Anda benar-benar ingin, Anda dapat mengirim JPEG besar dan objek biner seperti file JAR sebagai pesan.
Jumlah pelanggan adalah batas OS karena pelanggan membutuhkan setidaknya satu soket TCP terbuka. Tentu saja itu bisa disetel di sebagian besar OS, jadi jarak tempuh Anda akan bervariasi dan itulah sebabnya Anda harus menguji model Anda. Saya telah menggunakan JMETER untuk memuat uji aplikasi web kami dan saya baru saja menemukan plugin AMQP ini https://github.com/jlavallee/JMeter-Rabbit-AMQP tetapi belum menggunakannya. Bagaimanapun, ini adalah jenis pengujian yang akan dengan cepat memberi tahu Anda apa yang akan ditangani oleh perangkat keras Anda (atau konfigurasi VM).
Satu-satunya hal yang sulit yang Anda miliki adalah menguji sejumlah besar konsumen ke antrian fanout. Anda mungkin juga ingin membandingkan menggunakan pertukaran topik, dengan konsumen yang berlangganan menggunakan kunci pengikat wildcard (*) yang mencapai hasil akhir yang sama. Cobalah untuk menjalankan tes ini dengan sebanyak mungkin mesin yang berbeda untuk memastikan bahwa Anda tidak mengalami hambatan yang disebabkan oleh satu server yang menjalankan proses konsumen. PS yang terlihat seperti plugin Jmeter mungkin juga berguna untuk mensimulasikan konsumen.
sumber
Ini sebenarnya bukan pertanyaan yang dapat dijawab - ada terlalu banyak faktor (definisi bergerak dari perangkat "rata-rata", ukuran pesan dalam antrian, jumlah konsumen dan seberapa sering mereka polling / seberapa cepat mereka menyelesaikan pekerjaan dalam pesan, dll. .). Anda benar-benar perlu membandingkan lingkungan Anda.
Yang mengatakan, lihat beberapa diskusi tentang kinerja RabbitMQ ini (termasuk beberapa ide tentang bagaimana Anda dapat membandingkan instalasi Anda untuk melihat apa yang dapat Anda harapkan dari Rabbit):
sumber