skynet源码分析1:开篇明义

skynet云风基于actor模型实现的一个服务器框架,核心七千多行c代码,并提供了一个lua binding。写得比较简明,用起来比较爽快,很合我的胃口,再加之决定在公司最近的一个项目上skynet,所以就决定精读一遍源码,将所思所想所得记录于此,以便用起来心安理得。

skynet的实现基于如下几条actor行为:

  • 能创建,销毁其它actor,actor间为平级关系。
  • 能发送消息给其它actor,能接收其它actor的消息。
  • actor间的交互只能通过消息传递。
  • 能处理自己的消息。

在skynet的世界里,actor用动态库来表示,每个so加载后,都会被赋予一个永不重复([1,4G])的id作为标识,so必须向框架注册一个回调函数用于处理消息。框架只做两件事:

  1. 将发送的消息正确送达目标actor。
  2. 均衡快速的调用so的回调处理消息,这个回调不会并发,且每次只处理一条消息。

未完待续,有不当之处,请各位道友指正。

posted @ 2016-08-22 22:58  watercold  阅读(1183)  评论(0编辑  收藏  举报