Rumah > Artikel > pembangunan bahagian belakang > Apakah perbezaan antara php-fpm dan swole
Perbezaan: 1. "PHP-FPM" hanya terpakai untuk HTTPServer, manakala swoole bukan sahaja digunakan untuk HTTPServer, tetapi juga boleh mewujudkan sambungan TCP 2. "PHP-FPM" memantau permintaan penghantaran Nginx melalui Protokol FastCGI, manakala acara swoole Monitor berubah melalui Reaktor.
Persekitaran pengendalian tutorial ini: sistem windows10, versi PHP7.1, komputer DELL G3
1 PHP-FPM
Versi awal PHP tidak mempunyai pelayan WEB terbina dalam, tetapi menyediakan SAPI (Pelayan API) kepada pihak ketiga Lakukan dok. php-fpm yang sangat popular kini mengendalikan komunikasi antara PHP dan pelayan WEB pihak ketiga melalui protokol FastCGI.
Contohnya, gabungan php-fpm Nginx, fpm yang berjalan dengan cara ini ialah mod Master/Worker, memulakan proses Master untuk memantau permintaan daripada Nginx, dan kemudian memotong berbilang proses Worker untuk mengendalikan permintaan. Setiap proses Pekerja hanya boleh mengendalikan satu permintaan Kitaran hayat satu proses adalah kira-kira seperti berikut:
1.
2. Permintaan di sini bermaksud meminta PHP untuk melaksanakan kod, bukan permintaan HTTP.
3. Laksanakan skrip PHP.
4.
5.
Swoole juga menggunakan mod Master/Worker Perbezaannya ialah proses Master mempunyai beberapa utas Reaktor The Master hanyalah penjana peristiwa, bertanggungjawab untuk memantau perubahan peristiwa pemegang Soket. Pekerja berjalan dalam cara berbilang proses, menerima permintaan daripada benang Reaktor, dan melaksanakan fungsi panggil balik (ditulis dalam PHP). Proses memulakan proses Master adalah secara kasar:
1.
2. Oleh kerana swoole perlu dijalankan melalui cli, pembolehubah global PHP, seperti $_SERVER, $_POST, $_GET, dll., tidak akan dimulakan apabila permintaan dimulakan.
3. Laksanakan skrip PHP. Termasuk analisis leksikal dan sintaksis, permulaan pembolehubah, fungsi, kelas, dll., Guru memasuki keadaan mendengar dan tidak akan menamatkan proses.
Prinsip pecutan Swoole
Reaktor (kaedah penggunaan semula IO epoll) bertanggungjawab untuk memantau perubahan peristiwa pemegang Soket untuk menyelesaikan masalah konkurensi yang tinggi.
Jimat masa permulaan kod PHP melalui pemastautin memori Apabila menggunakan rangka kerja besar, kesan pecutan menggunakan swoole sangat jelas.
2. Perbandingan perbezaan
PHP-FPM
Menguasai proses utama / Berbilang pekerja -model proses.
Mulakan Master dan dengar permintaan yang dihantar daripada Nginx melalui protokol FastCGI.
Setiap proses Pekerja sepadan dengan hanya satu sambungan, yang digunakan untuk melaksanakan kod PHP lengkap.
Selepas kod PHP dilaksanakan, semua memori yang diduduki akan dimusnahkan, dan permintaan seterusnya perlu dimulakan semula dan operasi lain yang membosankan.
Hanya untuk Pelayan HTTP.
Swoole
Proses utama induk (terdiri daripada berbilang benang Reaktor)/mod berbilang proses (atau berbilang benang) Pekerja
Mulakan Master dan mulakan kod PHP, Reaktor memantau perubahan peristiwa pemegang Soket.
Urut utama Reaktor bertanggungjawab untuk mengimbangi berbilang benang, dan proses Pengurus menguruskan berbilang proses Pekerja, termasuk proses TaskWorker.
Setiap Pekerja menerima permintaan daripada Reaktor dan hanya perlu melaksanakan kod PHP dalam bahagian fungsi panggil balik.
Kod permulaan PHP hanya dilaksanakan sekali apabila Master mula memasuki keadaan mendengar dan tidak menamatkan proses.
Ia bukan sahaja boleh digunakan untuk Pelayan HTTP, tetapi juga boleh mewujudkan sambungan TCP dan sambungan WebSocket.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Apakah perbezaan antara php-fpm dan swole. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!