Skip to content
hushouguo edited this page Dec 2, 2014 · 2 revisions

Welcome to the zebra wiki!

Zebra框架的设想是构建一套精简高效的外壳,实现网络,数据库,磁盘I/O的操作,并封装好lua接口,便于开发者使用lua快速构建一套游戏服务器。

外壳部分使用C语言编写,目前只有Linux版本,项目在CentOS 6.5上编译通过。

协议格式由一个xml文件指定,xml文件里指明了支持的数据类型,协议格式支持简单格式(v节点)、数组格式(ary节点)和对象格式(o节点); 数据类型支持char(1 byte),short(2 bytes), int(4 bytes), long(8 bytes), bool(1 byte), double(8 bytes)和string(可变长度);不需要针对xml来生成解包和封包的代码,外壳里自带了luapb,可以对协议包进行解析和封包,每个消息输出到lua里是一个table。

zebra被设计成一个多线程结构,网络接受和发送被独立成线程来运行,每个工作线程都有一个独立的lua虚拟机,网络线程和工作线程通过消息队列来同步数据,每个工作线程也拥有一个独立的消息队列。线程之间的同步使用了lock-free方式,只有很简短的一点操作需要被保护。

在zebra里,数据库的使用只被简单的作为存储,所以数据库表的格式都只有两个字段,一个索引用的id和一个存储数据的blob。

Clone this wiki locally