




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、講師介紹Hash從事Java軟件研發(fā)近十年。前新浪支付成員、咪咕視訊(中國移動)項目經(jīng)理、對分布式架構(gòu)、高性能編程有深入的研究。明天,你一定會感謝今天奮力拼搏的| JAVA架構(gòu)師課程讓你的Nginx更強大,通過Lua拓展Nginx分布式高并發(fā)負載均衡目錄課程安排| JAVA架構(gòu)師課程04功能實戰(zhàn)實現(xiàn)一個高性能的商品頁面03打造高性能后端接口強強,如何玩轉(zhuǎn)Nginx+Lua+Redis?02Nginx增加Lua執(zhí)行模塊Nginx相關(guān)概念、安裝使用01Lua簡述像Lua一樣快目錄01Lua簡述| JAVA架構(gòu)師課程Lua語言Lua是一種功能強大,高效,輕量級,可嵌入的到我們應(yīng)用程序中。語言,非常容
2、易嵌入Lua是動態(tài)類型的,通過使用基于寄存器的虛擬機解釋字節(jié)碼來運行,并具有增量收集的自動內(nèi)存管理,使其成為配置,和快速原型設(shè)計的理想選擇。Lua旨在成為一種輕量級可嵌入到Web應(yīng)用程序和圖像處理。語言。它用于各種應(yīng)用程序,從應(yīng)用場景1.2.3.許多工業(yè)應(yīng)用 (例如, Adobe的Photoshop Lightroom)重點是Lua目前 是系統(tǒng)(例如, 巴西的數(shù)字電視的 Ginga中間件)中領(lǐng)先的語言,在(例如, 魔獸世界和憤怒的小鳥)中使用。官網(wǎng):| JAVA架構(gòu)師課程Lua特點快,Lua是解釋語言領(lǐng)域中最快的語言Lua是便攜式的,在具有標準C編譯器的所有平臺中構(gòu)建成開箱即用,可運行各種Un
3、ix和Windows,移動設(shè)備(運行Android,iOS,BREW,Symbian,Windows Phone),Rabbit,適用于Lego MindStorms等應(yīng)用程序),IBM大型機等。微處理器(如ARM和可嵌入,Lua是一種快速語言引擎,占用空間小,可以輕松嵌入到應(yīng)用程序中。簡單而強大,提供實現(xiàn)功能的*元機制*,而不是直接在語言中提供大量功能。Lua不是純粹的面向?qū)ο笳Z言,提供了實現(xiàn)類和繼承的元機制。小,源包含大約24000行C,包含源代碼和文檔的Lua 5.3.5的tar包需要297K壓縮和1.2M未壓縮。,MIT證,可以用于任何目的,包括商業(yè)目的,完全。| JAVA架構(gòu)師課程開
4、始使用Lua安裝LuaHelloWorld| JAVA架構(gòu)師課程$ luaLua 5.1.4 Copyright (C) 1994-2008 L, PUC-Rio> print("hello, world") hello, worldcurl -R -Otar zxf lua-5.3.5.tar.gz cd lua-5.3.5make linux test一個小例子新建hello.lua文件,內(nèi)容如下運行示例hello.lua文件語法比Java要簡略,縮進對齊,無大括號分號Lua實現(xiàn)的階乘代碼示例| JAVA架構(gòu)師課程$ lua hello.lua ent
5、er a number:5120# 120=5*4*3*2*1- defines a factorial function function fact (n)if n = 0 then return 1elsereturn n * fact(n-1) endendprint("enter a number:")a = io.read("*number")- read a number print(fact(a)目錄02Nginx增加Lua執(zhí)行模塊| JAVA架構(gòu)師課程給插上翅膀Nginx嵌入Lua語言ngx_lua模塊不鼓勵用Nginx構(gòu)建這個模塊,構(gòu)建
6、需要注意,Nginx,LuaJIT和OpenSSL版具有各種限制和長期存在的錯誤,這些錯誤可能會導(dǎo)致某些模塊的功能被禁用,無法正常運行或運行速度變慢。如何編譯,參考Nginx嵌入Lua語言操作手冊。使用ngx_lua模塊相當于使用Openresty,建議用版本OpenResty,它做了大量優(yōu)化、集成了常用的第插件。OpenRestyOpenResty內(nèi)部集成了大量精良的 Lua 庫、第模塊以及OpenResty是一款基于大多數(shù)的依賴項。用于方便地搭建能夠處理超高并發(fā)、擴展NGINX 和 LuaJITWeb 平臺。的性極高的動態(tài) Web 應(yīng)用、Web 服務(wù)和關(guān)。OpenResty的安裝參考Ope
7、nResty安裝操作,比構(gòu)建ngx_lua模塊簡單很多ngx_lua模塊資料:|JAVA架構(gòu)師課程ngx_lua支持的指令認識ngx_lua中的指令內(nèi)容處理可以由上游服務(wù)或者Lua語言來處理,用Lua就大有可為了。| JAVA架構(gòu)師課程指令分為配置指令、 指令。指令分為兩種方式:lua塊*_by_lua_block lua文件*_by_lua_fileLua 執(zhí)行順序,如右圖從上至下:初始化、重寫/ 、內(nèi)容處理、日志輸出四個階段。ngx_lua演示在OpenResty中演示ngx_lua的指令內(nèi)容,參考nginx_lua_directives.conf文件| JAVA架構(gòu)師課程目錄03打造高性
8、能后端接口| JAVA架構(gòu)師課程OpenRestyRedis模塊OpenResty中默認嵌入了下列模塊,包含Redis,所以要使用Redis非常簡單。Lua中使用Redis代碼示例| JAVA架構(gòu)師課程- 引入Redis模塊local redis = require("resty.redis")-創(chuàng)建實例local red = redis:new()-建立連接local ok, err = red:connect(“”, 6379)-調(diào)用API進行處理ok, err = red:set("msg", "hello world&
9、quot;) local resp, err = red:get("msg")Nginx非阻塞與Lua協(xié)程的絕配服務(wù)器有個設(shè)計原則:永遠不能阻塞。nginx作為非常優(yōu)秀的服務(wù)器,這點發(fā)揮的非常極致。在nginx里有很多的體現(xiàn)異步的地方。Lua嵌入會阻塞嗎?通過nginx的異步機制和lua的協(xié)程,很容易實現(xiàn)這種同步寫法,異步實現(xiàn)的模型,但對開發(fā)人員而言,不用關(guān)心內(nèi)部做了什么。| JAVA架構(gòu)師課程- foo本身是個協(xié)程,由nginx調(diào)用function foo()- 此處由nginx發(fā)起db的連接請求,因為異步這里先暫停協(xié)程users = db.query('user
10、s', name: name);- 當請求有響應(yīng)得到處理時,繼續(xù)執(zhí)行協(xié)程,這些才運行deal_with(users);endLua協(xié)程什么是協(xié)程?Lua協(xié)程,稱為協(xié)作式多線程。Lua中的協(xié)程代表一個的執(zhí)行線程,具有的堆棧、的局部變量、PC計數(shù)器和其自己的指令指針; 與java線程不同的是,協(xié)程只通過顯式調(diào)用yield函數(shù)來暫停其執(zhí)行。同一時間,多協(xié)程只運行其中一個,多線程則可以運行多個。協(xié)程可以處于三種不同狀態(tài)之一:暫停,運行和使用Lua協(xié)程coroutine.create(f)創(chuàng)建一個新的協(xié)同程序并返回一個類型為thread的對象,并不啟動協(xié)程。coroutine.resume(co)開始或繼續(xù)執(zhí)行協(xié)同程序co coroutine.yield暫停執(zhí)行調(diào)用協(xié)程,讓出CPU coroutine.wrap(f)類似create方法,創(chuàng)建一個協(xié)程但它不是返回協(xié)程本身,而是返回一個函數(shù),當被調(diào)用時,它恢復(fù)協(xié)程| JAVA架構(gòu)師課程Lua協(xié)程示例同步的寫法,異步的實現(xiàn)| JAVA架構(gòu)師課程coroutine.resume(co) - 輸出 co 1 coroutine
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財務(wù)分析課件:探索曹慶華的教學(xué)智慧
- 《神經(jīng)系統(tǒng)疾病》課件
- 孕期營養(yǎng)與體重管理課件
- 尊享駕駛:高端汽車揭秘
- 2025LED照明系統(tǒng)安裝合同
- 2025租房合同簡化版范文
- 蝸桿傳動課件設(shè)計
- 2025年廣東省河源市中考數(shù)學(xué)一模試卷
- 《地形剖面圖復(fù)習》課件
- 2025教育機構(gòu)股權(quán)轉(zhuǎn)讓合同
- 拆井施工方案
- 【中小企業(yè)財務(wù)管理存在的問題及對策分析-以A公司為例5100字(論文)】
- -2月班主任隨堂聽課記錄表
- 《虛擬現(xiàn)實(VR)制作與應(yīng)用》考試復(fù)習題庫(匯總)
- 電力系統(tǒng)規(guī)劃課件
- 解剖學(xué)下肢肌課件
- NB/T 11141-2023煤礦用氮氣降溫裝置
- 2023年山東省煙臺市中考歷史真題卷(含答案與解析)
- 國開2023春《語言學(xué)概論》形考任務(wù)1-3+大作業(yè)參考答案
- 第七章第四節(jié)+俄羅斯第二課時課件人教版七年級地理下冊
- 大學(xué)生國家安全教育智慧樹知到答案章節(jié)測試2023年廣西科技大學(xué)
評論
0/150
提交評論