<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Node-Lua基于Lua實現(xiàn)的腳本和服務(wù)器引擎

          聯(lián)合創(chuàng)作 · 2023-10-01 15:06

          Node-Lua是一款基于Lua實現(xiàn)的腳本和服務(wù)器引擎,它支持構(gòu)建海量Lua服務(wù)(Context_Lua)并以多線程方式運(yùn)行在多核服務(wù)器上,采用了任務(wù)多路復(fù)用的設(shè)計方案,有效利用了多核優(yōu)勢。node-lua致力于構(gòu)建一個快速、簡單易用的Lua腳本和服務(wù)器開發(fā)和運(yùn)行環(huán)境。該引擎參考了Node-JsSkynet的設(shè)計思想,并對其進(jìn)行了整合和優(yōu)化。

          該引擎當(dāng)前版本實現(xiàn)了以下特性:

          1. 引擎核心層同時支持同步阻塞和異步回調(diào)的api設(shè)計方案,讓異步io等接口更加簡單易用。調(diào)用同步和異步api時引擎核心層將會自動掛起正在執(zhí)行的lua函數(shù)(coroutine),直接放棄占用的cpu資源;

          2. 服務(wù)創(chuàng)建以指定lua文件為入口腳本文件,腳本直接運(yùn)行在新服務(wù)的coroutine環(huán)境中,支持在入口腳本當(dāng)中直接調(diào)用同步和異步api接口,支持無限循環(huán)調(diào)用同步api接口;

          3. 可以創(chuàng)建海量獨(dú)立的lua服務(wù)(context_lua),引擎會根據(jù)當(dāng)前運(yùn)行服務(wù)總量和物理核心數(shù)量動態(tài)調(diào)整工作線程數(shù)量,當(dāng)引擎沒有需要處理的服務(wù)請求時(即任務(wù)隊列為空),所有物理線程將會掛起等待,直到有新的任務(wù)(lua同步和異步回調(diào))需要被喚醒運(yùn)行;

          4. 支持在用戶創(chuàng)建的lua coroutine中直接調(diào)用引擎提供的同步和異步api接口,對用戶態(tài)coroutine執(zhí)行不會產(chǎn)生任何影響;

          5. 引擎會檢測進(jìn)程當(dāng)中有效的lua服務(wù)總量,當(dāng)服務(wù)總量為0時,引擎會自動安全退出(可以用node-lua作為簡單的lua腳本解釋器使用)。同時,lua服務(wù)也會檢測服務(wù)當(dāng)中運(yùn)行和掛起的同步和異步回調(diào)總量,當(dāng)回調(diào)總量為0時,lua服務(wù)會被標(biāo)記并安全退出;

          6. 引擎框架任務(wù)調(diào)度采用了線程任務(wù)隊列的設(shè)計,減少了不同線程之間對任務(wù)資源的競爭。另外,任務(wù)調(diào)度也引入了work-stealing算法對調(diào)度進(jìn)行了深度優(yōu)化;

          7. 引擎提供了tcp socket相關(guān)的大部分api接口,同時支持unix_domain_socket;

          8. 引擎提供了lua服務(wù)相關(guān)的api接口,包括服務(wù)創(chuàng)建、銷毀、通信等同步和異步接口;

          9. 引擎提供了定時相關(guān)的api接口,基本滿足所有的定時設(shè)計,并直接被嵌入到了其它同步和異步api接口當(dāng)中(tcp,服務(wù)相關(guān)的api);

          10. 引擎提供了快速lua字符串緩存結(jié)構(gòu),可以用于高效的廣播接口當(dāng)中;

          11. 引擎當(dāng)前提供了centos,macos,windows環(huán)境下的編譯和安裝;

          Node-Lua在下個版本將會提供以下新功能和特性:

          1. udp接口支持;

          2. tcp和udp socket在lua服務(wù)之間的遷移;

          3. 在線服務(wù)熱更新;

          4. 在線服務(wù)調(diào)試;

          5. 提供FreeBSD等環(huán)境下的編譯和安裝;

          6. 提供基準(zhǔn)測試版本;

          歡迎大家發(fā)現(xiàn)Node-Lua當(dāng)中的bug,對Node-Lua提出更好的建議!

          瀏覽 33
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  综合一区二区三区 | 小泽玛利亚黑人喷水 | 伊人网在线 | AV天堂吧| 欧美久久在线观看 |