Cara menyiapkan redis untuk ketersediaan tinggi dengan sentinel di CentOS 8 - Bahagian 2

Cara menyiapkan redis untuk ketersediaan tinggi dengan sentinel di CentOS 8 - Bahagian 2

Redis menyediakan ketersediaan tinggi melalui Redis Sentinel Sistem yang diedarkan. Sentinel membantu memantau Redis contoh, mengesan kegagalan dan akan melakukan suis peranan secara automatik dengan itu membolehkan a Redis penggunaan untuk menahan apa -apa jenis kegagalan.

Ia mempunyai pemantauan Redis contoh (tuan dan replika), menyokong pemberitahuan perkhidmatan/proses lain atau pentadbir sistem melalui skrip, failover automatik untuk mempromosikan replika kepada tuan apabila tuan turun dan memberikan konfigurasi kepada pelanggan untuk menemui tuan semasa yang menawarkan perkhidmatan tertentu.

Artikel ini menunjukkan cara menubuhkan Redis untuk ketersediaan tinggi dengan Redis Sentinel dalam Centos 8, termasuk mengkonfigurasi sentinel, memeriksa status persediaan dan menguji a Sentinel failover.

Prasyarat:

  1. Cara Menyiapkan Replikasi Redis (Dengan Mod Kluster Dilumpuhkan) di CentOS 8 - Bahagian 1

Persediaan Persekitaran Ujian

Pelayan induk dan sentinel1: 10.42.0.247 Redis Replica1 dan Sentinel2: 10.42.0.21 Redis Replica2 dan Sentinel3: 10.42.0.34 
Redis Sentinel Persediaan Rajah Logik

Mengikut Redis Sentinel dokumentasi, seseorang memerlukan sekurang -kurangnya tiga Sentinel contoh untuk penempatan yang mantap. Memandangkan kami ditetapkan di atas, jika tuan gagal, Sentinels2 dan Sentinel3 akan bersetuju dengan kegagalan dan akan dapat membenarkan failover, menjadikan operasi klien dapat meneruskan.

Langkah 1: Memulakan dan Membolehkan Perkhidmatan Redis Sentinel

1. Pada Centos 8, The Redis Sentinel perkhidmatan dipasang bersama Redis pelayan (yang sudah kami lakukan dalam persediaan replikasi Redis).

Untuk memulakan Redis perkhidmatan sentinel dan membolehkannya bermula secara automatik di boot sistem, gunakan yang berikut Systemctl Perintah. Juga, sahkan bahawa ia sudah selesai dan berjalan dengan menyemaknya status (Lakukan ini pada semua nod):

# Systemctl Mula Redis-Sentinel # Systemctl Dayakan Redis-Sentinel # Systemctl Status Redis-Sentinel 
Mulakan Redis Sentinel Service

Langkah 2: Mengkonfigurasi Redis Sentinel pada semua nod Redis

2. Dalam bahagian ini, kami menerangkan cara mengkonfigurasi Sentinel Pada semua nod kami. The Sentinel Perkhidmatan mempunyai format konfigurasi yang sama seperti Redis pelayan. Untuk mengkonfigurasi, gunakan /etc/redis-sentinel.Conf Fail konfigurasi yang didokumentasikan sendiri.

Pertama, buat sandaran fail asal dan membukanya untuk mengedit.

# cp /etc /redis-sentinel.conf /etc /redis-sentinel.Conf.orig # vi /etc /redis-sentinel.Conf 

3. Secara lalai, Sentinel mendengarkan port 26379, Sahkan ini pada semua keadaan. Perhatikan bahawa anda mesti meninggalkan mengikat parameter mengulas (atau ditetapkan ke 0.0.0.0).

pelabuhan 26379 
Tetapkan Sentinel Dengar Antara Muka dan Pelabuhan

4. Seterusnya, beritahu Sentinel untuk memantau kami tuan, dan untuk menganggapnya dalam "Objektif ke bawah"Nyatakan hanya jika sekurang -kurangnya 2 sentinel kuorum setuju. Anda boleh menggantikan "mymaster"Dengan nama tersuai.

#On Server Master dan Sentinel1 Sentinel Monitor MyMaster 127.0.0.1 6379 2 #on Replica1 dan Sentinel2 Sentinel Monitor MyMaster 10.42.0.247 6379 2 #on Replica1 dan Sentinel3 Sentinel Monitor MyMaster 10.42.0.247 6379 2 
Tetapkan tuan redis untuk memantau

Penting: Penyata monitor sentinel mesti diletakkan sebelum sentinel Auth-Pass pernyataan untuk mengelakkan kesilapan "Tidak ada tuan dengan nama yang ditentukan."Semasa memulakan semula perkhidmatan Sentinel.

5. Jika Redis Master to Monitor mempunyai set kata laluan (dalam kes kami, tuannya), berikan kata laluan supaya contoh sentinel dapat mengesahkan dengan contoh yang dilindungi.

 sentinel auth-pass mymaster [dilindungi e-mel] 
Tetapkan kata laluan auth induk

6. Kemudian tetapkan bilangan milisaat tuan (atau mana -mana replika atau sentinel yang dilampirkan) harus tidak dapat dicapai untuk mempertimbangkannya dalam "Subjek ke bawah"Negeri.

