Cara Mengatur Cluster Redis di Centos 8 - Bagian 3

Cara Mengatur Cluster Redis di Centos 8 - Bagian 3

Cluster redis adalah builtin Redis fitur yang mendukung sharding otomatis, replikasi dan ketersediaan tinggi yang sebelumnya diimplementasikan menggunakan Sentinel. Ini dirancang untuk dua tujuan utama: satu adalah untuk secara otomatis membagi dataset Anda di antara berbagai contoh dan kedua untuk memberikan beberapa tingkat ketersediaan selama partisi, untuk melanjutkan operasi ketika beberapa contoh (terutama master) gagal atau tidak dapat berkomunikasi dengan sebagian besar dari sebagian besar node di cluster.

Namun, cluster berhenti untuk beroperasi jika terjadi kegagalan yang lebih besar (e.g Ketika mayoritas contoh utama tidak tersedia). Juga, jika master dan slave gagal pada saat yang sama, cluster tidak dapat melanjutkan operasi normal (meskipun solusi adalah menambahkan lebih banyak node atau membuat asimetri di cluster, untuk mengubah tata letak cluster).

Menurut Redis dokumentasi cluster, “Cluster minimal”Itu berfungsi seperti yang diharapkan perlu berisi setidaknya 3 node utama. Tetapi pengaturan yang paling cocok untuk ketersediaan tinggi harus memiliki setidaknya 6 node dengan tiga tuan dan tiga budak, masing -masing tuan memiliki budak.

Penting: Redis cluster juga memiliki beberapa batasan yang kurangnya dukungan Natted Lingkungan juga di mana alamat IP atau port TCP dipetakan kembali di bawah Buruh pelabuhan. Selain itu, tidak setiap perpustakaan klien mendukungnya.

Artikel ini menunjukkan cara mengatur a Cluster redis (dengan Mode cluster dinonaktifkan) di dalam Centos 8. Ini termasuk cara menginstal redis, mengkonfigurasi node cluster, membuat cluster dan menguji failover cluster.

Catatan: Untuk panduan ini, kami akan menggunakan instance redis segar/kosong untuk menjalankan mode cluster. Mode cluster tidak akan berfungsi dengan beberapa konfigurasi yang dilakukan dalam dua panduan pertama dari seri Redis kami, terutama tidak berfungsi ketika replika parameter sedang digunakan.

Prasyarat:

  1. Server dengan instalasi Centos 8

Pengaturan Lingkungan Uji

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 
Diagram logis cluster redis

Pengaturan kami memiliki 3 node master baca/tulis dan 3 node replika baca saja, masing-masing master memiliki satu replika, jadi tiga pecahan berisi semua data cluster di setiap node. Sebuah aplikasi API atau Cli Klien hanya dapat menulis ke node utama tetapi membaca dari node apa pun di cluster.

Langkah 1: Memasang Redis di Semua Node

1. Masuk ke semua contoh melalui Ssh, kemudian jalankan perintah berikut untuk menginstal Redis Modul menggunakan manajer paket DNF seperti yang ditunjukkan.

# DNF Modul Instal Redis 

2. Selanjutnya, mulailah Redis layanan, aktifkan untuk secara otomatis memulai dari boot sistem dan memeriksa statusnya untuk memverifikasi bahwa ia berjalan (verifikasi layanan pada semua 6 instance):

# Systemctl Mulai Redis # Systemctl Aktifkan Redis # Systemctl Status Redis 

Langkah 2: Mengkonfigurasi instance Redis di semua node

3. Bagian ini menjelaskan cara mengkonfigurasi node redis cluster. Ingatlah untuk melakukan konfigurasi di sini di semua node.

Menggunakan /etc/redis.conf file konfigurasi untuk mengonfigurasi Redis server. Sebagai praktik yang disarankan, buat cadangan file asli sebelum mengeditnya menggunakan editor teks baris perintah pilihan Anda.

# cp /etc /redis.conf /etc /redis.conf.Orig # vi /etc /redis.conf 

4. Selanjutnya, temukan parameter konfigurasi berikut dan edit nilainya seperti yang ditunjukkan. Itu mengikat Parameter Mengatur Antarmuka Server Redis Akan Mendengarkan, Tetapkan Nilainya ke Instance LAN IP. Hapus 127.0.0.1 Karena kami menyadari meninggalkannya di sana memperlambat proses penciptaan cluster, terutama tahap bergabung dengan cluster.

Bind 10.42.0.247 

Lalu atur mode dilindungi ke TIDAK untuk mengizinkan koneksi dari contoh lain di cluster.

mode lindung no 

Parameter port mendefinisikan port yang akan didengarkan oleh server Redis untuk koneksi, standarnya 6379. Ini adalah port data untuk berkomunikasi dengan klien.

Port 6379 
Atur antarmuka dan port Redis Listen

5. Set parameter berikutnya akan memungkinkan mode cluster dan mengatur beberapa fitur yang berguna. Itu berkemampuan cluster parameter, saat diatur ke Ya, mengaktifkan mode cluster.

YA berkaitan dengan cluster 

Selanjutnya, The File-Config-File Parameter Mengatur nama file konfigurasi cluster node node (e.G node-6379.conf). File dibuat di direktori kerja (default /var/lib/redis didefinisikan menggunakan dir parameter) dan tidak dapat diedit pengguna.

Node-Config-File-Config-File-6379.conf 

Opsi cluster yang berguna berikutnya adalah cluster-node-timeout, Ini digunakan untuk mengatur jumlah waktu maksimum dalam milidetik, sebuah instance tidak tersedia untuk dipertimbangkan dalam keadaan gagal. Nilai 15000 setara dengan 15 detik.

