安基網 首頁 系統 Web技術 查看內容

OpenResty 高性能服務器,單機可達10K到1000K

2019-10-31 10:13| 投稿: xiaotiger |來自: 互聯網


免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!

摘要: 一、OpenResty 是個啥OpenResty是基于Ngnix和Lua的高性能web平臺,內部集成精良的LUa庫、第三方模塊、依賴項。用于方便搭建能夠處理高并發、擴展性極高的動態web應用、web服務、動態網關。可以使用Lua腳本調用Ngnix支持的C以及Lua模塊,快速構建10K~1000K單機并發連接的高性能web應用系統。OpenResty ...

一、OpenResty 是個啥

OpenResty是基于Ngnix和Lua的高性能web平臺,內部集成精良的LUa庫、第三方模塊、依賴項。用于方便搭建能夠處理高并發、擴展性極高的動態web應用、web服務、動態網關。可以使用Lua腳本調用Ngnix支持的C以及Lua模塊,快速構建10K~1000K單機并發連接的高性能web應用系統。

OpenResty的目標是讓web服務直接運行在Nginx服務內部,利用Ngnix的非阻塞IO模型,對HTTP客戶端請求和后端DB進行一致的高性能響應。

二、OpenResty 的工作方式

OpenResty 是 Nginx+LuaJIT 的完美組合。

由于Nginx采用的是master-worker模型,也就是一個master主進程管理多個worker進程,基本的事件處理都是放在worker中,master僅負責一些全劇初始化,以及對worker的管理。在OpenResty中,每個worker使用一個LuaVM,每個請求被分配到worker時,將在這個LuaVM中創建一個coroutine協程。協程之間數據隔離,每個協程具有獨立的全局變量_G。

Lua中的協程和多線程下的線程類似,都有自己的堆棧、局部變量、指令指針...,但是和其他協程程序共享全局變量等信息。線程和協程主要不同在于:多處理器的情況下,概念上來說多線程是同時運行多個線程,而協程是通過代碼來完成協程的切換,任何時刻只有一個協程程序在運行。并且這個在運行的協程只有明確被要求掛起時才會被掛起。

根據實際測試,OpenResty性能接近于Nginx 性能之王c module,甚至超過。

三、OpenResty 的架構

1、負載均衡

LVS+HAProxy將流量轉發給核心Nginx1和Nginx2,即實現了流量的負載均衡。

2、單機閉環

所有想要的數據都能從本服務器直接獲取,大多數時候無需通過網絡或去其他服務器獲取。

3、分布式閉環

單機閉環會遇到2個主要問題

  1. 數據不一致
  2. 例如沒有主從架構導致不同服務器數據不一致
  3. 遇到存儲瓶頸
  4. 磁盤或內存遇到天花板

解決數據不一致比較好的辦法是采用主從或分布式集中存儲,而遇到存儲瓶頸就需要進行按業務鍵進行分片,將數據分散到多臺服務器。

4、接入網關

接入網關又叫接入層,即接收流量的入口,在入口處做如下事情:

四、附錄其他:Socket編程

Linux Socket編程領域為了處理大量連接請求場景,需要使用非阻塞I/O和復用,select、poll、epoll是Linux API提供的I/O復用方式,自從Linux2.6中加入了epoll之后,高性能服務器領域得到廣泛的應用,Nignx就是使用epoll來實現I/O復用支持高并發。

對于“高性能”服務端而言,我們所關注的并不是語言的性能,而是緩存和語言支持異步非阻塞。

1、緩存

針對緩存要明白通信速度的快慢順序

  • 內存>SSD>機械磁盤
  • 本機>網絡
  • 進程內 > 進程間

緩存系統的目標是希望在進程內的命中率是最高的,那么此時緩存系統整體的效率也是最高的。

2、異步非阻塞

希望訪問數據庫、訪問網絡,訪問一些比較慢的IO設備時,不要在等待上耗費大量時間。而是使用事件驅動的方式,當系統完成某項任務后再來通知我們。這樣就可以將服務器CPU的空閑資源,用來服務客戶端連接。

OpenResty 作為高性能的服務端,非常實用,大家再做架構的時候可以考慮下。



小編推薦:欲學習電腦技術、系統維護、網絡管理、編程開發和安全攻防等高端IT技術,請 點擊這里 注冊賬號,公開課頻道價值萬元IT培訓教程免費學,讓您少走彎路、事半功倍,好工作升職加薪!

本文出自:https://www.toutiao.com/i6753399184423911943/

免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!


鮮花

握手

雷人

路過

雞蛋

相關閱讀

最新評論

 最新
返回頂部
湖北快3 购买技巧