1 回答

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
1、阻塞的訪問(wèn)網(wǎng)絡(luò)IO。在連接MySQL、Redis和發(fā)起HTTP請(qǐng)求時(shí),工作進(jìn)程不能傻傻的等待網(wǎng)絡(luò)IO的返回,而是需要支持事件驅(qū)動(dòng),用協(xié)程的方式讓CPU資源更有效的去處理其他請(qǐng)求。很多語(yǔ)言并不具備這樣的能力和周邊庫(kù)。
2、有完備的緩存機(jī)制。不僅需要支持Redis、Memcached等外部緩存,也應(yīng)該在自己的進(jìn)程內(nèi)有緩存系統(tǒng)。我們希望大部分的請(qǐng)求都能在一個(gè)進(jìn)程中得到數(shù)據(jù)并返回,這樣是最高效的方法,一旦有了網(wǎng)絡(luò)IO和進(jìn)程間的交互,性能就會(huì)受到很大影響。
3、同步的寫(xiě)代碼邏輯,不要讓開(kāi)發(fā)者感知到回調(diào)和異步。這個(gè)也很重要,程序員也是人,代碼應(yīng)該更符合人的思維習(xí)慣,顯式的回調(diào)和異步關(guān)鍵字,會(huì)打斷思路,也給調(diào)試帶來(lái)困難。
4、最好是站在巨人肩上,基于成熟的技術(shù)上搭建。采用一門(mén)全新誕生的語(yǔ)言和技術(shù),需要經(jīng)歷語(yǔ)言自身發(fā)展期頻繁調(diào)整的陣痛,還可能站錯(cuò)隊(duì)。
它主要的使用場(chǎng)景主要是:
1、在Lua中揉和和處理各種不同的nginx上游輸出(Proxy,Postgres,Redis,Memcached等)。
2、在請(qǐng)求真正到達(dá)上游服務(wù)之前,Lua可以隨心所欲的做復(fù)雜的訪問(wèn)控制和安全檢測(cè) 隨心所欲的操控響應(yīng)頭里面的信息。
3、從外部存儲(chǔ)服務(wù)(比如Redis,Memcached,MySQL,Postgres)中獲取后端信息,并用這些信息來(lái)實(shí)時(shí)選擇哪一個(gè)后端來(lái)完成業(yè)務(wù)訪問(wèn)。
- 1 回答
- 0 關(guān)注
- 595 瀏覽
添加回答
舉報(bào)