Saat ini kami hanya memiliki satu server back-end per situs / layanan web. Saya tertarik untuk mendengar pengalaman orang-orang dengan berbagai aplikasi penyeimbang beban (sesuatu yang berjalan di Linux).
Apa yang akan kamu rekomendasikan?
Saat ini kami hanya memiliki satu server back-end per situs / layanan web. Saya tertarik untuk mendengar pengalaman orang-orang dengan berbagai aplikasi penyeimbang beban (sesuatu yang berjalan di Linux).
Apa yang akan kamu rekomendasikan?
Jawaban:
Menurut episode 27 dari podcast StackOverflow , orang-orang Reddit benar-benar menyukai HAProxy . Berikut ini adalah tutorial singkat yang menunjukkan HAProxy digunakan dengan EC2 Amazon . Anda dapat menemukan lebih banyak informasi di situs web HAProxy .
Pertanyaannya tidak memberikan informasi spesifik tentang memuat, fitur yang diperlukan, dll, sehingga jawaban seperti itu adalah tebakan terbaik.
Pound adalah pilihan yang baik untuk situs yang lebih kecil / menengah. Ini menawarkan dukungan HTTPS dan pengaturan yang mudah.
HAproxy dapat menskalakan untuk menjenuhkan pipa Ethernet 10G, dan menawarkan pembatasan koneksi, yaitu mengirimkan hanya jumlah permintaan simultan ke setiap server backend karena Anda memiliki contoh-contoh yang ditangani oleh anak-anak Apache / Ruby on Rails.
nginx sangat bagus sebagai penyeimbang beban allround dan server file statis. Ia dapat melakukan kompresi HTTP, penulisan ulang URL, dan penyajian file statis saat melakukan load balancing.
Apache dalam seri 2.2 penyeimbang beban yang cukup bagus juga. Dapat melakukan hal yang sama seperti nginx, tetapi menempatkan beban yang lebih tinggi di server daripada nginx. Sangat layak untuk dilihat jika Anda sudah terbiasa dengan Apache, dan sangat dewasa.
Perlbal menawarkan pembatasan koneksi mudah ke host backend, permintaan multiplexing di seluruh koneksi HTTP persisten, dan pengaturan mudah jika Anda sudah menggunakan Perl.
Tembolok pernis adalah proksi HTTP terbalik, dengan dukungan penyeimbangan beban dasar. Ini bukan penyeimbang beban yang hebat, tetapi dalam beberapa situasi cache dalam-memori dari sebagian besar objek yang diminta dapat menghapus persentase tinggi dari hit server backend, dan memiliki kinerja yang hebat. ESI termasuk berpotensi menarik.
Saya tidak 100% yakin, tetapi dari atas kepala saya, Perlbal dan nginx menawarkan beberapa dukungan untuk mengubah konfigurasi tanpa memulai kembali penyeimbang beban. Untuk situs yang lebih besar ini sangat penting, dan itu adalah salah satu hal yang baik dilakukan alat penyeimbang beban komersial.
Semua hal di atas adalah penyeimbang beban level HTTP (layer 7). Penyeimbang beban tingkat TCP / IP memiliki potensi untuk mencapai hasil yang lebih tinggi, tetapi dibatasi dengan cara lain. Penulis HAProxy telah menulis ikhtisar yang bagus dan dapat dibaca tentang metode dan masalah penyeimbangan beban: http://1wt.eu/articles/2006_lb/
LVS adalah penyeimbang beban tingkat TCP / IP yang banyak digunakan. Sebagian besar firewall juga dapat melakukan penyeimbangan beban dasar pada tingkat IP, dengan hashing permintaan yang masuk melalui berbagai alamat IP backend - setidaknya PBS OpenBSD dan Cisco ASA dan Juniper Netscreens dapat melakukan ini.
Kami menggunakan LVS dalam produksi. Ini dikelola oleh tim operasi kami dengan serangkaian skrip yang rumit dan jahat. Sistem dipesan lebih dahulu yang agak cerdik mengumumkan data kesehatan dan kinerja dari server reals kami untuk memungkinkan penyeimbang beban untuk mengatur bobot yang sesuai.
LVS tentu saja memberi Anda satu titik kegagalan - penyeimbang beban (ada cara untuk mengaturnya secara berlebihan).
Saya pikir ini terlalu rumit untuk diatur jadi saya menulis Fluffy Linux Cluster yang didasarkan pada bagaimana Windows NLB bekerja (saya pikir ... Saya tidak yakin bagaimana cara kerjanya) dan juga terinspirasi oleh CLUSTERIP.
Kami tidak menggunakannya dalam produksi tetapi Fluffy dapat memuat-menyeimbangkan jumlah server yang masuk akal (setidaknya 5) tanpa titik kegagalan tunggal dan tanpa simpul manajemen pusat dll.
Jika Anda memutuskan untuk pergi dengan LVS maka saya juga akan melihat ke Keepalived jika Anda akan membuat lapisan server load balancing Anda sangat tersedia. Saya telah menggunakan Heartbeat / Pacemaker dengan LVS selama beberapa bulan dan merasa itu terlalu rumit dan kadang-kadang tidak stabil untuk lapisan HA LB sederhana.