Persyaratan: memiliki solusi praktis yang berfungsi untuk cloud atau semua jenis lingkungan di mana tidak ada akses ke penyeimbang beban perangkat keras, protokol BGP, dan semua hal itu.
Nomor permintaan pendapatan aplikasi tidak diketahui tetapi harus cukup tinggi untuk memenuhi ekspektasi beban yang meningkat tanpa rasa takut.
Mari kita cari aplikasi dengan sifat pemuatan yang serupa, misalnya pencatatan toko dan aplikasi pencarian. Saya menemukan satu .
Apa yang mereka inginkan:
- Seimbangkan muatan antar kolektor
- Tawarkan toleransi kesalahan, memungkinkan kami untuk terus mencerna data jika salah satu kolektor meninggal atau sedang mengalami masalah
- Skala secara horizontal dengan pertumbuhan volume log kami
Apa yang mereka coba dan pelajari tentang ELB:
- Tidak berfungsi seperti yang diharapkan
- Masalah latensi karena peningkatan beban
- Fasilitas pemantauan tidak cukup
- Terlalu banyak batasan (port terbuka dan nomor protokol)
Mengapa mereka memilih dengan Route53:
- "Round robin adalah penyeimbang beban yang cukup mendasar, tetapi ini bekerja dengan baik bagi kita dari sudut pandang efisiensi"
- "Kami memanfaatkan pemeriksaan kesehatan failover Route 53."
- "Jika ada masalah dengan seorang pengumpul, Route 53 secara otomatis mengeluarkannya dari layanan; pelanggan kami tidak akan melihat dampak apa pun."
- Tidak Perlu Pemanasan Sebelum dengan Rute 53
Rute 53 ternyata menjadi cara terbaik bagi Loggly untuk mengambil keuntungan dari kolektor berkinerja tinggi kami karena volume log kami yang sangat besar, variasi yang tidak terduga, dan pertumbuhan yang konstan dalam bisnis kami. Ini selaras dengan tujuan inti kolektor: Untuk mengumpulkan data pada kecepatan jalur jaringan tanpa kehilangan, dan memungkinkan kami memperoleh manfaat dari elastisitas semua layanan AWS yang kami gunakan di Loggly.
Contoh khusus itu menunjukkan bahwa dalam beberapa skenario (pengumpul log, layanan iklan, atau sejenisnya) penyeimbang beban berlebihan dan "solusi round robin DNS-cek kesehatan" melakukan tugasnya dengan sangat baik.
Mari kita lihat apa yang dikatakan AWS tentang DNS failover:
Dengan DNS Failover, Route 53 dapat mendeteksi pemadaman situs web Anda dan mengarahkan pengguna akhir Anda ke lokasi alternatif atau cadangan yang Anda tentukan. Rute 53 DNS Failover bergantung pada pemeriksaan kesehatan - secara teratur membuat permintaan Internet ke titik akhir aplikasi Anda dari berbagai lokasi di seluruh dunia - untuk menentukan apakah setiap titik akhir aplikasi Anda naik atau turun.
Teknik itu juga membuat ELB (tidak diperlukan, hanya untuk catatan) lebih kuat, sekali lagi didasarkan pada RR + Pemeriksaan Kesehatan:
Rute 53 DNS Failover menangani semua skenario kegagalan ini dengan mengintegrasikan dengan ELB di belakang layar. Setelah diaktifkan, Rute 53 secara otomatis mengkonfigurasi dan mengelola pemeriksaan kesehatan untuk masing-masing node ELB.
Sekarang mari kita lihat cara kerjanya di belakang layar. Pertanyaan yang jelas adalah bagaimana menangani caching DNS:
Namun, cache DNS masih bisa menjadi masalah di sini (lihat posting kami sebelumnya di mana masalah "ekor panjang" tercakup) jika TTL tidak dihormati oleh semua lapisan antara klien Anda dan Rute 53. Anda kemudian dapat menerapkan teknik "cache busting": mengirim permintaan ke domain unik
("http://<unique-id>.<your-domain>")
dan mendefinisikan Sumber Daya wildcard
Record "*.<your-domain>" to match it.
Algolia memperkenalkan "strategi coba klien" yang berfungsi dengan baik jika klien Anda (JS dalam kasus Anda) dapat mengatasinya:
Kami akhirnya menerapkan strategi coba lagi dasar di klien API kami. Setiap klien API dikembangkan untuk dapat mengakses tiga mesin yang berbeda. Tiga catatan DNS berbeda mewakili setiap pengguna: USERIDID-1.algolia.io, USERID-2.algolia.io danUSERID-3.algolia.io. Implementasi pertama kami adalah memilih secara acak salah satu catatan dan kemudian mencoba lagi dengan yang berbeda jika terjadi kegagalan.