網絡服務開發框架:aLiLua
LiLua 是一套基于 epoll/kqueue/Lua 構建的網絡服務開發框架
aLiLua 使用 epoll 進行網絡/文件IO事件讀寫,對Lua協程進行調度,其性能高效并且簡單
Lua 語言就像 PHP 那么簡單容易理解。
Lua 語言
Lua是一種輕量語言,它的官方版本只包括一個精簡的核心和最基本的庫。這使得Lua體積小、啟動速度快。它用標準C語言編寫并以源代碼形式開放,編譯后僅僅一百余K,可以很方便的嵌入別的程式里。和許多"大而全"的語言不一樣,網路通訊、圖形界面等都沒有默認提供。但是Lua可以很容易地被擴展:由宿主語言(通常是C或C++)提供這些功能,Lua可以使用它們,就像是本來就內置的功能一樣。事實上,現在已經有很多成熟的擴展模塊可供選用。
Lua是一個動態弱類型語言,支援增量式垃圾收集策略。有內建的,與操作系統無關的協作式多線程(coroutine)支援。
aLiLua 核心通過 epoll 處理異步IO事件,并引入 Lua 語言用于業務邏輯處理。aLiLua 的事件核心可非常高效的調度多個 Lua 協程,使之協同工作以實現高并發的網絡服務。
local db = mysql:new() local db_ok, err, errno, sqlstate = db:connect({ host = "localhost", port = 3306, pool_size = 256, database = "db", user = "user", password = "***"}) if not db_ok then header('HTTP/1.1 503 ServerError') die('MySQL Connection Error.') end local res, err, errno, sqlstate = db:query("SELECT * FROM t1 LIMIT 1") if not res then echo("bad result: ", err, ": ", errno, ": ", sqlstate, ".") else echo("result: ", json_encode(res)..'\n') end
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!