2018年7月13日

skynet源码分析之skynet_monitor

摘要: 使用skynet框架中,偶尔会遇到A message from [ :0000000b ] to [ :0000000c ] maybe in an endless loop (version = 13187)类似的error,意思是0000000c服务处理0000000b服务发过来的某条消息时可能 阅读全文

posted @ 2018-07-13 17:02 RainRill 阅读(1239) 评论(0) 推荐(2) 编辑

2018年5月10日

skynet源码分析之sharedata共享数据

摘要: 在游戏开发中,需要用到大量且更新不频繁的配置数据,而把业务拆分到多个服务后,各个服务可能只用到其中的少部分数据,此时每个服务加载所有数据会浪费大量内存。sharedata模块就是为了解决这种需求设计的,其原理是:将共享lua数据存放到一个c结构里,所有服务都共享这个c结构的内存块,各个服务可以获取这 阅读全文

posted @ 2018-05-10 17:43 RainRill 阅读(4127) 评论(0) 推荐(1) 编辑

2018年5月8日

skynet源码分析之sproto使用方法

摘要: 上一篇文章介绍sproto的构建流程(http://www.cnblogs.com/RainRill/p/8986572.html),这一篇文章介绍sproto如何使用,参考https://github.com/cloudwu/sproto。 A端主动给B端发送请求:调用request_encode 阅读全文

posted @ 2018-05-08 17:12 RainRill 阅读(3315) 评论(0) 推荐(1) 编辑

2018年5月4日

skynet源码分析之sproto解析和构建

摘要: skynet提供一套与客户端通讯的协议sproto,设计简单,有利于lua使用,参考官方wiki https://github.com/cloudwu/skynet/wiki/Sproto。本篇介绍组装".sproto"文件以及sproto构建流程。之后,会另写一篇介绍sproto的使用方法。 1. 阅读全文

posted @ 2018-05-04 21:12 RainRill 阅读(4058) 评论(0) 推荐(1) 编辑

2018年4月27日

skynet源码分析之snax

摘要: snax是一个方便实现skynet服务的简单框架,对服务的接口(比如skynet.call, skynet.send等)做了进一步的封装,编写snax服务比较容易,详情参考官方wiki https://github.com/cloudwu/skynet/wiki/Snax 下面是一个简单的snax服 阅读全文

posted @ 2018-04-27 21:40 RainRill 阅读(1747) 评论(0) 推荐(0) 编辑

2018年4月25日

skynet源码分析之热更新

摘要: skynet有两种方法支持热更新lua代码:clearcache和inject,在介绍skynet热更新机制之前,先介绍skynet控制台,参考官方wiki https://github.com/cloudwu/skynet/wiki/DebugConsole 1. skynet控制台 想要使用sk 阅读全文

posted @ 2018-04-25 19:52 RainRill 阅读(3423) 评论(0) 推荐(1) 编辑

2018年4月21日

skynet源码分析之cluster集群模式

摘要: 比起slave/harbor集群模式,skynet提供了用的更为广泛的cluster集群模式,参考官方wiki https://github.com/cloudwu/skynet/wiki/Cluster。cluster模式利用socketchannel库(http://www.cnblogs.co 阅读全文

posted @ 2018-04-21 19:44 RainRill 阅读(3623) 评论(1) 推荐(0) 编辑

2018年4月20日

skynet源码分析之socketchannel

摘要: 请求回应模式是与外部交互最常用的模式之一。通常协议设计方式有两种:1.每个请求包对应一个回应包,有tcp保证时序,先请求的先回应,但不必收到回应才发送下一个请求,redis的协议就是这种类型;2.每个请求带一个唯一的session标识,回应包也带这个标识。这样每个请求不一定都需要回应,且不用遵循先请 阅读全文

posted @ 2018-04-20 19:31 RainRill 阅读(1702) 评论(0) 推荐(0) 编辑

2018年4月19日

skynet源码分析之master/salve集群模式

摘要: skynet提供两种集群模式,之一是master/slave模式,每个skynet进程是一个slave节点,每个slave节点中启动一个"cslave"服务,选择一个节点配置"standalone"选项,会启动一个“cmaster”服务,用于协调slave组网。slave之间通过TCP两两连接。参考 阅读全文

posted @ 2018-04-19 16:09 RainRill 阅读(1140) 评论(0) 推荐(2) 编辑

2018年4月13日

skynet源码分析之网络层——网关服务器

摘要: 在上一篇文章里介绍Lua层通过lualib/skynet/socket.lua这个库与网络底层交互(http://www.cnblogs.com/RainRill/p/8707328.html)。除此之外,skynet还提供一个通用模板lualib/snax/gateserver来启动一个网关服务器 阅读全文

posted @ 2018-04-13 15:27 RainRill 阅读(1353) 评论(0) 推荐(1) 编辑

导航