skynet
文章平均质量分 75
linking530
这个作者很懒,什么都没留下…
展开
-
Skynet 设计综述
经过一个月, 我基本完成了 skynet 的 C 版本的编写。中间又反复重构了几个模块,精简下来的代码并不多:只有六千余行 C 代码,以及一千多 Lua 代码。虽然部分代码写的比较匆促,但我觉得还是基本符合我的质量要求的。Bug 虽不可避免,但这样小篇幅的项目,应该足够清晰方便修正了吧。花在 Github 上的这个开源项目上的实际开发实现远小于一个月。我的大部分时间花了和过去大半年的 Erla转载 2015-02-16 15:35:58 · 527 阅读 · 0 评论 -
Socket APi
skynet 的 C API 采用异步读写,你可以使用 C 调用,监听一个端口,或发起一个 TCP 连接。但具体的操作结果要等待 skynet 的事件回调。skynet 会把结果以 PTYPE_SOCKET 类型的消息发送给发起请求的服务。(参考skynet_socket.h)在处理实际业务中,这样的 API 很难使用,所以又提供了一组阻塞模式的 lua API 用于 TCP socket转载 2015-05-19 18:58:17 · 451 阅读 · 0 评论 -
CentOS 6.5 下安装 Redis 2.8.7
wget http://download.redis.io/redis-stable.tar.gztar xvzf redis-stable.tar.gzcd redis-stablemake 前面3步应该没有问题,主要的问题是执行make的时候,出现了异常。异常一:make[2]: cc: Command not found异常原因:没有安装gcc解决方案:y转载 2016-07-03 10:17:20 · 351 阅读 · 0 评论 -
编译安装 Centos 7 x64 + tengine.2.0.3 (实测+笔记)
环境:系统硬件:vmware vsphere (CPU:2*4核,内存2G)系统版本:CentOS Linux release 7.0.1406 安装步骤: 1.系统环境1.1 更新系统[root@centos ~]# yum update -y 1.2 查看环境[root@centos ~]# cat /etc/redhat-releaseCent转载 2016-07-03 12:15:27 · 622 阅读 · 0 评论 -
skynet框架 源码分析 一
本人所看的skynet框架,是云风所写的开源分布式服务器系统。 说说广泛流传的分布式系统,我觉得最简单的理解就是,一个服务器系统可以开很多进程来完成任务,并且这些进程可以不受地域的限制,同时跑在不同的主机上面(当然也可以跑在同一台主机上),以服务器集群的方式应答各个服务请求,各进程之间通过socket的方式通信。 我们先从整体结构上来俯视这个框架。转载 2016-10-09 11:17:33 · 463 阅读 · 0 评论 -
skynet框架 源码分析 二
一个游戏服务器系统的数据流向有很多种。在skynet中,我主要看到了三种,一种是从客户端流到服务器,而后服务器处理完毕之后,发送回客户端。第二种是一个harbor流向另外一个harbor,这应该就是服务进程之间通过套接字的通信了。第三种就是服务进程保存数据到数据库中,而后返回(这部分我还没看完)。 本章主要讲解第一种数据流向,客户端到服务端中某个节点。服务端如何返回数据到客户转载 2016-10-09 12:47:22 · 949 阅读 · 0 评论 -
skynet框架 源码分析 三
今天我们来读service_lua.c文件。 这个文件很重要,它是模块snlua的源文件,也是各个lua服务节点的制造者。比如:agent服务节点,watchdog服务节点,launch服务节点等。 让我们来看看这个制造者是如何运作的。 拿agent举例说: gate节点在服务端与新到的客户端连接建立转载 2016-10-09 12:54:16 · 958 阅读 · 0 评论 -
skynet框架 源码分析 四
本章主要讲解:skynet的组播服务是怎么发生的,如何运用。 组播这个过程主要涉及了以下几个服务。 group_mgr,group_agent,multicast,tunnel,localcast。 group_mgr是每个服务器集群只有一个(即多个进程共有一个)。 group_agent是每个harbor(即一个进程转载 2016-10-09 12:55:49 · 529 阅读 · 0 评论 -
skynet框架 源码分析 五
本章讲解,skynet的队列服务。 队列服务在源码中涉及skynet脚本库,mqueue脚本库,pingqueue测试服务,pingserver测试服务。 说说各自的作用。 mqueue库: 1、封装一个queue消息发送的api==>mqueue.call。 2、注转载 2016-10-09 12:56:34 · 401 阅读 · 0 评论 -
skynet浅析
http://blog.codingnow.com/eo/skynet/https://github.com/cloudwu/skynet代码量(截止2014.5.21).lua 4941行.h .c 10361行(不含第三方库).h .c 69953行(含第三方库)---------------------------------------对比我们的项转载 2015-05-15 12:17:43 · 1626 阅读 · 0 评论 -
behaviac行为树解决方案
behaviac是腾讯对行为树(Behavior Tree)的一个实现方案。该方案包括编辑器(Designer)和运行时库(Runtime):编辑器用来编辑和调试行为树,运行时库用来解释和执行编辑器生成的行为树。该项目目前已经开源,项目源码地址:Github托管:https://github.com/TencentOpen/behaviacCODE托管:https://code.csdn.转载 2015-04-30 15:05:11 · 2488 阅读 · 0 评论 -
Build
获取源代码推荐使用 git 。git clone https://github.com/cloudwu/skynet.git或者下载最新的 release 包1,自行解开。但下载的源代码包中并不包含 jemalloc2 ,请自行下载放在 3rd/jemalloc 目录下。编译工具skynet 的开发环境是 Ubuntu Linux 。但同时也应该能在其它 Linux 平台转载 2015-02-16 16:35:32 · 445 阅读 · 0 评论 -
云风的 blog 上关于 skynet 的分类
February 11, 2015在线调试 Lua 代码一直有人问,如果调试 skynet 构件的服务。我的简单答案是,仔细 review 代码,加 log 输出。长一点的答案是,尽量熟悉 skynet 的构造,充分利用预留的监控接口,自己编写工具辅助调试。之前的好多年,我也写过很多 lua 的调试器,这里就不一一翻旧帖了。今天要说的是,我最终还是计划加入 1.0 正式转载 2015-02-16 15:59:24 · 6325 阅读 · 0 评论 -
Centos 6.x 下编译Skynet 需要安装的依赖
一、在jemalloc 中需要的Autoconfigyum install autoconf二、编译Lua时出现make[1]: Entering directory `/home/cyrus/code/skynet/3rd/lua'gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lua.o lua.clua.c:67:31: er转载 2015-02-16 16:51:01 · 2235 阅读 · 0 评论 -
Welcome to the skynet wiki!
https://github.com/cloudwu/skynet/wiki欢迎使用 skynet ,这是一个轻量级的为在线游戏服务器打造的框架。但从社区 Community 的反馈结果看,它也不仅仅使用在游戏服务器领域。Uses 收集了很少一部分使用 skynet 的项目,但实际项目要多得多。欢迎你把你的项目也加到这个列表中。skynet 的文档目前并不完善,依赖社区的持续建设。转载 2015-02-16 15:28:43 · 1437 阅读 · 0 评论 -
Bootstrap
skynet 由一个或多个进程构成,每个进程被称为一个 skynet 节点。本文描述了 skynet 节点的启动流程。skynet 节点通过运行 skynet 主程序启动,必须在启动命令行传入一个 Config 文件名作为启动参数。skynet 会读取这个 config 文件获得启动需要的参数。第一个启动的服务是 logger ,它负责记录之后的服务中的 log 输出。logger 是转载 2015-02-16 16:11:38 · 463 阅读 · 0 评论 -
LPeg 0.10的编译与使用
官网地址:http://www.inf.puc-rio.br/~roberto/lpeg/ LPeg是一个为Lua所使用的新的模式匹配库,基于解析表达式语法(PEGs)。1.新建“Win32 Console Application”工程,工程名为:lpeg2.在“Application Settings”中,选择“DLL”和“Empty project”3.添加下转载 2015-02-27 16:06:27 · 503 阅读 · 0 评论 -
redis 源码分析(一) 内存管理
一,redis内存管理介绍 redis是一个基于内存的key-value的数据库,其内存管理是非常重要的,为了屏蔽不同平台之间的差异,以及统计内存占用量等,redis对内存分配函数进行了一层封装,程序中统一使用zmalloc,zfree一系列函数,其对应的源码在src/zmalloc.h和src/zmalloc.c两个文件中,源码点这里。二,redis内存管理源码分析redis封装是转载 2015-03-02 10:47:40 · 423 阅读 · 0 评论 -
skynet范例研究-服务端
源码分为3个文件夹,分别为service、lualib、src。其中service主要是服务端 业务逻辑 ,lualib为 基础工具封装 ,src为 C语言服务封装 。一般阅读代码时先从main入手,跟着逻辑一步一步不断深入。main.lua文件路径:service/main.lualocal skynet = require "skynet"skynet.s转载 2017-01-21 18:57:29 · 1056 阅读 · 0 评论