認識skynet(2)--核心程序與服務(wù)

核心程序與服務(wù)


主程序:

skynet主程序

架構(gòu)從上面的skynet主程序啟動, ?然后,可在“終端”中輸入:$ ./skynet examples/config: ? ??

./說明是當(dāng)前目錄,skynet是程序名,examples/config為配置文件的路徑和名字,這里的配置文件是用lua寫的一個腳本。

config內(nèi)容為:

config配置文件

這里最重要的一條就是:start=”main”意思就是設(shè)置第一個啟動的服務(wù)。這里指向examples/main.lua腳本服務(wù)模塊。因為下面配置的luaservice的路徑,所以不需要我們再輸入examples/了,skynet會在配置的目錄下找到main.lua腳本。cpath是用C語言寫的服務(wù)模塊路徑。root=”./”表示根目錄為skynet啟動的目錄。thread為啟動的工作線程數(shù)。logger=nil表示不記錄日志,你可以指定一個路徑和文件名,這樣 “終端”輸出的內(nèi)容就寫到日志中文件了。


關(guān)鍵服務(wù):

master.so:?

主服務(wù),就做兩件事,回應(yīng)名字的查詢和在更新名字后,同步到其他節(jié)點。其他節(jié)點在啟動時會把自己的harbor注冊到master服務(wù)中。這樣透過master服務(wù)就能把各個節(jié)點都連在一起,相互溝通了。每個節(jié)點之間都相互建立一條雙向的通訊通道。


harbor.so:

節(jié)點服務(wù),每個Skynet運行都是一個節(jié)點,在examples/main.lua中使用harbor來配置節(jié)點的編號,Skynet限制只有1到255個節(jié)點(保留0給系統(tǒng)內(nèi)部使用),并把harbor的8bit值放在服務(wù)Id的最高8bit,因為服務(wù)Id是32bit的,所以Skynet的本地服務(wù)只能用低24位來表示,一個Skynet最多可以啟動16M個服務(wù)模塊。


logger.so:

日志服務(wù),一個簡單的日志系統(tǒng),可以用來記錄服務(wù)的相關(guān)信息。


gate.so:

門服務(wù),管理Soket。


snlua.so:

lua服務(wù),用于加載lua寫的skynet服務(wù)模塊,而不僅僅限制于C語言才能寫服務(wù)模塊。十分核心和重要的模塊。當(dāng)然如果你不喜歡lua,你也可以換成python等其他腳本引擎。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容