1. Gambaran Keseluruhan
Kluster Redis boleh mencapai ketersediaan dan pembahagian yang tinggi di antara kumpulan nod redis. Akan ada 1 induk dan berbilang nod hamba dalam kelompok. Apabila nod induk gagal, nod hamba harus dipilih sebagai induk baharu. Walau bagaimanapun, redis itu sendiri (termasuk kebanyakan pelanggannya) tidak mempunyai keupayaan untuk melaksanakan penemuan kerosakan automatik dan melakukan pensuisan siap sedia aktif, dan memerlukan penyelesaian pemantauan luaran untuk mencapai pemulihan kerosakan automatik.
redis sentinel ialah penyelesaian ketersediaan tinggi yang disyorkan secara rasmi. Ia ialah alat pemantauan dan pengurusan untuk kluster redis, yang boleh menyediakan pemantauan nod, pemberitahuan, pemulihan kegagalan automatik dan perkhidmatan penemuan konfigurasi pelanggan.
2. Masalah yang dihadapi
1 Rangkaian hos Docker
Apabila docker menggunakan rangkaian hos, ia perlu windows dan mac Ia tidak berfungsi (tiada penyelesaian ditemui), jadi saya akhirnya menyerah pada windows dan menggunakan centos untuk menggunakan kluster.
2. Masalah sambungan Sentinel tanpa menggunakan rangkaian hos
Apabila menyambung ke gugusan sentinel tanpa menggunakan rangkaian hos, anda boleh menentukan port nod induk, jadi sambungan boleh menjadi normal, tetapi apabila nod induk gagal, IP yang diperolehi oleh sentinel daripada nod induk ialah IP maya dalam bekas, menyebabkan kluster tidak dapat menyambung secara normal.
3. Proses pembinaan
1.
2. Fail konfigurasi sentinel
1. sentinel1.conf
#端口号 port 26379 dir /tmp # mymaster:自定义集群名,2:投票数量必须2个sentinel才能判断主节点是否失败 sentinel monitor mymaster <ip> <port> 2 # 指的是超过5000秒,且没有回复,则判定主节点不可达 sentinel down-after-milliseconds mymaster 5000 # 表示在故障转移的时候最多有numslaves在同步更新新的master sentinel parallel-syncs mymaster 1 # 故障转移超时时间 sentinel failover-timeout mymaster 5000
#端口号 port 26380 dir /tmp # mymaster:自定义集群名,2:投票数量必须2个sentinel才能判断主节点是否失败 sentinel monitor mymaster <ip> <port> 2 # 指的是超过5000秒,且没有回复,则判定主节点不可达 sentinel down-after-milliseconds mymaster 5000 # 表示在故障转移的时候最多有numslaves在同步更新新的master sentinel parallel-syncs mymaster 1 # 故障转移超时时间 sentinel failover-timeout mymaster 5000
3. docker-compose.yml
#端口号 port 26381 dir /tmp # mymaster:自定义集群名,2:投票数量必须2个sentinel才能判断主节点是否失败 sentinel monitor mymaster <ip> <port> 2 # 指的是超过5000秒,且没有回复,则判定主节点不可达 sentinel down-after-milliseconds mymaster 5000 # 表示在故障转移的时候最多有numslaves在同步更新新的master sentinel parallel-syncs mymaster 1 # 故障转移超时时间 sentinel failover-timeout mymaster 5000
4 Gunakan centos untuk menggunakan kluster untuk menguji kesan
1 sentinel12 Uji penyegerakan data nod induk dan nod anak
Atas ialah kandungan terperinci Bagaimana untuk membina kelompok redis-sentinel berdasarkan docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!