Merah menyediakan ketersediaan tinggi melalui Redis Sentinel sistem terdistribusi. Penjaga membantu memantau Redis instance, mendeteksi kegagalan dan akan melakukan pergantian peran secara otomatis sehingga mengaktifkan Redis penerapan untuk menahan segala jenis kegagalan.
Ini fitur pemantauan Redis instance (master dan replika), mendukung pemberitahuan layanan/proses lain atau administrator sistem melalui skrip, failover otomatis untuk mempromosikan replika ke master ketika master turun dan menyediakan konfigurasi bagi klien untuk menemukan master saat ini yang menawarkan layanan tertentu .
Artikel ini menunjukkan cara menyiapkan Redis untuk ketersediaan tinggi dengan Redis Sentinel di CentOS 8 , termasuk mengonfigurasi penjaga, memeriksa status penyiapan, dan menguji Penjaga kegagalan.
Prasyarat:
- Cara Mengatur Replikasi Redis (dengan Mode Cluster Dinonaktifkan) di CentOS 8 – Bagian 1
Pengujian Pengaturan Lingkungan
Master Server and Sentinel1: 10.42.0.247 Redis Replica1 and Sentinel2: 10.42.0.21 Redis Replica2 and Sentinel3: 10.42.0.34
Diagram Logika Pengaturan Redis Sentinel
Menurut Redis Sentinel dokumentasi, seseorang membutuhkan setidaknya tiga Penjaga contoh untuk penyebaran yang kuat. Mempertimbangkan pengaturan kami di atas, jika master gagal, Penjaga2 dan Sentinel3 akan menyetujui kegagalan dan akan dapat mengotorisasi failover, membuat operasi klien dapat dilanjutkan.
Langkah 1:Memulai dan Mengaktifkan Layanan Redis Sentinel
1. Di CentOS 8 , Penjaga Redis layanan dipasang di samping Redis server (yang sudah kita lakukan di Redis Replication Setup).
Untuk memulai Redis layanan sentinel dan aktifkan untuk memulai secara otomatis saat boot sistem, gunakan systemctl berikut ini perintah. Juga, konfirmasikan bahwa itu aktif dan berjalan dengan memeriksa status (lakukan ini pada semua node):
# systemctl start redis-sentinel # systemctl enable redis-sentinel # systemctl status redis-sentinel
Mulai Layanan Redis Sentinel
Langkah 2:Mengonfigurasi Redis Sentinel di Semua Redis Node
2. Di bagian ini, kami menjelaskan cara mengonfigurasi Sentinel di semua node kami. Penjaga service memiliki format konfigurasi yang mirip dengan Redis server. Untuk mengkonfigurasinya, gunakan /etc/redis-sentinel.conf file konfigurasi yang didokumentasikan sendiri.
Pertama, buat cadangan file asli dan buka untuk diedit.
# cp /etc/redis-sentinel.conf /etc/redis-sentinel.conf.orig # vi /etc/redis-sentinel.conf
3. Secara default, Sentinel mendengarkan pada port 26379 , verifikasi ini pada semua instance. Perhatikan bahwa Anda harus meninggalkan bind parameter dikomentari (atau disetel ke 0.0.0.0 ).
port 26379
Setel Antarmuka dan Port Dengarkan Sentinel
4. Selanjutnya, beri tahu Sentinel untuk memantau master our kami , dan untuk mempertimbangkannya di bagian “Turun Secara Objektif ” nyatakan hanya jika setidaknya 2 penjaga kuorum setuju. Anda dapat mengganti “master saya ” dengan nama khusus.
#On Master Server and Sentinel1 sentinel monitor mymaster 127.0.0.1 6379 2 #On Replica1 and Sentinel2 sentinel monitor mymaster 10.42.0.247 6379 2 #On Replica1 and Sentinel3 sentinel monitor mymaster 10.42.0.247 6379 2
Setel Redis Master ke Monitor
Penting :Pernyataan monitor sentinel HARUS ditempatkan sebelum auth-pass . penjaga pernyataan untuk menghindari kesalahan “Tidak ada master seperti itu dengan nama yang ditentukan. ” saat memulai ulang layanan sentinel.
5. Jika Merah master untuk memantau memiliki set kata sandi (dalam kasus kami master memiliki), berikan kata sandi sehingga instance Sentinel dapat mengautentikasi dengan instance yang dilindungi.
sentinel auth-pass mymaster [email protected]
Setel Kata Sandi Otentikasi Utama
6. Kemudian tetapkan jumlah milidetik yang tidak dapat dijangkau oleh master (atau replika atau penjaga terlampir) untuk mempertimbangkannya di bagian “Turun Secara Subjektif ” status.
Konfigurasi berikut berarti master akan dianggap gagal segera setelah kami tidak menerima balasan apa pun dari ping kami dalam 5 detik (1 detik setara dengan 1000 milidetik).
sentinel down-after-milliseconds mymaster 5000
Tetapkan Waktu untuk Master
7. Selanjutnya, atur batas waktu failover dalam milidetik yang menentukan banyak hal (baca dokumentasi parameter di file konfigurasi).
sentinel failover-timeout mymaster 180000
Setel Gagal Selama Timeout
8. Kemudian atur jumlah replika yang dapat dikonfigurasi ulang untuk menggunakan master baru setelah failover secara bersamaan. Karena kami memiliki dua replika, kami akan menetapkan satu replika sementara yang lain akan dipromosikan menjadi master baru.
sentinel parallel-syncs mymaster 1
Setel Jumlah Replika Sinkronisasi Paralel
Perhatikan bahwa file konfigurasi di Redis Replica1 dan Sentinel2 , dan Reddis Replica1 dan Sentinel2 harus identik.
9. Selanjutnya, mulai ulang Sentinel layanan di semua node untuk menerapkan perubahan terbaru.
# systemctl restart redis-sentinel
10. Selanjutnya, buka port 26379 di firewall di semua node untuk mengaktifkan Sentinel contoh untuk mulai berbicara, menerima koneksi dari Sentinel lainnya instance, menggunakan firewall-cmd.
# firewall-cmd --zone=public --permanent --add-port=26379/tcp # firewall-cmd --reload
11. Semua replika akan ditemukan secara otomatis. Yang penting, Penjaga akan memperbarui konfigurasi secara otomatis dengan informasi tambahan tentang replika. Anda dapat mengonfirmasi ini dengan membuka Sentinel file konfigurasi untuk setiap instance dan periksa.
Misalnya, saat Anda melihat bagian akhir file konfigurasi master, Anda akan melihat penjaga yang diketahui dan replika yang dikenal pernyataan seperti yang ditunjukkan pada tangkapan layar berikut.
Konfigurasi Otomatis di Master
Kasusnya harus sama pada replica1 dan replika2 .
Konfigurasi Otomatis di Replica1
Konfigurasi Otomatis di Replica2
Perhatikan bahwa Penjaga konfigurasi juga ditulis ulang/diperbarui setiap kali replika dipromosikan ke status master selama failover dan setiap kali Sentinel baru ditemukan dalam penyiapan.
Langkah 3:Periksa Status Pengaturan Redis Sentinel
12. Sekarang periksa Penjaga status/informasi pada master, menggunakan info sentinel perintah sebagai berikut.
# redis-cli -p 26379 info sentinel
Dari output perintah seperti terlihat pada tangkapan layar berikut, kami memiliki dua replika/budak dan tiga penjaga.
Periksa Info Sentinel di Master
13. Untuk menampilkan informasi mendetail tentang master (disebut master saya ), gunakan master penjaga perintah.
# redis-cli -p 26379 sentinel master mymaster
Tampilkan Info Detail Tentang Sentinel Master
14. Untuk menampilkan informasi rinci tentang budak dan penjaga , gunakan budak penjaga komando dan penjaga sentinel perintah masing-masing.
# redis-cli -p 26379 sentinel slaves mymaster # redis-cli -p 26379 sentinel sentinels mymaster
15. Selanjutnya, tanyakan alamat master berdasarkan nama dari instance slave menggunakan sentinel get-master-addr-by-name perintah sebagai berikut.
Outputnya harus berupa alamat IP dan port instance master saat ini:
# redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
Dapatkan Alamat Master dengan Nama di Budak
Langkah 4:Uji Kegagalan Sentinel
16. Terakhir, mari uji failover otomatis di Sentinel our kami mendirikan. Di Redis/Sentinel master, buat Redis master (berjalan pada port 6379 ) untuk tidur selama 60 detik. Kemudian tanyakan alamat master saat ini pada replika/slave sebagai berikut.
# redis-cli -p 6379 127.0.0.1:6379> AUTH [email protected] 127.0.0.1:6379> debug sleep 60 # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
Dari output kueri, master baru sekarang menjadi replica/slave2 dengan alamat IP 10.42.0.34 seperti yang terlihat pada tangkapan layar berikut.
Uji Redis Sentinel Failover
Anda dapat memperoleh informasi lebih lanjut dari dokumentasi Redis Sentinel. Tetapi jika Anda memiliki pemikiran untuk dibagikan atau ditanyakan, formulir umpan balik di bawah ini adalah pintu gerbang Anda kepada kami.
Di bagian berikutnya dan terakhir dari seri ini, kita akan melihat cara menyiapkan Redis Cluster di CentOS 8. Ini akan menjadi artikel independen dari dua yang pertama.
Berbagi itu Peduli…Berbagi di FacebookBerbagi di TwitterBerbagi di LinkedinBerbagi di Reddit