Intro
Programming languages used in most popular websites
Web Server進程模型
- 同步單進程服務器 - QPS=1/每個請求秒數
- 同步多進程服務器 - QPS=進程數/每個請求秒數
- 同步單進程多線程服務器 - QPS=線程數/每個請求秒數
- 同步多進程多線程服務器 - QPS=進程數*每個線程數/每個請求秒數 (Ex. Apache)
- 同步單進程單線程事件驅動線程池服務器 - QPS依設計決定 (Ex. NodeJS)
PHP
nginx使用php-fpm
介接、或Apcahe使用mod_php
Python
nginx使用WSGI
(多家套件可選)介接、或Apcahe使用mod_python
NodeJS
Node.js is a single threaded language which in background uses multiple threads to execute asynchronous code.
Cluster | Node.js Documentation (達到多線程server)
Go
net/http
直接支援多執行緒(Multi-core)