Dalam pembangunan Internet, ketersediaan tinggi sentiasa menjadi isu yang sangat penting. Bagi kebanyakan perniagaan, seperti e-dagang, permainan dan juga beberapa SaaS, ketersediaan tinggi ialah standard yang mesti dipenuhi. Dalam melaksanakan seni bina ketersediaan tinggi, PHP, sebagai bahasa bahagian pelayan yang popular, juga mempunyai pengalaman pembangunannya sendiri yang patut dikongsi.
Pengimbangan beban ialah salah satu langkah utama untuk mencapai seni bina ketersediaan tinggi. Ia boleh mengedarkan permintaan kepada berbilang pelayan untuk mencapai tujuan mengalihkan trafik. Dalam pembangunan PHP, perisian pengimbangan beban yang biasa digunakan termasuk LVS, Nginx, HAproxy, dll.
Antaranya, Nginx digunakan secara meluas dan mempunyai ciri-ciri fleksibiliti yang ringan dan tinggi. Dalam Nginx, dengan menyediakan modul huluan dan mentakrifkan IP dan port berbilang pelayan, pemajuan permintaan boleh dicapai. Selain itu, Nginx mempunyai prestasi pemprosesan yang sangat baik untuk sumber statik, yang boleh meningkatkan lagi kelajuan akses laman web.
Aplikasi tanpa status merujuk kepada pelayan aplikasi yang tidak menyimpan keadaan sesi pengguna (sesi), tetapi menyimpan keadaan kepada storan yang dikongsi. Dengan cara ini, data keadaan boleh dikongsi antara berbilang pelayan aplikasi untuk mencapai seni bina ketersediaan tinggi. Storan yang biasa digunakan termasuk Memcached, Redis, dsb.
Apabila melaksanakan aplikasi tanpa kewarganegaraan, anda perlu memberi perhatian kepada prinsip berikut:
(1) Penggunaan storan tempatan adalah dilarang: Dalam pelayan aplikasi, penggunaan fail tempatan, pangkalan data dan kaedah penyimpanan lain adalah dilarang. Kerana ini akan menghalang keadaan daripada dikongsi antara berbilang pelayan.
(2) Gunakan ID unik global: Apabila pengguna log masuk, pengguna perlu diberikan ID unik global dan simpan ID ini ke storan kongsi. Pada setiap permintaan, pelayan aplikasi perlu mendapatkan ID daripada storan kongsi untuk mengesahkan pengguna.
(3) Hadkan saiz data status pengguna: Oleh kerana kapasiti storan dikongsi adalah terhad, saiz data status pengguna perlu dihadkan.
Apabila melaksanakan seni bina ketersediaan tinggi, satu titik kegagalan mesti dielakkan. Kerana apabila satu titik kegagalan berlaku, perkhidmatan itu tidak akan tersedia, sekali gus menjejaskan pengalaman pengguna.
Dalam pembangunan PHP, kaedah yang biasa digunakan untuk mengelakkan satu titik kegagalan adalah seperti berikut:
(1) Gunakan siap sedia panas dwi-mesin: Anda boleh menyalin perkhidmatan ke siap sedia melalui dwi -sedia panas mesin Pada pelayan, apabila pelayan utama gagal, ia segera ditukar kepada pelayan sandaran untuk memastikan kesinambungan perkhidmatan.
(2) Gunakan replikasi induk-hamba: Dalam aplikasi pangkalan data, anda boleh menggunakan kaedah replikasi induk-hamba untuk memperuntukkan permintaan baca dan tulis kepada pelayan pangkalan data yang berbeza Apabila pelayan induk gagal, segera beralih kepada hamba pelayan.
(3) Gunakan storan teragih: Storan teragih boleh menyebarkan data merentasi berbilang pelayan untuk mengelakkan satu titik kegagalan.
Dalam seni bina ketersediaan tinggi, pemulihan perkhidmatan yang cepat juga sangat penting. Sebaik sahaja perkhidmatan gagal, langkah segera perlu diambil untuk memulihkan perkhidmatan kepada normal.
Dalam pembangunan PHP, langkah berikut boleh digunakan untuk memulihkan perkhidmatan dengan cepat:
(1) Penyerahan automatik: Melalui alatan penggunaan automatik, perkhidmatan boleh digunakan dengan cepat ke pelayan baharu.
(2) Keluaran skala kelabu: Apabila mengemas kini perkhidmatan, keluaran skala kelabu boleh digunakan untuk mengeluarkan versi baharu kepada sesetengah pengguna terlebih dahulu untuk memastikan kestabilan versi baharu, dan kemudian mengembangkan skop keluaran secara beransur-ansur.
(3) Pemantauan dan membimbangkan: Dalam operasi dan penyelenggaraan harian, perkhidmatan perlu dipantau dan penggera dikeluarkan tepat pada masanya untuk beralih kepada pelayan sandaran dengan cepat untuk memastikan kesinambungan perkhidmatan.
Ringkasan:
Mencapai seni bina ketersediaan tinggi memerlukan pengoptimuman daripada pelbagai aspek. Dalam pembangunan PHP, melalui langkah-langkah seperti pengimbangan beban, reka bentuk aplikasi tanpa kewarganegaraan, mengelakkan titik kegagalan tunggal dan pemulihan perkhidmatan yang cepat, kami boleh meningkatkan ketersediaan perkhidmatan dengan berkesan dan memberikan pengalaman yang lebih baik kepada pengguna.
Atas ialah kandungan terperinci Melaksanakan Seni Bina Yang Sangat Tersedia: Perkongsian Pengalaman Pembangunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!