对安全关服的支持 前言我们通常使用kill命令去关闭一个,在单进程序中,程序结尾一般都会有收尾的关闭动作。skynet并没有对收尾动作做太多文章,对于skynet.abort()也只是粗暴的关闭掉所有服务,清除掉所有未处理的消息。但是在实际应用开发中,我们通常需要做一个收尾处理,比如orm缓存的修改进行同步、把在线的玩家都踢出。 实现方式对于skynet,不太好依赖信号去处理,信号那需要阻塞等待所有服务都完成收尾动 2023-10-12 skynet_fly 文档 > 基础篇 #skynet_fly_word
skynet_fly热更新存在的问题 前言最近有空在用skynet_fly写中国象棋的游戏,发现了room_game房间类游戏基础架构有些许不够好的地方,就对room_game房间类游戏基础架构做了优化,具体优化有空会另外写一篇blog,这里主要记录一个我在优化的时候,突然想到的一个热更问题。 问题描述触发场景分析假如有A、B 两个服务,代码如下: A服务 1234567891011121314151617181920local 2023-10-06 一些想法 #一些想法
关于增加skynet_fly 日志分割模块 起因通过群友对skynet_fly的使用测试,发现使用系统日志分割系统会有两个问题。 软件问题 可能有些系统并不会默认装载logrotate分割软件。 权限问题 非root用户可能无法在/etc/logrotate.d/新增文件。 就此埋下了我想实现一个内置日志分割模块的决心。 项目修改 修改原来的run.sh不再启动即配置日志分割。 把使用系统日志分割变成一个可选项,增加了create_lo 2023-09-10 skynet_fly实现思路历程 #skynet_fly实现思路历程
blog编写环境搭建 前言偶然可能换电脑了,需要重新搭建起编写blog的环境。 步骤 安装git,拉取blog工程。 设置git环境。 123git config --global user.name "你的GitHub用户名"git config --global user.email "你的GitHub注册邮箱"ssh-keygen -t rsa -C " 2023-09-03 notebook #notebook
关于增加skynet_fly lua服务启动的后置加载 前言skynet lua服务默认启动加载是使用skynet/lualib/loader.lua,loader.lua 会加载并执行config中配置的preload路径的lua文件,这个操作的好处是可以把所有服务的一些前置环境操作,或者一些常用工具函数写到全局变量中(我更倾向于封装成工具模块通过require引用,不去污染全局环境,尽量保持原生环境)。在skynet_fly框架中,我就利用prel 2023-08-20 skynet_fly实现思路历程 #skynet_fly实现思路历程
linux系统常用命令记录 gdb调试打开core文件gdb filename core 查看错误堆栈bt centos gcc版本升级sudo yum install centos-release-sclsudo yum install devtoolset-9-gcc*scl enable devtoolset-9 bash 如何使用systemd运行程序cd /etc/systemd/systemvim myapp.s 2023-08-12 notebook #notebook
linux不产生core原因 首先可能ulimit限制了。ulimit -a 如果core 限制大小为0,需要修改。调用命令ulimit -c unlimited 考虑产生位置问题查看 /proc/sys/kernel/core_pattern文件内容。如果文件内容不是core,通知命令sudo bash -c "echo core > /proc/sys/kernel/core_pattern" 2023-07-28 record #record
关于cluster 远程rpc调用 简介cluster 远程rpc是依赖skynet的cluster模式实现的。 skynet_fly远程rpc调用的实现注重什么: * 与热更模板系统完美融合。 * 简单易用的API设计。 * 支持多结点。 * 支持服务发现。 定位因为远程rpc调用结点偶尔下线,上线都是常有的事,所以不建议用来做强生效性消息(就是调用了,一定要执行成功)。skynet_fly clus 2023-07-28 skynet_fly实现思路历程 #skynet_fly实现思路历程
关于room_game可热更分配房间类游戏架构 简介room_game是skynet_fly基于热更系统实现的分配房间类游戏架构。 room_game注重什么: * 框架与业务解耦。 * 可热更。 * 协议使用自由,目前提供protobuf和json协议。 * socket和websocket通用。 架构介绍room_game架构由多个skynet服务组成,由gate网关,login登录服,hall大厅服,allo 2023-07-22 skynet_fly实现思路历程 #skynet_fly实现思路历程
关于redis的封装 为什么要封装redis? 适用skynet_fly生态。 redis连接配置可以写在mod_config中。 对于实现方式的思考 方式一 用skynet_fly 热更模块的方式,这样连接配置就可以写在mod_config,还可以配置连接多个不同的redis。 优势: 1. 配置redis连接方便。 2. 固定redis连接数量。 劣势 1. 多了一次消息的打包解包。 2. redi 2023-07-08 skynet_fly实现思路历程 #skynet_fly实现思路历程