Rabbitmq - Harapan kinerja / skala yang masuk akal

13

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.

pengguna21640
sumber
Ini sangat mudah untuk diuji, terutama mengingat, dengan angka yang Anda harapkan, Anda memiliki anggaran untuk menyiapkan beberapa VM. Saya sangat menyarankan Anda mengujinya berdasarkan kasus penggunaan yang tepat, pada perangkat keras yang Anda harapkan untuk digunakan.
Andrew M.
Lihatlah rencana CloudAMQP - ini adalah angka-angka kinerja yang diuji untuk konfigurasi perangkat keras tertentu.
Pasang kembali Monica - M. Schröder

Jawaban:

11

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.

Michael Dillon
sumber
6

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):

voretaq7
sumber
1
Saya menyadari banyak variabel. Itu sebabnya saya menyebutkan hal-hal seperti "rata-rata" perangkat keras, dalam tanda kutip karena saya mengerti betapa kaburnya ide itu. Meskipun demikian saya pikir beberapa angka yang berasal dari pengalaman orang akan berguna. Terima kasih untuk referensi.
user21640
1
@ user21640 Bukan hanya perangkat keras yang menambahkan fuzz ke pertanyaan Anda - Perdagangan Frekuensi Tinggi mungkin memiliki gagasan berbeda tentang "kapasitas tinggi" daripada Anda atau saya, dan definisi yang sangat berbeda dari kinerja yang dapat diterima. Pada akhirnya satu-satunya orang yang memiliki pengalaman masalah adalah Anda, di lingkungan Anda, dan dalam pengalaman saya satu terencana patokan lokal senilai ribuan laporan eksternal ketika datang ke kepercayaan perencanaan kapasitas - Anda tidak pernah tahu kapan beban kerja Anda adalah THE kasus patologis: -)
voretaq7