GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Mengatur Cluster Redis di CentOS 8 – Bagian 3

Kluster Redis adalah Redis . bawaan fitur yang mendukung sharding otomatis, replikasi, dan ketersediaan tinggi yang sebelumnya diimplementasikan menggunakan Penjaga . Ini dirancang untuk dua tujuan utama:satu adalah untuk secara otomatis membagi dataset Anda di antara beberapa contoh dan kedua untuk menyediakan beberapa tingkat ketersediaan selama partisi, untuk melanjutkan operasi ketika beberapa contoh (terutama master) gagal atau tidak dapat berkomunikasi dengan mayoritas node dalam cluster.

Namun, kluster berhenti beroperasi jika terjadi kegagalan yang lebih besar (misalnya, saat sebagian besar instans master tidak tersedia). Selain itu, jika master dan slave gagal secara bersamaan, cluster tidak dapat melanjutkan operasi normal (meskipun solusinya adalah menambahkan lebih banyak node atau membuat asimetri dalam cluster, untuk mengubah tata letak cluster secara otomatis).

Menurut Redis dokumentasi cluster, “cluster minimal ” yang berfungsi seperti yang diharapkan membutuhkan setidaknya 3 node master. Tetapi penyiapan yang paling cocok untuk ketersediaan tinggi harus memiliki setidaknya 6 node dengan tiga master dan tiga slave, masing-masing master memiliki slave.

Penting :Redis Cluster juga memiliki beberapa keterbatasan yaitu kurangnya dukungan untuk NATted lingkungan tempat alamat IP atau port TCP dipetakan ulang misalnya di bawah Docker . Selain itu, tidak semua pustaka klien mendukungnya.

Artikel ini menunjukkan cara menyiapkan Kluster Redis (dengan Mode Cluster Dinonaktifkan ) di CentOS 8 . Ini mencakup cara menginstal Redis, mengonfigurasi node cluster, membuat cluster, dan menguji failover cluster.

Catatan :Untuk panduan ini, kami akan menggunakan instans Redis baru/kosong untuk menjalankan mode cluster. Mode kluster tidak akan berfungsi dengan beberapa konfigurasi yang dilakukan di dua panduan pertama Seri Redis kami, terutama mode ini tidak berfungsi saat replika parameter sedang digunakan.

Prasyarat:

  1. Server dengan Instalasi CentOS 8

Pengujian Pengaturan Lingkungan

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 Logika Gugus Redis

Penyiapan kami memiliki 3 node master baca/tulis dan 3 node replika baca-saja, masing-masing master memiliki satu replika, jadi tiga shard berisi semua data cluster di setiap node. Aplikasi API atau CLI klien hanya dapat menulis ke node master tetapi membaca dari node mana pun di cluster.

Langkah 1:Menginstal Redis di Semua Node

1. Masuk ke semua instance melalui SSH , lalu jalankan perintah berikut untuk menginstal Redis modul menggunakan manajer paket DNF seperti yang ditunjukkan.

# dnf module install redis

2. Selanjutnya, mulai Redis service, aktifkan untuk memulai secara otomatis saat boot sistem dan periksa statusnya untuk memverifikasi bahwa itu berjalan (verifikasi layanan pada semua 6 instance):

# systemctl start redis
# systemctl enable redis
# systemctl status redis

Langkah 2:Mengonfigurasi Instans Redis di semua Node

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

Gunakan /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. mengikat parameter set antarmuka server Redis akan mendengarkan, set nilainya ke instance LAN IP. Hapus 127.0.0.1 karena kami menyadari meninggalkannya di sana memperlambat proses pembuatan cluster, terutama tahap bergabung dengan cluster.

bind  10.42.0.247

Kemudian atur mode terlindungi untuk no untuk mengizinkan koneksi dari instance lain di cluster.

protected-mode no

Parameter port menentukan port yang akan didengarkan server Redis untuk koneksi, defaultnya adalah 6379 . Ini adalah port data untuk berkomunikasi dengan klien.

port 6379

Setel Antarmuka dan Port Redis Listen

5. Set parameter berikutnya akan mengaktifkan mode cluster dan mengatur beberapa fitur yang berguna. mendukung cluster parameter, bila disetel ke yes , mengaktifkan mode cluster.

cluster-enabled yes

Selanjutnya, cluster-config-file parameter menetapkan nama file konfigurasi cluster node cluster (misalnya nodes-6379.conf ). File dibuat di direktori kerja (defaultnya adalah /var/lib/redis didefinisikan menggunakan dir parameter) dan tidak dapat diedit oleh pengguna.

cluster-config-file nodes-6379.conf

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

cluster-node-timeout 15000

Setel Batas Waktu Node Cluster

6. Kita juga perlu mengaktifkan persistensi Redis pada disk. Kita dapat menggunakan salah satu mode ketekunan, yaitu Tambahkan Hanya File (AOF ):ia mencatat (dalam file appendonly.aof dibuat di bawah direktori kerja) setiap operasi tulis berhasil diterima oleh server. Data akan diputar selama startup server untuk merekonstruksi dataset asli.

Untuk mengaktifkannya, setel tambahkan saja parameter ke yes .

appendonly yes

Setel Opsi Persistensi

7. Setelah melakukan semua perubahan, mulai ulang Redis layanan di semua node untuk menerapkan perubahan terbaru.

# systemctl restart redis

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

# cat /var/log/redis/redis.log

Periksa File Log Node Cluster

9. Selanjutnya, buka port 6397 dan 16379 pada semua contoh. Port later selanjutnya digunakan untuk bus cluster (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 baris perintah redis-cli klien sebagai berikut. --cluster create mengaktifkan pembuatan cluster dan --cluster-replicas 1 berarti membuat satu replika per master.

Untuk setup kita yang memiliki 6 node, kita akan memiliki 3 master dan 3 slave.

Perhatikan bahwa 6 node pertama akan dianggap master (M) dan tiga berikutnya akan dianggap budak (S) . Budak pertama yaitu 10.42.0.200:6379 mereplikasi master pertama yaitu 10.42.0.247:6379 , budak kedua mereplikasi master kedua, dalam urutan itu.

Perintah berikut diformat sedemikian rupa sehingga 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 Cluster Redis

11. Setelah pembuatan cluster berhasil, jalankan perintah berikut pada host mana pun (tentukan alamat IP-nya menggunakan -h flag) untuk membuat daftar semua node cluster.

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

Anda seharusnya dapat melihat semua node cluster, dengan slave menunjukkan masternya, seperti yang ditunjukkan pada tangkapan layar berikut.

Periksa Semua Node Cluster di Setiap Node

Bidang yang berbeda dalam urutan ini:ID node, alamat IP:port, flag, ping terakhir terkirim, pong terakhir diterima, epoch konfigurasi, status tautan, slot (untuk master).

Langkah 4:Menguji Kegagalan Cluster Redis

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

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

Mencantumkan Master Gugus Redis

Juga, perhatikan budak Redis.

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

Daftar Semua Budak Cluster Redis

13. Selanjutnya, mari hentikan layanan Redis di salah satu node master, mis. 10.42.0.197 dan periksa semua node master di cluster.

# systemctl stop redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep master

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

Periksa Status Failover Cluster

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

# systemctl start redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

Periksa Semua Status Master Cluster Redis

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

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

Periksa Semua Budak Cluster Redis

Langkah 5:Menguji Replikasi Data Di Seluruh Cluster Redis

15. Bagian terakhir ini menjelaskan cara memverifikasi replikasi data cluster. Kita akan membuat key dan value pada salah satu master, kemudian mencoba membacanya dari semua node cluster sebagai berikut. Gunakan -c beralih untuk mengaktifkan dukungan cluster di bawah utilitas redis-cli dan mengakses data dalam mode cluster.

# redis-cli -c -h 10.42.0.247 -p 6379 set name 'TecMint.com'
# redis-cli -c -h 10.42.0.247 -p 6379 get name
# redis-cli -c -h 10.42.0.21 -p 6379 get name
# redis-cli -c -h 10.42.0.132 -p 6379 get name
# redis-cli -c -h 10.42.0.200 -p 6379 get name
# redis-cli -c -h 10.42.0.197 -p 6379 get name
# redis-cli -c -h 10.42.0.34 -p 6379 get name

Verifikasi Replikasi Data Cluster Redis

Intinya adalah Kluster Redis adalah cara yang disukai untuk mendapatkan sharding otomatis, replikasi, dan ketersediaan tinggi. Ada banyak parameter konfigurasi lain yang terdokumentasi dengan baik di bagian /etc/redis.conf lainnya. Anda dapat menemukan informasi lebih lanjut di dokumentasi resmi:Tutorial cluster Redis dan spesifikasi cluster Redis.

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

Berbagi itu Peduli…
Berbagi di FacebookBerbagi di TwitterBerbagi di LinkedinBerbagi di Reddit
Cent OS
  1. Cara Menginstal dan Mengonfigurasi Redis di CentOS 7

  2. Cara Mengatur Kunci SSH di CentOS 8

  3. Bagaimana Menginstal Redis di CentOS 7

  1. Cara Menginstal dan Mengonfigurasi Redis di CentOS 8

  2. Cara Install Redis Server di CentOS 8 / RHEL 8

  3. Cara Setup Riak KV NoSQL Database Cluster di CentOS 7

  1. Cara mengatur server SVN di CentOS

  2. Cara Mengatur PureFTPd di CentOS 7

  3. Cara Mengatur Openshift Origin di CentOS 7