8 月 31 日,由又拍云、OpenResty 社區(qū)主辦的 OpenResty × Open Talk 全國(guó)巡回沙龍·成都站在言幾又·成都凱德店順利落幕,這是系列活動(dòng)的第五站。OpenResty × Open Talk 全國(guó)巡回沙龍旨在促進(jìn) OpenResty 在技術(shù)圈的發(fā)展,增進(jìn) OpenResty 使用者的交流與學(xué)習(xí)。在成都站活動(dòng)現(xiàn)場(chǎng),五位嘉賓分享了自己專業(yè)的觀點(diǎn)和經(jīng)驗(yàn),讓到場(chǎng)的開(kāi)發(fā)者受益匪淺。
成都站活動(dòng)現(xiàn)場(chǎng)合影
OpenResty × Open Talk 全國(guó)巡回沙龍成都站邀請(qǐng)了 OpenResty 軟件基金會(huì)發(fā)起人溫銘、王院生、又拍云系統(tǒng)開(kāi)發(fā)高級(jí)工程師黃勵(lì)博、原貝殼找房基礎(chǔ)架構(gòu)部工程師尹吉峰、奇安信工程師艾菲,分享了包括高性能 API 網(wǎng)關(guān)、云存儲(chǔ)網(wǎng)關(guān)、高性能 Web 應(yīng)用等 OpenResty 相關(guān)技術(shù)應(yīng)用,為近百位現(xiàn)場(chǎng)觀眾和數(shù)千線上觀眾提供了一場(chǎng)技術(shù)盛宴。
言幾又·成都凱德店
說(shuō)起成都大家的第一反應(yīng)肯定是天府之國(guó)、美食之都、火鍋二巨頭之一,總而言之吃就完事了!然而本次活動(dòng)的一大亮點(diǎn)就是在千丈口水中硬生生開(kāi)出一片書(shū)香墨意,這個(gè)獨(dú)具特色的活動(dòng)場(chǎng)地——言幾又·成都凱德店,為技術(shù)分享增添了一絲藝術(shù)氣息,此處書(shū)成墻壁,紙建空間,字畫(huà)風(fēng)情,講師們分享的內(nèi)容化為有血有肉的實(shí)體,讓每一個(gè)人到場(chǎng)者都被知識(shí)所包圍。
如何做 API 網(wǎng)關(guān)的選型、測(cè)試和持續(xù)集成
OpenResty 軟件基金會(huì)發(fā)起人溫銘做了開(kāi)場(chǎng)分享,他是開(kāi)源微服務(wù) API 網(wǎng)關(guān) APISIX 作者,《OpenResty 從入門到實(shí)戰(zhàn)》專欄作者,他以開(kāi)源微服務(wù) API 網(wǎng)關(guān) APISIX 為例,詳細(xì)介紹了 API 網(wǎng)關(guān)的選型和持續(xù)集成實(shí)踐。
OpenResty 軟件基金會(huì)發(fā)起人溫銘
APISIX 是一個(gè)云原生、高性能、可擴(kuò)展的微服務(wù) API 網(wǎng)關(guān),基于 OpenResty 和 etcd 實(shí)現(xiàn),和傳統(tǒng) API 網(wǎng)關(guān)相比,APISIX 增加了包括支持多云和混合云、無(wú)狀態(tài)、隨意擴(kuò)容和縮容等在內(nèi)的諸多功能,能夠更為妥帖的滿足企業(yè)個(gè)性需求的開(kāi)發(fā)。
溫銘介紹了 API 網(wǎng)關(guān)的核心組件包括路由、插件、schema 和存儲(chǔ)等,他通過(guò)對(duì)著四個(gè)組件的合理選擇,使 APISIX 具有了很多獨(dú)有的功能;測(cè)試方面,APISIX 遵循著測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的原則,通過(guò)單元測(cè)試、代碼風(fēng)格測(cè)試和代碼覆蓋率的檢測(cè),使 APISIX 達(dá)到了超高性能;持續(xù)集成方面,APISIX 強(qiáng)依賴 GitHub 和 travis CI,以及 coveralls.io。
溫銘總結(jié)到, APISIX 項(xiàng)目在設(shè)計(jì)與實(shí)現(xiàn)過(guò)程中,面臨著資源少的難題,但是通過(guò)對(duì)現(xiàn)有組件的合理使用,APISIX 的選型、測(cè)試和 CI 都找到了“取巧”和自動(dòng)化的方式,大大提升了項(xiàng)目完成的效率和項(xiàng)目的性能,GitHub 和 SaaS 能提供的,絕對(duì)不要自己造輪子。
又拍云基于 OpenResty 實(shí)現(xiàn)的云存儲(chǔ)網(wǎng)關(guān)
又拍云系統(tǒng)開(kāi)發(fā)高級(jí)工程師黃勵(lì)博,在又拍云主要負(fù)責(zé)私有容器平臺(tái)、云存儲(chǔ)、云處理相關(guān)的架構(gòu)設(shè)計(jì)和開(kāi)發(fā)工作,熟悉 Python/Lua/Go 等語(yǔ)言,在 Docker 容器方面擁有豐富的實(shí)踐經(jīng)驗(yàn),在 ngx_lua 和 OpenResty 方面有著豐富的模塊開(kāi)發(fā)和維護(hù)經(jīng)驗(yàn)。他在現(xiàn)場(chǎng)介紹了又拍云基于 OpenResty 實(shí)現(xiàn)的云存儲(chǔ)網(wǎng)關(guān),設(shè)計(jì)索引、存儲(chǔ)、分塊、負(fù)載均衡、流量控制等功能的實(shí)現(xiàn)與使用方法。
又拍云系統(tǒng)開(kāi)發(fā)高級(jí)工程師黃勵(lì)博
黃勵(lì)博從數(shù)據(jù)拆分、路由配置、存儲(chǔ)常用的增刪查改和擴(kuò)容四個(gè)方面,詳細(xì)介紹了 OpenResty 在又拍云存儲(chǔ)中的實(shí)際應(yīng)用。
黃勵(lì)博講到,又拍云存儲(chǔ)是分布式存儲(chǔ),而分布式存儲(chǔ)的優(yōu)勢(shì)為高可用、易擴(kuò)展和易維護(hù)。而又拍數(shù)據(jù)的拆分是由 OpenResty 來(lái)進(jìn)行的三次拆分,拆分后又將 OpenResty 作為路由層并詳述了路由的配置規(guī)則。然后介紹了又拍云存儲(chǔ)系統(tǒng)中,以 OpenResty 的限制模塊為基礎(chǔ)開(kāi)發(fā)的 token bucket 的方法,向大家完整的分享又拍云存儲(chǔ)體系。
特別地,又拍云作為深度應(yīng)用 OpenResty 的企業(yè),正在不斷為 OpenResty 社區(qū)輸出開(kāi)源能力,目前已經(jīng)開(kāi)源了以下項(xiàng)目:
[1] upyun/slardar (https://github.com/upyun/slardar)
[2] upyun/lua-resty-checkups (https://github.com/upyun/lua-resty-checkups)
[3] upyun/lua-resty-limit-rate (https://github.com/upyun/lua-resty-limit-rate)
如何使用 OpenResty 搭建高性能 Web 應(yīng)用
原貝殼找房基礎(chǔ)架構(gòu)部工程師尹吉峰,多語(yǔ)言愛(ài)好者,偏向異步和函數(shù)式編程,酷愛(ài)原型搭建,先后在貝殼使用 OpenResty 搭建了 WebBeacon、圖片處理、短連接服務(wù)等。他在現(xiàn)場(chǎng)介紹了如何使用 OpenResty 做外部框架寫服務(wù),算是一種比較小眾的用法。
原貝殼找房基礎(chǔ)架構(gòu)部工程師尹吉峰
尹吉峰認(rèn)為過(guò)早優(yōu)化是萬(wàn)惡之源,一個(gè)好的服務(wù)絕對(duì)不是優(yōu)化出來(lái)的,架構(gòu)決定了一個(gè)服務(wù)的基準(zhǔn)。有很多 Web 服務(wù)實(shí)際上是不適合做水平伸縮的,因此也要高性能。他介紹 Web 應(yīng)用絕大多數(shù)都是 IO 密集型,通過(guò)異步編程、事件驅(qū)動(dòng)的方式可以提高性能。
尹吉峰提到,OpenResty 是 Nginx 和 Lua 的有機(jī)完美結(jié)合,Nginx 是一流的反向代理服務(wù)器,在一線的互聯(lián)網(wǎng)公司已經(jīng)是一個(gè)標(biāo)配,因此在引入 OpenResty 風(fēng)險(xiǎn)很低;而 Lua 是小巧靈活的編程語(yǔ)言,支持 Coroutine,LuaJIT 性能強(qiáng)大,支持 FFI。之后,他詳細(xì)介紹了過(guò)去使用 OpenResty 構(gòu)建高性能 Web 應(yīng)用服務(wù)的實(shí)踐。
那些你可能不知道的 OpenResty 特性
奇安信服務(wù)端開(kāi)發(fā)艾菲,網(wǎng)名河馬大俠,《 OpenResty 最佳實(shí)踐 》貢獻(xiàn)者,前 OpenResty 軟件基金會(huì)成員。2013 年加入奇虎 360,擅長(zhǎng)使用 OpenResty 完成各種網(wǎng)關(guān)和緩存行為。他在現(xiàn)場(chǎng)介紹了 OpenResty 中具有重要意義的一些模塊、命令、API 和框架等。
奇安信工程師艾菲
艾菲首先介紹了 OpenResty 作為 Web 服務(wù)器,提供了豐富的 Lua API,包括 ngx.say、ngx.resp.get_header、body_filter_by_*、ngx.exit() 等,讓我們可以去操縱 HTTP 的 request和 response 等基本元素,從而靈活控制整個(gè) HTTP 的請(qǐng)求和響應(yīng)體。如果遇到業(yè)務(wù)代碼,可以用 Lua 的方式編輯,開(kāi)發(fā)效率是無(wú)可比擬的。
艾菲介紹了定時(shí)器 ngx.timer.at 用法,可以實(shí)現(xiàn)延遲運(yùn)行的任務(wù)邏輯,甚至于通過(guò)一些特殊的調(diào)用方法實(shí)現(xiàn)定時(shí)任務(wù)的功能,這個(gè) API 還有一個(gè)“非凡”意義,可以實(shí)現(xiàn)跨作用域。他在分享最后介紹了一些 HTTPS 的性能問(wèn)題以及避免的方式。
高性能 API 網(wǎng)關(guān)實(shí)踐
OpenResty 軟件基金會(huì)發(fā)起人王院生,《OpenResty 最佳實(shí)踐》作者,開(kāi)源微服務(wù) API 網(wǎng)關(guān) APISIX 作者,在 OpenResty x Open Talk 上海站的活動(dòng)上,他詳細(xì)介紹了 APISIX 如何做到高性能及實(shí)現(xiàn)的技巧,本次分享,他介紹即將發(fā)布的APISIX 0.7 版本路由將會(huì)支持插件化,同時(shí)將會(huì)超 80% 的代碼覆蓋率。
OpenResty 軟件基金會(huì)發(fā)起人王院生
王院生在現(xiàn)場(chǎng)分享了一些通用的 OpenResty 編程技巧,他將 radixtree 和 r3 做了對(duì)比解釋了 APISIX 選擇 radixtree 的原因,匹配模式簡(jiǎn)單、高效,支持遍歷、回調(diào)等;ngx.var 能使項(xiàng)目性能提速,最簡(jiǎn)單的方式是用 iresty/lua-var-nginx-module 的倉(cāng)庫(kù),可以有 5% 的性能提升;當(dāng)遇到 fail to json encode 的情況時(shí),他的做法是強(qiáng)制對(duì) cdata、userdata 等進(jìn)?編碼,在有循環(huán)嵌套時(shí)依然可以打印。
除此之外,王院生還向在場(chǎng)的開(kāi)發(fā)者推薦了他自己寫的靜態(tài)代碼檢查工具,能幫助解決很多代碼風(fēng)格的問(wèn)題。apisix/core 也是一個(gè)非常值得學(xué)習(xí)的基礎(chǔ)庫(kù),幫助大家了解一些非常實(shí)用的庫(kù)的實(shí)現(xiàn)。
- 蜜度索驥:以跨模態(tài)檢索技術(shù)助力“企宣”向上生長(zhǎng)
- 為什么年輕人不愛(ài)換手機(jī)了
- 柔宇科技未履行金額近億元被曝已6個(gè)月發(fā)不出工資
- 柔宇科技被曝已6個(gè)月發(fā)不出工資 公司回應(yīng)欠薪有補(bǔ)償方案
- 第六座“綠動(dòng)未來(lái)”環(huán)保公益圖書(shū)館落地貴州山區(qū)小學(xué)
- 窺見(jiàn)“新紀(jì)元”,2021元宇宙產(chǎn)業(yè)發(fā)展高峰論壇“廣州啟幕”
- 以人為本,景悅科技解讀智慧城市發(fā)展新理念
- 紐迪瑞科技/NDT賦能黑鯊4 Pro游戲手機(jī)打造全新一代屏幕壓感
- 清潔家電新老玩家市場(chǎng)定位清晰,攜手共進(jìn),核心技術(shù)決定未來(lái)
- 新思科技與芯耀輝在IP產(chǎn)品領(lǐng)域達(dá)成戰(zhàn)略合作伙伴關(guān)系
- 芯耀輝加速全球化部署,任命原Intel高管出任全球總裁
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。