网络部分是一个服务器最基础最核心的部分,这个技术也已经是非常成熟了,现在已经很少有人自己实现一个网络相关的库了。
skynet与actor
发表于
更新于
skynet
是一个为网络游戏服务器设计的轻量框架,采用单进程,多线程架构。底层是c
,中间层和上层都是lua
。基于actor
模型,使用消息队列进行内部通信。
skynet cluster
发表于
更新于
skynet跟mq扮演的角色类似,每个skynet进程维护了一个MQ,会dispatch msg到每个skynet_context的私有mq。有skynet就没必要再在自己项目里引入MQ了。
skynet 支持两种集群模式。
skynet集群
发表于
更新于
skynet 支持两种集群模式。master/slave和cluster。
skynet热更新lua代码
发表于
更新于
skynet有两种方法热更新lua代码,clearcache和inject,文章分别对这两种方法做说明。
skynet控制台管理
发表于
更新于
skynet 自带了一个控制台服务,可以很方便获取和调试 skynet 运行数据,而且可以热更新代码,所以,弄明白skynet控制台管理可以让你更好地使用skynet,甚至改进这个控制台服务,以满足不同业务需求。
skynet worker
发表于
更新于
这里介绍下skynet的线程。
skynet module
发表于
更新于
之前已经说过skynet的是做什么的,现在开始从模块上研究skynet的源码。
skynet mq
发表于
更新于
skynet跟mq扮演的角色类似,每个skynet进程维护了一个MQ,会dispatch msg到每个skynet_context的私有mq。有skynet就没必要再在自己项目里引入MQ了。
skynet服务
发表于
更新于
首先,要了解 skynet 内的一个非常重要的概念 ———『服务』。所谓的服务,本质就是一个接收消息然后处理消息的过程,它跟我们日常生活中所说的服务(例如:外卖服务、快递服务等等)是一样的,它不是一个真实可见的物体,而是一个抽象的逻辑过程,它需要一个执行者来执行并完成它。这其实就是skynet实现的Actor模型。