Cara Menyiapkan Kluster Redis di Centos 8 - Bahagian 3

Cara Menyiapkan Kluster Redis di Centos 8 - Bahagian 3

Redis Cluster adalah binaan Redis ciri yang menyokong sharding automatik, replikasi dan ketersediaan tinggi yang sebelum ini dilaksanakan menggunakan Sentinel. Ia direka untuk dua tujuan utama: satu adalah untuk memecah dataset anda secara automatik di antara pelbagai keadaan dan kedua untuk memberikan beberapa tahap ketersediaan semasa partition, untuk meneruskan operasi apabila beberapa keadaan (terutama tuan) gagal atau tidak dapat berkomunikasi dengan majoriti dari majoriti nod dalam kelompok.

Walau bagaimanapun, kelompok berhenti untuk beroperasi sekiranya berlaku kegagalan yang lebih besar (e.g Apabila majoriti contoh induk tidak tersedia). Juga, jika tuan dan hamba gagal pada masa yang sama, kelompok itu tidak dapat meneruskan operasi normal (walaupun penyelesaiannya adalah untuk menambah lebih banyak nod atau membuat asimetri dalam kluster, untuk mengubah auto susun atur cluster).

Mengikut Redis Dokumentasi Kluster, "Kluster minimum"Itu berfungsi seperti yang diharapkan memerlukan mengandungi sekurang -kurangnya 3 nod induk. Tetapi persediaan yang paling sesuai untuk ketersediaan tinggi harus mempunyai sekurang -kurangnya 6 nod dengan tiga tuan dan tiga hamba, masing -masing tuan mempunyai hamba.

Penting: Redis Cluster juga mempunyai beberapa batasan yang kurang mendapat sokongan untuk Natted Persekitaran serta di mana alamat IP atau port TCP disusun semula misalnya di bawah Docker. Di samping itu, tidak setiap perpustakaan pelanggan menyokongnya.

Artikel ini menunjukkan cara menubuhkan a Redis Cluster (Dengan Kluster-mod dilumpuhkan) dalam Centos 8. Ia termasuk cara memasang redis, konfigurasikan nod kluster, buat kluster dan uji cluster failover.

Catatan: Untuk panduan ini, kami akan menggunakan contoh redis segar/kosong untuk menjalankan mod kluster. Mod kluster tidak akan berfungsi dengan beberapa konfigurasi yang dilakukan dalam dua panduan pertama siri Redis kami, terutamanya ia tidak berfungsi apabila replika parameter sedang digunakan.

Prasyarat:

  1. Pelayan dengan pemasangan CentOS 8

Persediaan Persekitaran Ujian

Redis Master1: 10.42.0.247 Redis Master2: 10.42.0.197 Redis Master3: 10.42.0.132 Redis Slave1: 10.42.0.200 Redis Slave2: 10.42.0.21 Redis Slave3: 10.42.0.34 
Rajah logik redis cluster

Persediaan kami mempunyai 3 nod induk baca/tulis dan 3 nod replika baca sahaja, masing-masing tuan mempunyai satu replika, jadi tiga shard mengandungi semua data kluster dalam setiap nod. Permohonan API atau Cli Pelanggan hanya boleh menulis kepada nod induk tetapi dibaca dari mana -mana nod dalam kelompok.

Langkah 1: Memasang Redis pada semua nod

1. Log masuk ke semua keadaan melalui SSH, kemudian jalankan arahan berikut untuk memasang Redis modul menggunakan pengurus pakej DNF seperti yang ditunjukkan.

# DNF Modul Pasang Redis 

2. Seterusnya, mulakan Redis perkhidmatan, membolehkannya memulakan secara automatik pada boot sistem dan periksa statusnya untuk mengesahkan bahawa ia sedang berjalan (sahkan perkhidmatan pada semua 6 keadaan):

# Systemctl Mula Redis # Systemctl Dayakan Redis # Systemctl Status Redis 

Langkah 2: Mengkonfigurasi contoh Redis pada semua nod

3. Bahagian ini menerangkan cara mengkonfigurasi nod redis cluster. Ingatlah untuk melaksanakan konfigurasi di sini pada semua nod.

Menggunakan /etc/redis.Conf fail konfigurasi untuk mengkonfigurasi Redis pelayan. Sebagai amalan yang disyorkan, buat sandaran fail asal sebelum mengeditnya menggunakan editor teks baris arahan pilihan anda.

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

