- 博客(7)
- 收藏
- 关注
原创 skynet学习之skynet_monitor
今天学习skynet_monitor。skynet_monitor主要用于监测skynet_context在处理消息时是否陷入死循环。struct skynet_monitor;struct skynet_monitor * skynet_monitor_new();//新建一个监视器void skynet_monitor_delete(struct skynet_monitor *
2017-02-07 11:20:40 1144
原创 skynet学习之skynet_handle
今天学习skynet_handle文件。这个文件是管理句柄的。建立skynet_context与skynet_handle之间的唯一映射关系。即一个sc对应一个唯一的handle。先看初始化:void skynet_handle_init(int harbor) { assert(H==NULL); struct handle_storage * s = skynet_mal
2017-02-07 09:34:17 619
原创 skynet学习之环境变量skynet_env
今天学习skynet_env模块。这个模块是用于存储节点启动配置文件config.xxx里的变量的。模块提供了设置变量,获取变量,初始化等操作。模块是通过一个独立的lua_State来操作变量的,节点启动时,解析文件,然后把数据存到这个虚拟机中,当lua代码调用skynet.getenv时,就从虚拟机中获取返回给lua层。由于可以实时动态的读写变量,所以还加了锁来控制临界区。
2017-02-06 15:40:06 1807
原创 skynet学习之spinlock.h
今天学习了spinlock文件。这是一个关于锁的定义。云风大神提供了两种支持,你可以根据宏USE_PTHREAD_LOCK来选择锁的方式。这两张这次都是通过宏和定义内联函数的方式实现的。如果定义了USE_PTHREAD_LOCK:则引用pthread.h,使用linux系统自带的线程库里的pthread_mutex_xxxx互斥锁API。如果未定义USE_PTHREAD_LOCK:
2017-02-06 14:59:52 721
原创 go语言学习笔记之环境搭建(一)
最近开始学习google的go语言,翻了下发现网上的资料比较少,只好爬墙出去边读文档边实践,以笔记的方式记录下来,可以防止间歇性老年痴呆。首先,下载go的安装包,https://golang.org/doc/install,需要爬墙才能下载。根据你的操作系统,选择对应的安装包,我的开发环境是mac osx,所以选择的pkg文件。下载完成后,运行安装。安装完成后,重启所有的终端窗口。输入
2017-01-02 13:41:46 357
原创 nginx配置ssl证书
最近项目中所有的http请求都要升级到https,实践了一把配置nginx的ssl证书。由于我们的证书是公司下发的,所以省略了申请证书的体验,关于申请免费证书可以自行搜索。拿到的证书分两个文件,一个是xxx.crt,一个是xxx.key,分别对应公钥和私钥。step1.假设我们的nginx安装目录是:/usr/a/b/nginx/,进入下面的conf目录,在conf目录下创建一个新目录
2016-12-19 16:25:12 17196
原创 skynet给集群中的一个节点配置多个通道
在skynet框架中使用cluster模式,经常有消息在节点之间传递。大部分情况,我们在节点A和节点B之间只需要建立一个连接通道,但是在有些时候我们希望让一些比较独立的业务能占用一条单独的通道进行处理,不希望跟到正常的业务逻辑去抢通道资源。这个时候,我们就需要为某个节点配置多个通道了。 比如,我们要在节点A中再开辟一条连接连通节点B的通道,由于一条通道就是一条tcp连接,所以
2016-12-17 10:21:18 1657 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人