Setelah mengevaluasi Redis dan RabbitMQ, saya memilih RabbitMQ sebagai broker kami karena alasan berikut:
- RabbitMQ memungkinkan Anda untuk menggunakan lapisan keamanan bawaan dengan menggunakan sertifikat SSL untuk mengenkripsi data yang Anda kirim ke broker dan itu berarti tidak ada yang akan mengendus data Anda dan memiliki akses ke data penting organisasi Anda.
- RabbitMQ adalah produk yang sangat stabil yang dapat menangani sejumlah besar kejadian per detik dan banyak koneksi tanpa harus menjadi penghambat.
- Di organisasi kami, kami sudah menggunakan RabbitMQ dan memiliki pengetahuan internal yang baik tentang penggunaannya dan integrasi yang sudah disiapkan dengan chef.
Mengenai penskalaan, RabbitMQ memiliki implementasi klaster bawaan yang dapat Anda gunakan selain penyeimbang beban untuk mengimplementasikan lingkungan pialang yang redundan.
Apakah klaster RabbitMQ saya Aktif Aktif atau Pasif Aktif?
Sekarang ke titik lemah menggunakan RabbitMQ:
- kebanyakan pengirim Logstash tidak mendukung RabbitMQ tetapi di sisi lain, yang terbaik, bernama Beaver, memiliki implementasi yang akan mengirim data ke RabbitMQ tanpa masalah.
- Implementasi yang dimiliki Beaver dengan RabbitMQ dalam versi saat ini agak lambat dalam kinerjanya (untuk tujuan saya) dan tidak mampu menangani tingkat 3000 kejadian / detik dari satu server dan dari waktu ke waktu layanan macet.
- Saat ini saya sedang mengerjakan perbaikan yang akan menyelesaikan masalah kinerja untuk RabbitMQ dan membuat pengirim Beaver lebih stabil. Solusi pertama adalah menambahkan lebih banyak proses yang dapat berjalan secara bersamaan dan akan memberikan lebih banyak kekuatan kepada pengirim. Solusi kedua adalah mengubah Beaver untuk mengirim data ke RabbitMQ secara asynchronous yang secara teori akan lebih cepat. Saya berharap saya akan menyelesaikan penerapan kedua solusi tersebut pada akhir minggu ini.
Anda dapat mengikuti masalahnya di sini:
https://github.com/josegonzalez/python-beaver/issues/323
Dan periksa permintaan tarik di sini:
https://github.com/josegonzalez/python-beaver/pull/324
Jika Anda memiliki pertanyaan lain, silakan tinggalkan komentar.