Redis sebagai strategi ketersediaan tinggi dan failover berskala besar untuk platform pemprosesan aliran mesej
Redis, sebagai pangkalan data NoSQL berprestasi tinggi, telah menerima lebih banyak perhatian dan penggunaan. Terutamanya dalam bidang Internet, Redis bukan sahaja digunakan sebagai cache, tetapi juga menjadi salah satu infrastruktur penting platform pemprosesan aliran mesej. Untuk senario penggunaan ini, kita perlu mempertimbangkan ketersediaan tinggi dan strategi failover Redis untuk memastikan operasi stabil platform aliran mesej.
Ketersediaan Redis yang tinggi
Untuk mencapai ketersediaan Redis yang tinggi, kita boleh menggunakan Redis Sentinel atau Kluster Redis. Antaranya, Redis Sentinel menyokong berbilang nod induk-hamba Redis dan merealisasikan failover automatik dengan memantau antara satu sama lain manakala Redis Cluster membenarkan berbilang nod Redis membentuk gugusan untuk merealisasikan pembahagian data automatik dan fungsi failover automatik.
Apabila menggunakan Redis Sentinel untuk memastikan ketersediaan tinggi, kita perlu memberi perhatian kepada perkara berikut:
1 Sekurang-kurangnya tiga nod Sentinel
Redis Sentinel memerlukan sekurang-kurangnya tiga nod untuk Melakukan failover. Ini kerana apabila Redis Sentinel sedang berjalan, mereka akan memantau satu sama lain Apabila Sentinel berpendapat bahawa nod induk Redis tidak berfungsi, ia akan menyiarkan maklumat ini ke nod Sentinel yang lain Ia perlu mencapai persetujuan lebih daripada dua nod Sentinel sebelum ini ia berpendapat bahawa nod induk Redis tertentu tidak berfungsi.
2. Berbilang nod induk-hamba Redis
Redis Sentinel boleh menyokong berbilang nod induk-hamba Redis untuk mencapai pemisahan baca-tulis dan pengimbangan beban. Pada masa yang sama, berbilang nod induk Redis juga harus bebas antara satu sama lain untuk memastikan masa henti satu nod induk tidak akan menjejaskan nod induk yang lain.
3. Penyegerakan masa diperlukan antara nod induk dan hamba
Kerja Redis Sentinel memerlukan cap masa yang tepat untuk pertimbangan. Oleh itu, kita perlu memastikan bahawa masa antara nod tuan dan hamba Redis disegerakkan. Penyegerakan masa boleh dicapai melalui perkhidmatan NTP.
Apabila menggunakan Redis Cluster sebagai infrastruktur platform pemprosesan aliran mesej, kita perlu memberi perhatian kepada isu berikut:
1 Bilangan nod
Redis Cluster menyokong sehingga 16384 nod, Dan tidak disyorkan untuk menggunakan kurang daripada 6 nod. Pada masa yang sama, kita juga perlu memberi perhatian kepada konfigurasi perkakasan dan prestasi setiap nod.
2. Pecahan data automatik
Kluster Redis akan mengedarkan data secara automatik ke pelbagai nod untuk memastikan jumlah data pada setiap nod adalah agak seimbang. Bagi pengguna, tidak perlu melakukan sharding data secara manual, Redis Cluster akan menguruskannya secara automatik.
3. Failover
Redis Cluster juga menyokong pemindahan automatik sekiranya berlaku kegagalan. Apabila nod induk dalam kluster turun, Kluster Redis akan memindahkan data nod ini secara automatik ke nod lain dan memilih nod induk baharu untuk memastikan ketersediaan kluster.
Strategi failover Redis
Semasa operasi Redis, pelbagai kegagalan mungkin berlaku, seperti masa henti nod, kegagalan rangkaian, isu penyegerakan induk-hamba, dsb. Pada masa ini, kita perlu mempertimbangkan cara melaksanakan failover automatik Redis.
1. Redis Sentinel failover
Redis Sentinel boleh mencapai failover dengan cara berikut:
(1) Pengesanan kesalahan
Redis Sentinel akan melakukan secara berkala pemeriksaan kesihatan pada nod induk-hamba Redis Apabila nod terputus atau terputus hubungan, Sentinel akan menandakan nod sebagai "disyaki terputus."
(2) Pengiraan kuorum
Apabila nod Sentinel mendapati bahawa nod induk Redis disyaki tidak berfungsi, ia akan menghantar pemberitahuan kepada nod Sentinel yang lain menganggap bahawa nod induk nod ke bawah Apabila nod induk turun, nod induk akan dinilai benar-benar turun.
(3) Pilih induk baharu
Apabila nod induk turun, salah satu nod hamba yang lain akan dipilih sebagai nod induk baharu. Pada masa yang sama, nod induk baharu ini juga perlu menyegerakkan data pada nod induk lama.
2. Redis Cluster failover
Cara Redis Cluster melaksanakan failover adalah berbeza daripada Redis Sentinel:
(1) Pengesanan kesalahan
Redis Cluster Ia akan mengesan sama ada nod turun dengan mengumpul maklumat degupan jantung antara nod.
(2) Failover
Apabila nod induk turun, Redis Cluster akan memilih nod hamba sebagai nod induk baharu dan secara automatik memindahkan data pada nod induk lama ke nod induk baharu . Pada masa yang sama, Redis Cluster juga akan mengemas kini pengedaran data antara setiap nod.
Ringkasan
Sebagai infrastruktur platform pemprosesan aliran mesej, Redis mesti mengekalkan ketersediaan tinggi dan keupayaan failover. Apabila menggunakan Redis Sentinel atau Kluster Redis, kita perlu mempertimbangkan faktor seperti bilangan nod, konfigurasi nod induk-hamba, serpihan data automatik, serta strategi pengendalian kerosakan seperti pengesanan kesalahan dan failover untuk memastikan operasi Redis yang stabil.
Atas ialah kandungan terperinci Redis sebagai platform pemprosesan aliran mesej berskala besar ketersediaan tinggi dan strategi failover. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!