Konten
Pengantar
Redis adalah penyimpanan struktur data dalam memori sumber terbuka yang dapat digunakan sebagai perantara pesan, cache, dan basis data nilai kunci. Ini mendukung beberapa struktur data: hash, daftar, set, set diurutkan, bitmap, indeks geospasial, hyperloglog, dll.
Apa yang membuat Redis unik adalah bahwa itu dapat dianggap sebagai toko dan cache. Ini dirancang sedemikian rupa untuk mengubah data dan / atau membaca dari memori komputer utama.
Di antara fitur-fitur lain, Redis menyediakan ketersediaan tinggi, melalui Redis Sentinel, dan partisi otomatis, via Redis Cluster. Selain itu, Redis memiliki mekanisme replikasi yang memungkinkan instance slave menjadi salinan tepat dari instance master. Budak akan secara otomatis menyambung kembali ke master setiap kali tautan terputus, dan tujuannya adalah salinan yang tepat.
Karena Redis Sentinel menyediakan ketersediaan tinggi untuk Redis, Redis Sentinel dapat menangani kegagalan secara otomatis tanpa campur tangan manusia dalam banyak kasus, tetapi juga menyediakan tugas-tugas lain seperti pemantauan, pemberitahuan, dan bertindak sebagai penyedia konfigurasi untuk klien.
Tapi, apa yang terjadi ketika Sentinel mendeteksi server Redis sedang down? Kami akan menemukan di artikel ini cara membuat layanan virtual lengkap yang sangat tersedia untuk Redis.
Harap mempertimbangkan bahwa konfigurasi ini juga dapat dilakukan meskipun server Redis Anda tidak menggunakan Sentinel untuk memantau.
Redis lingkungan penyeimbangan muatan
Skenario yang ingin kita capai dalam artikel ini ditunjukkan pada diagram di bawah ini.
Redis Sentinel memeriksa keadaan semua simpul Redis dan mengubah peran server Redis setelah kesalahan terdeteksi.
Penyeimbang beban memeriksa keadaan juga, tetapi ia melakukannya secara berkala setiap beberapa detik. Mungkin ada kasus di mana Sentinel mendeteksi masalah tetapi penyeimbang beban bisa memakan waktu hingga beberapa detik untuk menyadari. Ini bisa mengarah ke penyeimbang mengirimkan permintaan ke master yang salah yang merupakan salah satu yang baru saja gagal tetapi telah diganti oleh Sentinel.
Zevenet menawarkan cara untuk mengatasi masalah ini, peternakan L4 melakukan pemeriksaan secara berkala. Di sisi lain, ada juga aliran yang diteruskan ke backend yang tidak berisi pemeriksaan sebelumnya. Saat penjaga pertanian menyadari bahwa backend tidak responsif, alarm akan dibunyikan, yang menunjukkan bahwa aliran tidak boleh seperti ini.
Dengan mempertimbangkan hal ini, kami memiliki satu sisi cek dan di sisi lain permintaan. Jika pemeriksaan gagal, maka aliran dikirim segera ke node lain. Bahkan petisi yang sedang berlangsung dialihkan ke simpul online lainnya. Ini akan dijelaskan lebih lanjut dalam konfigurasi.
Redis konfigurasi penyeimbangan muatan
Sebelum menyiapkan tambak, kita perlu memiliki IP virtual. Untuk mencapai itu, kunjungi Jaringan> Antarmuka Virtual. Kemudian klik Tindakan> Buat Antarmuka Virtual. Selanjutnya, pilih Antarmuka Induk, Nama Antarmuka Virtual dan perusahaan Alamat IP:
Kemudian, untuk server virtual Redis kita perlu membuat pertanian L4xNAT. Untuk itu, buka LSLB> Pertanian, lalu klik Tindakan serta Buat Pertanian.
Setelah parameter awal ditetapkan, klik membuat. Selanjutnya, pergi ke menu Advanced tab dan pastikan jenis protokolnya adalah TCP.
Selanjutnya, buka Layanan. Backends dan Farm Guardian akan disiapkan di sini untuk pemeriksaan kesehatan tingkat lanjut. Pertama temukan Backends bagian, dan klik Tindakan> Tambahkan backend seperti yang ditunjukkan di bawah ini:
Redis pemantauan dan pemeriksaan kesehatan lanjutan
Akhirnya, cek Farm Guardian diperlukan untuk memastikan kami selalu menggunakan simpul online, seperti yang dijelaskan dalam kasus sebelumnya. Untuk itu, kita perlu mengkonfigurasi yang berikut ini sebagai perintah Farm Guardian:
check_tcp -E -H HOST -p PORT -s 'info replication\r\n' -e role:master -t 3
Dimana HOST serta PORT akan diganti dengan alamat IP dan port server Redis masing-masing backend. Perintah replikasi info akan mendapatkan informasi dari server Redis untuk memverifikasi master mana yang masih hidup, koneksi hanya akan diarahkan ke server jika master peran disajikan, segera setelah Sentinel mengubah peran maka load balancer akan mendeteksi perubahan dan Redis server akan ditandai sebagai down. Bendera -t adalah jumlah detik Farm Guardian akan menunggu respons server Redis dan kemudian jika batas waktu tercapai tanpa merespons, server Redis akan ditandai sebagai turun. Di sisi lain, begitu kesehatan server Redis dipulihkan, maka akan menjadi sama seperti semula.
Tetapi sebelum memodifikasi Farm Guardian untuk pertanian khusus ini, kunjungi Pemantauan> Petugas Pertanian dan kemudian klik Action> Buat Farmguardian.
Pilih nama deskriptif untuk pemeriksa kesehatan Redis Sentinel Anda yang baru, misalnya, check_redis_master seperti pada contoh, sekarang pilih check_tcp dalam mengajukan Farmguardian untuk menyalin dan klik membuat seperti yang ditunjukkan di bawah ini.
Akhirnya, salin perintah yang disebutkan di atas di perintah parameter dan lakukan konfigurasi seperti yang ditunjukkan di bawah ini.
Klik Kirim.
Sekarang, pilih cek kesehatan lanjutan Farm Guardian baru ini di layanan virtual Redis. Kembali ke LSLB> Pertanian, ke peternakan yang dibuat dengan nama RedisFarm, Layanan tab. Akhirnya, pilih check_redis_master perintah yang baru saja dibuat di bawah Pemeriksaan Kesehatan untuk backend.
Klik memperbarui pertanian dan sekarang Redis akan sepenuhnya tersedia.
Referensi
https://redis.io/topics/sentinel
https://redis.io/topics/cluster-tutorial