Rumah  >  Artikel  >  pangkalan data  >  Analisis ringkas tentang prinsip mod sentri dalam Redis

Analisis ringkas tentang prinsip mod sentri dalam Redis

青灯夜游
青灯夜游ke hadapan
2022-01-25 10:36:522752semak imbas

Artikel ini akan memberi anda pemahaman yang mendalam tentang prinsip mod sentinel Redis, bercakap tentang perkara yang boleh dilakukan oleh sentinel, mulakan kaedah sentinel dan aliran kerja Sentinel saya harap ia dapat membantu semua orang.

Analisis ringkas tentang prinsip mod sentri dalam Redis

Di atas memperkenalkan prinsip Redis master-slave Ia menyelesaikan masalah sandaran data Redis Nod induk tidak boleh dipilih secara automatik kegagalan. Nod induk baharu memerlukan tetapan manual nod hamba sebagai nod induk, yang tidak cekap dan tidak boleh mencapai failover automatik secara rasminya menyediakan penyelesaian ketersediaan tinggi Sentinel.

1. Apakah itu Redis sentinel?

Redis Sentinel ialah penyelesaian ketersediaan tinggi rasmi untuk Redis. Redis Sentinel menyediakan ketersediaan yang tinggi untuk Redis. Dalam amalan, ini bermakna bahawa menggunakan Sentinel anda boleh mencipta gugusan Redis yang tahan terhadap jenis kegagalan tertentu dan secara automatik melaksanakan failover tanpa campur tangan manusia. [Cadangan berkaitan: Tutorial video Redis]

2. Apakah yang boleh dilakukan oleh sentinel?

1. Pantau status kesihatan nod kluster redis (replika induk) dan nod sentinel

2. Jika induk gagal, sentinel boleh melaksanakan failover dan memberitahu pelanggan Sambung kepada tuan baharu.

3. Pemberitahuan: Melalui API, pemberitahuan boleh dihantar kepada pentadbir dan pembangun Instance redis yang dipantau telah gagal

4 aksesnya. Induk mengembalikan maklumat nod kepada klien

3 Mulakan kaedah sentinel

1 >

2. redis-server /path/to/sentinel.conf --sentinel

arahan konfigurasi sentinel.conf adalah seperti berikut

# 配置需要监控的master节点信息 2代表法定人数 作用是表示需要最少需要多少个sentinel节点同意
#master节点不可达才标记为客观下线
#举例 5个sentinel实例 quorum设置成2 那么有2个sentinel节点认为master不可达,
#则其中一个会启动故障转移#如果至少有三个哨兵可到达,故障转移将被授权并实际启动。
sentinel monitor mymaster 127.0.0.1 6379 2 
#只需要配置master sentinel会自动检测slave信息
sentinel down-after-milliseconds mymaster 60000 
#如果master在指定时间内没有响应ping命令/或报错,则认为主观下线了。
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1 
#指定故障转移的时候,同时支持多少个replica并行的与master同步数据,越小故障转移越久
#以上配置可以通过SENTINEL SET command.来实时修改。
sentinel monitor resque 192.168.1.3 6380 4
sentinel down-after-milliseconds resque 10000
sentinel failover-timeout resque 180000
sentinel parallel-syncs resque 5
Nota:

Redis-sentinel diperlukan Mula menggunakan fail konfigurasi perlu dipulihkan mengikut fail konfigurasi Port 26379 dibuka secara lalai.

4. Aliran kerja Sentinel

1. Pertama, sentinel merealisasikan persepsi dinamik melalui mekanisme pub/langganan.

Analisis ringkas tentang prinsip mod sentri dalam Redis

2. Bagaimanakah sentinel merasakan bahawa tuannya telah meninggal dunia?

Terdapat dua situasi di sini, satu ialah apabila tuan pergi ke luar talian secara subjektif, dan satu lagi ialah apabila tuan pergi ke luar talian secara objektif.

Subjektif luar talian: Setiap sentinel menghantar arahan ping kepada induk setiap 1s Jika induk tidak bertindak balas dalam masa turun selepas milisaat, nod sentinel menganggap induk berada di luar talian secara subjektif.

Analisis ringkas tentang prinsip mod sentri dalam Redis

Objektif luar talian:

Apabila nod yang secara subjektif di luar talian ialah nod induk, nod sentinel akan mencari sentinel lain melalui arahan

Apabila pertimbangan nod pada nod induk melebihi bilangan kuorum (kuorum yang dikonfigurasikan dalam konfigurasi sentinel), nod sentinel akan berfikir bahawa memang terdapat masalah dengan nod induk, jadi ia akan berada di luar talian secara objektif nod sentinel bersetuju operasi luar talian, iaitu, objektif luar talian. sentinel is-masterdown-by-addr

Perhatikan bahawa objektif luar talian hanya berkuat kuasa untuk nod induk, ia akan mencetuskan failover

3 Master berada di luar talian dan failover diperlukan

Ini terbahagi kepada dua langkah, pertama anda perlu memilih nod induk sentinel, dan melakukan failover redis melalui nod induk sentinel.

Pertama, sentinel memilih ketua. Gunakan algoritma rakit (algoritma konsensus nyatakan).

Setiap nod Sentinel boleh menjadi Pemimpin Apabila nod Sentinel mengesahkan bahawa nod induk gugusan redis secara subjektif di luar talian, ia akan meminta nod Sentinel lain untuk memilih dirinya sebagai Pemimpin. Jika nod Sentinel yang diminta tidak bersetuju dengan permintaan pemilihan nod Sentinel lain, ia bersetuju dengan permintaan itu (bilangan undi pilihan raya ialah 1), jika tidak, ia tidak bersetuju.

Jika bilangan undi pilihan raya yang diperolehi oleh nod Sentinel mencapai bilangan undian minimum untuk Pemimpin (nilai kuorum maksimum dan bilangan nod Sentinel/2 1), nod Sentinel dipilih sebagai Pemimpin; jika tidak, pilihan raya berulang.

Idea teras Rakit: datang dahulu, dahulu berkhidmat, minoriti patuh kepada majoriti.

Selepas sentinel memilih nod induk, nod induk sentinel perlu memilih nod induk gugusan redis untuk membina hubungan gugusan baharu.

Asas untuk memilih nod induk redis baharu ialah:

1. Tapis hamba replika yang didapati terputus sambungan daripada pelayan sentinel utama selama lebih daripada masa tamat hos yang dikonfigurasikan turun-selepas-milisaat

2. Keutamaan replika. Beri keutamaan kepada mereka yang mempunyai keutamaan replika rendah.

3 Jika keutamaan adalah sama, offset salinan telah diproses. Lebih besar nilai, lebih tinggi keutamaan, yang lebih sesuai dengan fungsi senario perniagaan.

4. Jika offset salinan adalah sama, lihat pada ID yang sedang berjalan. Lebih suka yang kecil.

Selepas memilih nod induk, mula mengekalkan perhubungan kluster.

1. Sentinel nod, hantar slave no one command ke nod master baharu untuk menjadikannya nod bebas

2, hantar slaveof ip port ke nod lain, ikuti ke nod induk

5 Ringkasan

Melalui analisis di atas, sentinel boleh mencapai failover automatik melalui kaedah pemantauan tetap, seperti situasi daripada nod induk tunggal Di bawah keadaan ini, terdapat kemungkinan kehilangan data, dan jika prestasi mesin tunggal adalah terhad, tiada keupayaan untuk berkembang secara mendatar.

Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Pengenalan kepada Pengaturcaraan! !

Atas ialah kandungan terperinci Analisis ringkas tentang prinsip mod sentri dalam Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:juejin.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam