Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menganalisis prinsip mod sentri dalam Redis

Bagaimana untuk menganalisis prinsip mod sentri dalam Redis

WBOY
WBOYke hadapan
2023-05-28 19:18:361341semak 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 akan membantu semua orang!

1. Apakah itu Redis sentinel?

Redis Sentinel ialah penyelesaian rasmi yang disediakan oleh Redis untuk mencapai ketersediaan tinggi. 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 (master+replica) dan nod sentinel

2. Jika master gagal, sentinel boleh melaksanakan failover dan memberitahu The klien menyambung 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 mesti menggunakan konfigurasi Permulaan fail, mulakan semula perlu dipulihkan mengikut fail konfigurasi, port 26379 dibuka secara lalai, dan akses port mesti dibuka antara sentinel untuk memudahkan akses bersama.

4. Aliran kerja Sentinel

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

Bagaimana untuk menganalisis prinsip mod sentri dalam RedisBagaimana untuk menganalisis prinsip mod sentri dalam Redis

Objektif luar talian:

Apabila nod yang secara subjektif di luar talian ialah nod induk, nod sentinel akan lulus arahan

Dapatkan pertimbangan nod sentinel lain pada nod induk Apabila bilangan kuorum (kuorum yang dikonfigurasikan dalam konfigurasi sentinel) melebihi, nod sentinel akan menganggap bahawa memang terdapat masalah dengan nod induk, jadi ia akan menjadi. secara objektif di luar talian. Kebanyakan nod sentinel Semua orang bersetuju dengan operasi luar talian, yang bermaksud ia adalah operasi luar talian yang objektif. 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 akan bersetuju dengan permintaan itu (undi pilihan raya + 1), jika tidak, ia tidak akan bersetuju.

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

Idea teras Rakit: didahulukan, didahulukan, minoriti patuh kepada majoriti.

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

Asas untuk memilih nod induk redis baharu ialah:

1. Tapis hamba replika yang didapati terputus sambungan daripada pelayan sentinel utama untuk lebih daripada masa tamat masa 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 kelompok.

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 nod induk tunggal Terdapat kemungkinan kehilangan data, dan jika prestasi mesin tunggal adalah terhad, tiada keupayaan pengembangan mendatar.

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

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