4. Seterusnya, cari parameter konfigurasi berikut dan edit nilai mereka seperti yang ditunjukkan. The mengikat Parameter menetapkan antara muka pelayan Redis akan didengarkan, menetapkan nilainya kepada contoh lan ip. Alihkan 127.0.0.1 Kerana kita menyedari meninggalkannya di sana melambatkan proses penciptaan kluster, terutama tahap menyertai kelompok.

mengikat 10.42.0.247 

Kemudian tetapkan mod dilindungi ke tidak Untuk membenarkan sambungan dari contoh lain pada kelompok.

Mod yang dilindungi no 

Parameter port mentakrifkan port pelayan Redis akan mendengar untuk sambungan, lalai adalah 6379. Ini adalah port data untuk berkomunikasi dengan pelanggan.

Port 6379 
Tetapkan antara muka dan pelabuhan Redis Dengar

5. Set parameter seterusnya akan membolehkan mod kluster dan menetapkan beberapa ciri berguna. The Dilancarkan kluster parameter, apabila ditetapkan ke Ya, mengaktifkan mod kluster.

Kluster-enabled Ya 

Seterusnya, The Kluster-Config-File Parameter menetapkan nama fail konfigurasi kluster kluster (e.g Nodes-6379.Conf). Fail dibuat dalam direktori kerja (lalai adalah /var/lib/redis ditakrifkan menggunakan dir parameter) dan tidak boleh diedit pengguna.

Node-File-File-6379 cluster-config-file.Conf 

Pilihan kluster berguna seterusnya adalah cluster-node-timeout, Ia digunakan untuk menetapkan jumlah maksimum masa dalam milisaat suatu contoh tidak dapat dipertimbangkan untuk dipertimbangkan dalam keadaan kegagalan. Nilai 15000 bersamaan dengan 15 saat.

Cluster-node-timeout 15000 
Tetapkan tamat tempoh nod kluster

6. Kita juga perlu membolehkan kegigihan redis pada cakera. Kita boleh menggunakan salah satu mod kegigihan, itu adalah Tambah fail sahaja (Aof): ia log (dalam fail tambahonly.aof dibuat di bawah direktori kerja) setiap operasi menulis berjaya diterima oleh pelayan. Data akan dimainkan semasa permulaan pelayan untuk membina semula dataset asal.

Untuk membolehkannya, tetapkan tambahonly parameter ke Ya.

tambah ya ya 
Tetapkan pilihan kegigihan

7. Setelah membuat semua perubahan, mulakan semula Redis perkhidmatan pada semua nod untuk menggunakan perubahan baru -baru ini.

# systemctl mulakan semula redis 

8. Pada ketika ini, setiap nod cluster kini harus mempunyai ID. Anda boleh menyemaknya di logfile yang terletak di /var/log/redis/redis.log.

# kucing/var/log/redis/redis.log 
Semak fail log nod kluster

9. Seterusnya, Buka Pelabuhan 6397 dan 16379 Pada semua keadaan. Yang kemudian pelabuhan digunakan untuk bas cluster (a Node-to-node saluran komunikasi menggunakan protokol binari). Ini adalah keperluan asas untuk sambungan TCP Redis Cluster.

# firewall-cmd --Zone = public --PerManent --Add-Port = 6379/TCP # Firewall-Cmd --Zone = public --PerManent --Add-Port = 16379/TCP # Firewall-Cmd-Reload 

Langkah 3: Membuat Kluster Redis

10. Untuk membuat kelompok, gunakan Redis-cli Command-line pelanggan seperti berikut. The --cluster create membolehkan penciptaan kluster dan --Cluster-replicas 1 bermaksud membuat satu replika bagi setiap tuan.

Untuk persediaan kami yang mempunyai 6 nod, kami akan mempunyai 3 tuan dan 3 budak.

Perhatikan bahawa 6 nod pertama akan dipertimbangkan Sarjana (M) dan tiga seterusnya akan dipertimbangkan budak (S). Hamba pertama i.e 10.42.0.200: 6379 mereplikasi tuan pertama i.e 10.42.0.247: 6379, hamba kedua mereplikasi tuan kedua, mengikut urutan itu.

Perintah berikut diformat dengan cara hasilnya akan mewakili persediaan logik kami di atas.