Konfigurasi berikut bermaksud bahawa tuan akan dianggap gagal sebaik sahaja kami tidak menerima apa -apa jawapan dari ping kami dalam masa 5 saat (1 saat bersamaan dengan 1000 milisaat).

sentinel turun-selepas-milliseconds mymaster 5000 
Tetapkan masa untuk tuan

7. Seterusnya, tetapkan tamat tempoh failover dalam milisaat yang mentakrifkan banyak perkara (baca dokumentasi parameter dalam fail konfigurasi).

sentinel failover-timeout mymaster 180000 
Tetapkan Gagal dari Timeout

8. Kemudian tetapkan bilangan replika yang boleh dikonfigurasikan untuk menggunakan tuan baru selepas failover pada masa yang sama. Oleh kerana kita mempunyai dua replika, kita akan menetapkan satu replika kerana yang lain akan dinaikkan pangkat menjadi tuan baru.

sentinel selari-syncs mymaster 1 
Tetapkan bilangan replika penyegerakan selari

Perhatikan bahawa fail konfigurasi di Redis Replica1 dan Sentinel2, dan Reddis Replica1 dan Sentinel2 harus sama.

9. Seterusnya, mulakan semula Sentinel perkhidmatan pada semua nod untuk menggunakan perubahan baru -baru ini.

# Systemctl Mulakan semula Redis-Sentinel 

10. Seterusnya, Buka Pelabuhan 26379 di firewall pada semua nod untuk membolehkan Sentinel contoh untuk mula bercakap, terima sambungan dari yang lain Sentinel contoh, menggunakan firewall-cmd.

# firewall-cmd --Zone = public --permanent --add-port = 26379/tcp # firewall-cmd--reload 

11. Semua replika akan ditemui secara automatik. Yang penting, Sentinel akan mengemas kini konfigurasi secara automatik dengan maklumat tambahan mengenai replika. Anda boleh mengesahkannya dengan membuka Sentinel fail konfigurasi untuk setiap contoh dan melihatnya.

Contohnya, apabila anda melihat akhir fail konfigurasi tuan, anda harus melihat diketahui-sentinel dan Dikenali-Replica pernyataan seperti yang ditunjukkan dalam tangkapan skrin berikut.

Konfigurasi Auto yang dihasilkan di Guru

Ia mestilah kes yang sama replika1 dan replika2.

Konfigurasi Auto Dihasilkan dalam replika1 Konfigurasi Auto Dihasilkan dalam replika2

Perhatikan bahawa Sentinel Konfigurasi juga ditulis semula/dikemas kini setiap kali replika dipromosikan ke status induk semasa failover dan setiap kali sentinel baru ditemui dalam persediaan.

Langkah 3: Periksa status persediaan Redis Sentinel

12. Sekarang periksa Sentinel status/maklumat mengenai tuan, menggunakan Maklumat Sentinel perintah seperti berikut.

# redis -cli -p 26379 maklumat sentinel 

Dari output arahan seperti yang dilihat di tangkapan skrin berikut, kami mempunyai dua replika/hamba dan tiga sentinel.

Semak maklumat sentinel mengenai tuan

13. Untuk menunjukkan maklumat terperinci mengenai tuan (Dipanggil mymaster), menggunakan Sentinel Master perintah.

# redis -cli -p 26379 sentinel master mymaster 
Tunjukkan maklumat terperinci mengenai Sentinel Master

14. Untuk menunjukkan maklumat terperinci mengenai budak dan sentinel, menggunakan Hamba Sentinel perintah dan Sentinel Sentinels perintah masing -masing.

# redis -cli -p 26379 sentinel hamba mymaster # redis -cli -p 26379 sentinel sentinels mymaster 

15. Seterusnya, tanya alamat tuan dengan nama dari contoh hamba menggunakan Sentinel Get-Master-Addr-by-Name perintah seperti berikut.

Output mestilah alamat IP dan pelabuhan contoh induk semasa:

# redis-cli -p 26379 sentinel get-master-addr-by-name MyMaster 
Dapatkan alamat tuan dengan nama di hamba

Langkah 4: Uji failover sentinel

16. Akhirnya, mari kita uji failover automatik di kami Sentinel Persediaan. Pada Redis/Sentinel Guru, buat Redis Master (Berlari di Port 6379) untuk tidur untuk 60 saat. Kemudian tanya alamat tuan semasa pada replika/budak seperti berikut.

# redis -cli -p 6379 127.0.0.1: 6379> AUTH [E -mel dilindungi] 127.0.0.1: 6379> tidur debug 60 # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster # redis-cli -p 26379 sentinel get-master-addr-name mymaster 

Dari output untuk pertanyaan, tuan baru sekarang replika/hamba2 dengan alamat IP 10.42.0.34 Seperti yang dilihat dalam tangkapan skrin berikut.

Ujian Redis Sentinel Failover

Anda boleh mendapatkan lebih banyak maklumat dari dokumentasi Redis Sentinel. Tetapi jika anda mempunyai sebarang pemikiran untuk berkongsi atau pertanyaan, borang maklum balas di bawah adalah pintu masuk anda kepada kami.

Di bahagian seterusnya dan terakhir siri ini, kami akan melihat bagaimana untuk menubuhkan redis cluster di CentOS 8. Ia akan menjadi artikel bebas dari dua yang pertama.