Appearance
Skynet 服务端架构
后端采用云风开发的 Skynet 框架。这是一个为在线游戏设计的轻量级服务端架构,基于 Actor 模型。
架构优势
- 单进程多线程:通过消息队列驱动成千上万个 Lua 服务(Actor)。
- 高并发:利用 C 语言编写的核心调度器,极大提升了消息交换效率。
- 集群支持:内置 Cluster 模块,方便进行跨机器的服务通信。
核心组件
- GateServer:负责处理客户端的 TCP 连接与协议拆包。
- Watchdog:看门狗服务,管理 Agent 的生命周期。
- Agent:每个玩家对应一个独立的 Lua 服务,处理该玩家的所有业务请求。
通信协议
项目采用 Protocol Buffers (Protobuf) 作为前后端交换格式,确保数据传输的高效性与严谨性。
服务示例
以下是一个标准的 Skynet Lua 服务模版:
lua
local skynet = require "skynet"
local CMD = {}
function CMD.start()
-- 初始化业务
end
skynet.start(function()
skynet.dispatch("lua", function(session, source, command, ...)
local f = assert(CMD[command])
skynet.ret(skynet.pack(f(...)))
end)
end)