2018年1月19日

skynet源码分析之skynet_server

摘要: skynet是以服务为主体进行运作的,服务称作为skynet_context(简称ctx),是一个c结构,是skynet里最重要的结构,整个skynet的运作都是围绕ctx进行的。skynet_server提供的api主要分两大类: 1.对ctx的一系列操作,比如创建,删除ctx等 2.如何发送消息 阅读全文

posted @ 2018-01-19 11:31 RainRill 阅读(979) 评论(0) 推荐(0) 编辑

2018年1月11日

skynet源码分析之skynet_module

摘要: skynet_module提供一个模板来实现各种不同类型的c服务,比如,snlua(最常见),logger,gate等。 先说明两个linux系统函数: skynet_module的结构如下: M->path在初始化(skynet_module_init)时赋值,对应配置文件的cpath,不配置默认 阅读全文

posted @ 2018-01-11 21:33 RainRill 阅读(528) 评论(0) 推荐(0) 编辑

2018年1月10日

skynet源码分析之skynet_handle

摘要: skynet_handle是所有服务(ctx)的仓库(handle_storage),存储所有ctx。 skynet启动时初始化handle_storage(S) 为了效率,S->lock采用读写锁,因为获取一个ctx(读)的频率要远远大于创建/杀掉(写)一个ctx的频率,所以工作线程可以并发获取c 阅读全文

posted @ 2018-01-10 20:14 RainRill 阅读(787) 评论(0) 推荐(0) 编辑

2018年1月9日

skynet源码分析之消息队列

摘要: skynet核心之一是消息队列,各个服务(skynet_context_xxx,ctx,是一个c结构)之间是通过消息进行通信。skynet包含全局队列和次级队列两级队列,skynet开启多个工作OS线程(可配置),每个线程不断的从全局队列里pop一个次级消息队列,然后分发次级消息队列里的消息,分发完 阅读全文

posted @ 2018-01-09 20:14 RainRill 阅读(1619) 评论(0) 推荐(0) 编辑

2017年11月13日

用rsyslog管理游戏服日志

摘要: 看到有朋友用rsyslog,发现挺不错的。由于版本更新比较快,网上很多资料介绍相对比较旧,遇到了一些问题,记录下来以便日后查看。英文好的同学可以直接查看官网(http://www.rsyslog.com)了解各个版本。PS:本文并不介绍rsyslog知识,只是把实践过程中操作记录下来。 1. 游戏服 阅读全文

posted @ 2017-11-13 12:06 RainRill 阅读(556) 评论(0) 推荐(0) 编辑

2017年9月25日

用继承的思想理解lua元表

摘要: 众所周知,lua最最核心的数据结构是table,是一个key-value hash表,可以用t.key或t[key]来查询。当key值不存在时,一般的hash表返回空值,但lua的table在一定条件下会触发元方法,在设置的元表table里继续查找,如果查到了,则返回元表里的值而不是空值。 跟继承类 阅读全文

posted @ 2017-09-25 16:16 RainRill 阅读(722) 评论(0) 推荐(0) 编辑

导航