skynet剛開始是單進程多線程的,它是由一個一個的服務組成的。在skynet上做開發,實際上就是在寫服務。服務與服務之間通過消息隊列進行通信。 做為核心功能,Skynet 僅解決一個問題: 把一個符合規范的 C 模塊,從動態庫(so 文件)中啟動起來,綁定一個永不重復(即使模塊退出)的數字 ...
之前已經說過skynet的是做什么的,現在開始從模塊上研究skynet的源碼。 skynet各層表現 從上大概就清楚skynet的 內部 而skynet源碼目錄結構如下: rd:第三方代碼,有lua和jemalloc等。 lualib:使用lua寫的庫 lualib src:使用C寫並封裝給lua使用的庫 service:使用lua寫的skynet的服務模塊 service src:使用C寫的sk ...
2018-06-20 14:12 0 2002 推薦指數:
skynet剛開始是單進程多線程的,它是由一個一個的服務組成的。在skynet上做開發,實際上就是在寫服務。服務與服務之間通過消息隊列進行通信。 做為核心功能,Skynet 僅解決一個問題: 把一個符合規范的 C 模塊,從動態庫(so 文件)中啟動起來,綁定一個永不重復(即使模塊退出)的數字 ...
snax是一個方便實現skynet服務的簡單框架,對服務的接口(比如skynet.call, skynet.send等)做了進一步的封裝,編寫snax服務比較容易,詳情參考官方wiki https://github.com/cloudwu/skynet/wiki/Snax 下面是一個簡單 ...
從四個方面來說: 1、消息發送 2、工作線程控制 3、信箱調度 4、消息分發 與調度相關的代碼實現在/skynet-src/skynet_mq.c,/skynet-src/skynet_start.c,/skynet-src/skynet_server.c三個文件中,整體 ...
skynet有兩種方法支持熱更新lua代碼:clearcache和inject,在介紹skynet熱更新機制之前,先介紹skynet控制台,參考官方wiki https://github.com/cloudwu/skynet/wiki/DebugConsole 1. skynet控制台 想要 ...
繼上一篇介紹了skynet的網絡部分之后,這一篇以網關gate.lua為例,簡單分析下其串接和處理流程。 在官方給出的范例中,是以examples/main.lua作為啟動腳本的,在此過程中會創建watchdog服務: 首先加載watchdog.lua腳本 ...
skynet自帶定時器功能skynet-src/skynet_timer.c,在skynet啟動時會創建一個線程專門跑定時器。每幀(0.0025秒/幀)調用skynet_updatetime() 1. 設計思想 skynet的設計思想參考Linux內核動態定時器的機制,參考 ...
上一篇文章介紹sproto的構建流程(http://www.cnblogs.com/RainRill/p/8986572.html),這一篇文章介紹sproto如何使用,參考https://githu ...
skynet提供一套與客戶端通訊的協議sproto,設計簡單,有利於lua使用,參考官方wiki https://github.com/cloudwu/skynet/wiki/Sproto。本篇介紹組裝".sproto"文件以及sproto構建流程。之后,會另寫一篇介紹sproto的使用方法 ...