概述
本文基于 examples 目錄下的配置文件,詳細(xì)介紹 Skynet 框架的配置項(xiàng)及其用法。
一、基礎(chǔ)配置項(xiàng)
| 配置項(xiàng) |
類型 |
說明 |
默認(rèn)值 |
| root |
string |
項(xiàng)目根目錄路徑,用于拼接其他路徑 |
"./" |
| thread |
number |
工作線程數(shù),根據(jù)CPU核心數(shù)設(shè)置 |
8 |
二、日志配置
| 配置項(xiàng) |
類型 |
說明 |
示例 |
| logger |
string/nil |
日志服務(wù)名稱,nil 表示使用標(biāo)準(zhǔn)輸出 |
"userlog" / nil
|
| logpath |
string |
日志文件存放目錄 |
"." |
| logservice |
string |
日志服務(wù)類型 |
"snlua" |
說明:
-
logger = "userlog" 表示使用用戶自定義日志服務(wù)
-
logger = nil 表示日志輸出到控制臺(tái)
三、節(jié)點(diǎn)(Harbor)配置
| 配置項(xiàng) |
類型 |
說明 |
示例 |
| harbor |
number |
當(dāng)前節(jié)點(diǎn)編號(hào),0 表示單節(jié)點(diǎn)模式 |
0 / 1 / 2
|
| address |
string |
當(dāng)前節(jié)點(diǎn)監(jiān)聽地址 |
"127.0.0.1:2526" |
| master |
string |
主節(jié)點(diǎn)地址(harbor > 0 時(shí)必需) |
"127.0.0.1:2013" |
| standalone |
string |
獨(dú)立模式監(jiān)聽地址(作為主節(jié)點(diǎn)時(shí)使用) |
"0.0.0.0:2013" |
Harbor 模式說明:
-
harbor = 0:?jiǎn)喂?jié)點(diǎn)模式,無(wú)需 master
-
harbor > 0:分布式集群模式,需要配置 master 和 address
四、啟動(dòng)配置
| 配置項(xiàng) |
類型 |
說明 |
示例 |
| start |
string |
啟動(dòng)入口腳本(不含 .lua 后綴) |
"main" / "cluster1"
|
| bootstrap |
string |
引導(dǎo)服務(wù)命令 |
"snlua bootstrap" |
五、路徑配置
| 配置項(xiàng) |
類型 |
說明 |
示例 |
| cpath |
string |
C 服務(wù)動(dòng)態(tài)庫(kù)路徑 |
root.."cservice/?.so" |
| luaservice |
string |
Lua 服務(wù)搜索路徑(分號(hào)分隔) |
root.."service/?.lua;..." |
| lualoader |
string |
Lua 模塊加載器腳本 |
"lualib/loader.lua" |
| lua_path |
string |
Lua 模塊搜索路徑 |
root.."lualib/?.lua;..." |
| lua_cpath |
string |
Lua C 模塊搜索路徑 |
root.."luaclib/?.so" |
| snax |
string |
SNAX 服務(wù)搜索路徑 |
root.."examples/?.lua;..." |
六、擴(kuò)展配置
| 配置項(xiàng) |
類型 |
說明 |
示例 |
| preload |
string |
每個(gè) Lua 服務(wù)啟動(dòng)前預(yù)加載的腳本 |
"./examples/preload.lua" |
| cluster |
string |
集群配置文件路徑 |
"./examples/clustername.lua" |
| daemon |
string |
守護(hù)進(jìn)程模式下的 PID 文件路徑 |
"./skynet.pid" |
| snax_interface_g |
string |
SNAX 全局接口定義表名 |
"snax_g" |
七、配置文件語(yǔ)法
7.1 變量定義
root = "./"
thread = 8
7.2 引用其他配置文件
include "config.path"
7.3 注釋
-- 這是一行注釋
-- daemon = "./skynet.pid" -- 被注釋掉的配置
八、配置文件示例對(duì)比
| 配置文件 |
Harbor模式 |
主要用途 |
config |
集群從節(jié)點(diǎn)(harbor=1) |
標(biāo)準(zhǔn)集群示例 |
config.c1 |
單節(jié)點(diǎn)(harbor=0) |
集群測(cè)試節(jié)點(diǎn)1 |
config.c2 |
單節(jié)點(diǎn)(harbor=0) |
集群測(cè)試節(jié)點(diǎn)2(帶cluster配置) |
config.handle |
單節(jié)點(diǎn)(harbor=0) |
帶日志文件輸出 |
config.login |
單節(jié)點(diǎn)(harbor=0) |
登錄系統(tǒng)示例 |
config.mc |
集群從節(jié)點(diǎn)(harbor=2) |
多播測(cè)試 |
config.mongodb |
單節(jié)點(diǎn)(harbor=0) |
MongoDB 示例 |
config.mysql |
單節(jié)點(diǎn)(harbor=0) |
MySQL 示例 |
config.userlog |
單節(jié)點(diǎn)(harbor=0) |
用戶自定義日志服務(wù) |
config.path |
- |
路徑配置模板(被其他配置引用) |
九、典型配置場(chǎng)景
場(chǎng)景1:?jiǎn)喂?jié)點(diǎn)開發(fā)環(huán)境
root = "./"
thread = 4
logger = nil
harbor = 0
start = "main"
bootstrap = "snlua bootstrap"
luaservice = root.."service/?.lua;"..root.."examples/?.lua"
lualoader = "lualib/loader.lua"
cpath = root.."cservice/?.so"
場(chǎng)景2:集群主節(jié)點(diǎn)
root = "./"
thread = 8
logger = "userlog"
harbor = 0
start = "main"
bootstrap = "snlua bootstrap"
standalone = "0.0.0.0:2013"
cpath = root.."cservice/?.so"
場(chǎng)景3:集群從節(jié)點(diǎn)
root = "./"
thread = 8
logger = nil
harbor = 1
address = "127.0.0.1:2526"
master = "127.0.0.1:2013"
start = "main"
bootstrap = "snlua bootstrap"
cpath = root.."cservice/?.so"
十、關(guān)鍵配置說明
10.1 harbor 值的含義
-
harbor = 0:?jiǎn)喂?jié)點(diǎn)模式或集群主節(jié)點(diǎn)
-
harbor > 0:集群從節(jié)點(diǎn),需要配置 master 和 address
10.2 路徑配置中的 root 變量
- 使用
root 變量可以統(tǒng)一管理路徑前綴
- 建議始終設(shè)置
root = "./" 作為基礎(chǔ)路徑
10.3 日志輸出選擇
- 開發(fā)環(huán)境使用
logger = nil(控制臺(tái)輸出)
- 生產(chǎn)環(huán)境使用
logger = "userlog"(文件輸出)
10.4 線程數(shù)建議
- 通常設(shè)置為 CPU 核心數(shù)或核心數(shù)的 1.5~2 倍
- 示例中普遍使用
thread = 8
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。