cluster-node-timeout 15000 
Atur batas waktu cluster node

6. Kita juga perlu memungkinkan redis kegigihan di disk. Kita dapat menggunakan salah satu mode kegigihan, yaitu Tambahkan hanya file (Aof): itu log (dalam file ditambahkan.aof dibuat di bawah direktori kerja) Setiap operasi penulisan berhasil diterima oleh server. Data akan diputar selama startup server untuk merekonstruksi dataset asli.

Untuk mengaktifkannya, atur ditambahkan parameter ke Ya.

Tampan ya 
Atur opsi kegigihan

7. Setelah membuat semua perubahan, restart Redis Layanan pada semua node untuk menerapkan perubahan terbaru.

# Systemctl Restart Redis 

8. Pada titik ini, setiap node cluster sekarang harus memiliki PENGENAL. Anda dapat memeriksa ini di logfile yang terletak di /var/log/redis/redis.catatan.

# cat/var/log/redis/redis.catatan 
Periksa file log node cluster

9. Selanjutnya, buka port 6397 Dan 16379 pada semua contoh. Nanti pelabuhan digunakan untuk bus cluster (a node-to-node saluran komunikasi menggunakan protokol biner). Ini adalah persyaratan dasar untuk koneksi TCP cluster redis.

# firewall-cmd --zone = public --permanent --add-port = 6379/tcp # firewall-cmd --zone = public --permanent --add-port = 16379/tcp # firewall-cmd --reload 

Langkah 3: Membuat Cluster Redis

10. Untuk membuat cluster, gunakan Redis-cli Command-line klien sebagai berikut. Itu --cluster buat memungkinkan pembuatan cluster dan --Cluster-Replicas 1 berarti membuat satu replika per master.

Untuk pengaturan kami yang memiliki 6 node, kami akan memiliki 3 tuan dan 3 budak.

Perhatikan bahwa 6 node pertama akan dipertimbangkan tuan (M) dan tiga berikutnya akan dipertimbangkan budak (S). Budak pertama saya.e 10.42.0.200: 6379 mereplikasi master pertama i.e 10.42.0.247: 6379, Slave kedua mereplikasi master kedua, dalam urutan itu.

Perintah berikut diformat dengan cara yang hasilnya akan mewakili pengaturan logis kami di atas.

# redis-cli-cluster create 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 pembuatan cluster berhasil, jalankan perintah berikut pada host apa pun (tentukan alamat IP -nya menggunakan -H bendera) untuk mendaftar semua node cluster.

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

Anda harus dapat melihat semua node cluster, dengan para budak menunjukkan tuannya, seperti yang ditunjukkan pada tangkapan layar berikut.

Periksa semua node cluster pada node apa pun

Bidang yang berbeda ada dalam urutan ini: Node ID, alamat IP: port, bendera, ping terakhir dikirim, pong terakhir diterima, zaman konfigurasi, tautan-keadaan, slot (untuk tuan).

Langkah 4: Menguji Redis Cluster Failover

12. Di bagian ini, kami akan menunjukkan cara menguji failover cluster. Pertama, mari kita perhatikan para master.

# redis -cli -h 10.42.0.247 -P 6379 Node Cluster | GREP GREP 
Daftar Redis Cluster Masters

Juga, perhatikan budak Redis.

# redis -cli -h 10.42.0.247 -P 6379 Node Cluster | Budak Grep 
Buat daftar semua budak redis cluster

13. Selanjutnya, mari kita hentikan layanan redis di salah satu node utama e.G 10.42.0.197 dan periksa semua master node di cluster.

# systemctl berhenti redis # redis -cli -h 10.42.0.247 -P 6379 Node Cluster | GREP GREP 

Dari tangkapan layar berikut, Anda dapat melihat bahwa node 10.42.0.197: 6367 berada dalam keadaan gagal dan budaknya 10.42.0.21: 6379 telah dipromosikan menjadi status master.

Periksa status failover cluster

14. Sekarang mari kita mulai Redis Layanan sekali lagi pada simpul yang gagal dan periksa semua master di cluster.

# Systemctl Mulai Redis # redis -cli -h 10.42.0.247 -P 6379 Node Cluster | GREP GREP 
Periksa semua status master cluster redis

Juga, periksa cluster budak untuk mengkonfirmasi bahwa master yang gagal sekarang menjadi budak.

# redis -cli -h 10.42.0.247 -P 6379 Node Cluster | Budak Grep 
Periksa semua budak redis cluster

Langkah 5: Menguji Replikasi Data Di seluruh kluster Redis

15. Bagian terakhir ini menjelaskan cara memverifikasi replikasi data cluster. Kami akan membuat kunci dan nilai di salah satu master, lalu mencoba membacanya dari semua node cluster sebagai berikut. Menggunakan -C Beralih ke Aktifkan Dukungan Cluster Di Bawah Redis-Cli Utility dan Access Data dalam Mode Cluster.

# redis -cli -c -h 10.42.0.247 -p 6379 Setel 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 
Verifikasi Replikasi Data Cluster Redis

Intinya adalah Cluster redis adalah cara yang disukai untuk mendapatkan sharding otomatis, replikasi, dan ketersediaan tinggi. Ada banyak parameter konfigurasi yang terdokumentasi dengan baik di sisa /etc/redis.conf File, Anda dapat menemukan informasi lebih lanjut dalam dokumentasi resmi: Tutorial Redis Cluster dan Spesifikasi Redis Cluster.

Ini membawa kita ke akhir seri tutorial tiga bagian Redis. Formulir umpan balik di bawah ini dapat digunakan untuk memposting pertanyaan atau komentar.