Rumah > Artikel > pembangunan bahagian belakang > Pembangunan PHP: Melaksanakan mod HA dan failover menggunakan Redis dan Sentinel
Di bawah seni bina nod tunggal tradisional, semua permintaan untuk aplikasi akan dihantar ke pelayan yang sama. Walaupun seni bina ini agak mudah, ia memberikan risiko satu titik kegagalan. Jika pelayan tempat aplikasi dihoskan hang, semua permintaan akan gagal.
Untuk menyelesaikan masalah ini, kami perlu menggunakan aplikasi pada berbilang pelayan untuk mencapai mod ketersediaan tinggi (HA) dan failover. Dalam artikel ini, kami akan membincangkan cara melaksanakan ketersediaan tinggi dan failover menggunakan Redis dan Sentinel.
Redis ialah sistem storan data dalam memori pantas yang biasa digunakan untuk caching, beratur, analitik masa nyata dan pemesejan. Redis mempunyai reka bentuk satu benang dan menggunakan memori sebagai storan. Ini memberikan Redis prestasi dan kebolehskalaan yang sangat baik.
Sentinel ialah penyelesaian ketersediaan tinggi untuk Redis. Ia boleh memantau kejadian Redis dan secara automatik bertukar kepada nod sandaran apabila nod utama gagal. Failover automatik ini memastikan tika Redis anda sentiasa tersedia.
Berikut ialah langkah-langkah untuk mencapai ketersediaan tinggi dan failover menggunakan Redis dan Sentinel.
Langkah pertama, pasang Redis dan Sentinel
Pada CentOS, anda boleh menggunakan arahan berikut untuk memasang Redis dan Sentinel:
yum install redis sentinel
Di Ubuntu, anda boleh menggunakan arahan berikut untuk memasang Redis dan Sentinel:
apt-get install redis sentinel
Langkah kedua ialah mengubah suai fail konfigurasi Redis
Pada nod utama dan nod sandaran, anda perlu mengubah suai fail konfigurasi Redis. Pada CentOS, fail konfigurasi terletak di /etc/redis.conf
, dan pada Ubuntu, fail konfigurasi terletak di /etc/redis/redis.conf
.
Dalam fail konfigurasi, parameter bind
perlu ditetapkan kepada alamat IP nod. Jika anda ingin membenarkan pelanggan dari mana-mana IP menyambung ke Redis, anda boleh menetapkan parameter bind
kepada 0.0.0.0.
Anda juga perlu menetapkan parameter requirepass
kepada kata laluan untuk memastikan bahawa hanya pengguna yang dibenarkan boleh mengakses Redis.
Akhir sekali, tetapkan parameter daemonize
kepada ya untuk memastikan Redis berjalan di latar belakang.
bind 192.168.0.1 requirepass mypassword daemonize yes
Untuk nod sandaran, anda juga perlu menetapkan parameter slaveof
kepada alamat IP dan nombor port nod utama.
slaveof 192.168.0.1 6379
Langkah ketiga ialah mengubah suai fail konfigurasi Sentinel
Pada CentOS, fail konfigurasi Sentinel terletak di /etc/redis-sentinel.conf
dan pada Ubuntu, fail konfigurasi Sentinel terletak di /etc/redis/sentinel.conf
.
Dalam fail konfigurasi Sentinel, parameter bind
perlu ditetapkan untuk memastikan Sentinel menerima permintaan daripada klien. Jika anda ingin membenarkan pelanggan dari mana-mana alamat IP untuk menyambung ke Sentinel, anda boleh menetapkan parameter bind
kepada 0.0.0.0.
Anda juga perlu menetapkan parameter sentinel monitor
untuk memantau tika Redis. Parameter ini mengandungi nama, alamat IP, nombor port dan ambang failover bagi contoh Redis.
bind 192.168.0.2 sentinel monitor mymaster 192.168.0.1 6379 2
Dalam contoh ini, Sentinel akan memantau tika Redis bernama mymaster
. Jika nod utama gagal, Sentinel akan memulakan tika Redis baharu secara automatik pada nod sandaran dan mempromosikannya kepada nod utama.
Langkah 4, mulakan Redis dan Sentinel
Pada setiap nod, mulakan Redis dan Sentinel:
systemctl start redis systemctl start redis-sentinel
Selepas nod induk bermula, Sentinel akan mula memantau tika Redis . Jika nod utama gagal, Sentinel akan memulakan tika Redis baharu secara automatik pada nod sandaran dan mempromosikannya kepada nod utama. Semasa proses ini, pelanggan secara automatik akan bertukar kepada nod induk baharu dan aplikasi akan terus berfungsi seperti biasa.
Anda boleh menyemak status kejadian Redis menggunakan arahan berikut:
redis-cli -h 192.168.0.1 -p 6379 ping
Anda boleh menyemak status Sentinel menggunakan arahan berikut:
redis-cli -h 192.168.0.2 -p 26379 sentinel slaves mymaster
Dalam contoh ini, kami menyambungkan Sentinel ke 192.168.0.2 pada port 26379 dan semak nod sandaran untuk contoh Redis bernama mymaster
.
Ringkasan
Dalam artikel ini kami melihat cara untuk mencapai ketersediaan tinggi dan failover menggunakan Redis dan Sentinel. Dengan menggunakan aplikasi pada berbilang pelayan dan menggunakan failover automatik, anda boleh memastikan bahawa aplikasi terus berfungsi dengan betul jika nod utama gagal.
Dengan cara ini, anda meningkatkan ketersediaan aplikasi anda dan mengurangkan risiko satu mata kegagalan. Kami harap anda dapati artikel ini membantu dan mengucapkan selamat maju jaya dalam menggunakan Redis dan Sentinel.
Atas ialah kandungan terperinci Pembangunan PHP: Melaksanakan mod HA dan failover menggunakan Redis dan Sentinel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!