# redis-cli-cluster buat 10.42.0.247: 6379 10.42.0.197: 6379 10.42.0.132: 6379 10.42.0.200: 6379 10.42.0.21: 6379 10.42.0.34: 6379-Cluster-Replicas 1 
Buat Redis Cluster

11. Setelah penciptaan kluster berjaya, jalankan arahan berikut pada mana -mana hos (tentukan alamat IPnya menggunakan -h bendera) untuk menyenaraikan semua nod kluster.

# redis -cli -h 10.42.0.247 -p 6379 nod cluster 

Anda sepatutnya dapat melihat semua nod kluster, dengan budak yang menunjukkan tuan mereka, seperti yang ditunjukkan dalam tangkapan skrin berikut.

Semak semua nod kluster pada mana -mana nod

Bidang yang berbeza dalam susunan ini: ID Node, alamat IP: port, bendera, ping terakhir dihantar, pong terakhir diterima, zaman konfigurasi, link-state, slot (untuk tuan).

Langkah 4: Menguji failover redis cluster

12. Dalam bahagian ini, kami akan menunjukkan cara menguji failover kluster. Pertama, mari kita perhatikan Sarjana.

# redis -cli -h 10.42.0.247 -P 6379 nod kluster | Guru Grep 
Senaraikan Redis Cluster Masters

Juga, ambil perhatian hamba redis.

# redis -cli -h 10.42.0.247 -P 6379 nod kluster | Hamba Grep 
Senaraikan semua hamba redis cluster

13. Seterusnya, mari kita hentikan perkhidmatan redis di salah satu nod induk e.g 10.42.0.197 dan periksa semua nod induk dalam kelompok.

# Systemctl Stop Redis # redis -cli -H 10.42.0.247 -P 6379 nod kluster | Guru Grep 

Dari tangkapan skrin berikut, anda dapat melihat bahawa nod 10.42.0.197: 6367 berada dalam keadaan gagal dan hamba 10.42.0.21: 6379 telah dinaikkan pangkat menjadi status induk.

Semak status failover kluster

14. Sekarang mari kita mulakan Redis perkhidmatan sekali lagi pada nod yang gagal dan periksa semua tuan dalam kelompok.

# Systemctl Mula Redis # Redis -Cli -H 10.42.0.247 -P 6379 nod kluster | Guru Grep 
Periksa semua status induk redis cluster

Juga, periksa hamba kluster untuk mengesahkan bahawa tuan yang gagal kini menjadi hamba.

# redis -cli -h 10.42.0.247 -P 6379 nod kluster | Hamba Grep 
Semak semua budak redis cluster

Langkah 5: Menguji replikasi data di seluruh redis cluster

15. Bahagian terakhir ini menerangkan cara mengesahkan replikasi data kluster. Kami akan mencipta kunci dan nilai pada salah satu tuan, kemudian cuba membacanya dari semua nod kluster seperti berikut. Menggunakan -c Tukar untuk membolehkan sokongan kluster di bawah utiliti Redis-CLI dan data akses dalam mod kluster.

# redis -cli -c -h 10.42.0.247 -p 6379 Tetapkan Nama 'Tecmint.com ' # redis -cli -c -h 10.42.0.247 -P 6379 Dapatkan Nama # Redis -CLI -C -H 10.42.0.21 -P 6379 Dapatkan Nama # Redis -CLI -C -H 10.42.0.132 -P 6379 Dapatkan Nama # Redis -CLI -C -H 10.42.0.200 -P 6379 Dapatkan Nama # Redis -CLI -C -H 10.42.0.197 -P 6379 Dapatkan Nama # Redis -Cli -C -H 10.42.0.34 -p 6379 Dapatkan Nama 
Sahkan replikasi data cluster redis

Intinya adalah Redis Cluster adalah cara pilihan untuk mendapatkan sharding, replikasi, dan ketersediaan yang tinggi. Terdapat banyak parameter konfigurasi yang didokumentasikan dengan baik /etc/redis.Conf fail, anda boleh mendapatkan lebih banyak maklumat dalam dokumentasi rasmi: Tutorial Redis Cluster dan Spesifikasi Redis Cluster.

Ini membawa kita ke akhir siri tutorial redis tiga bahagian. Borang maklum balas di bawah boleh digunakan untuk menyiarkan soalan atau komen.