Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembangunan PHP: Melaksanakan mod HA dan failover menggunakan Redis dan Sentinel

Pembangunan PHP: Melaksanakan mod HA dan failover menggunakan Redis dan Sentinel

王林
王林asal
2023-06-17 11:11:591255semak imbas

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn