高性能服務端兩個重要要素:緩存+語言支持異步非堵塞
緩存:內存>SSD>機械磁盤 本機>網絡 進程內>進程間
異步非阻塞:事件驅動方式(事件完成後再通知)
OpenResty:顛覆了高性能服務端的開發模式(Nginx+LuaJIT)
Nginx:負載均衡+反向代理 Nginx c module
Lua:嵌入式腳本語言(網遊中用的較多)
LuaJIT:OpenResty用的LuaJIT主打性能的Lua
OpenResty原理:LuaJIT的虛擬機嵌入到Nginx的worker中,所以效率特別高
對比:
node.js:第一門將異步非阻塞特性放入自己語言中的,但是node.js用回調callback實現異步非阻塞
Python:版本跨度大
Golang:
SystemTap:
BaaS:
openresty安裝搭建
-
使用 apt-get安裝以下的開發庫:
apt-get install libpcre3-dev
libssl-dev perl make build-essential curl -
下載
從下載頁 Download下載最新的 OpenResty® 源碼包,並且像下面的示例一樣將其解壓:
tar -xzvf openresty-VERSION.tar.gz
VERSION 的地方替換成您下載的源碼包的版本號,比如說 0.8.54.6。
./configure -
然後在進入 openresty-VERSION/ 目錄, 然後輸入以下命令配置:
./configure
默認, --prefix=/usr/local/openresty 程序會被安裝到/usr/local/openresty目錄。
您可以指定各種選項,比如
./configure --prefix=/opt/openresty
–with-luajit
–without-http_redis2_module
–with-http_iconv_module
–with-http_postgres_module
試着使用 ./configure --help 查看更多的選項。
配置文件(./configure script)運行出錯可以到 build/nginx-VERSION/objs/autoconf.err 找到。 VERSION 的地方必須與OpenResty版本號相對應, 比如 0.8.54.6。 -
make
您可以使用下面的命令來編譯:
make
如果您的電腦支持多核 make 工作的特性, 您可以這樣編譯:
make -j2
假設您是的機器是雙核。 -
make install
如果前面的步驟都沒有問題的話,您可以使用下面的命令安裝l OpenResty到您的系統之中:make install
在 Linux,通常包括 sudo來執行root權限做的事情。 -
啓動(路徑請參考修改)
sudo /opt/openresty/nginx/sbin/nginx -c /opt/openresty/nginx/conf/nginx.conf -p /opt/openresty/nginx/
openserty連接MySQL
openserty連接Redis
openserty緩存
share_dic(純內存工作。預置內存大小)
1、nginx.con修改加上:
2、修改lua(充分利用內存卡空間。多個worker用同一份數據。但是會產生鎖的操作。)