链路追踪的实现 前言使用skynet开发都会启动多个lua服务,如果加上使用远程集群调用的话,服务就更多了,如果被调用方存在多链路,出问题时,无法快速定位问题源头。链接追踪通过给处理添加全局唯一的tag标记,在链路上加上详细的日志,从而达到通过日志快速分析问题的手段。云大为skynet增加过链路追踪,通过使用者主动调用skynet.trace,从而开启一次详细的trace日志。trace_tag是服务地址加递增编 2025-06-04 skynet_fly实现思路历程 #skynet_fly实现思路历程
给demo hallserver大厅服加上队列 前言因为skynet中单进程写业务也容易遇到异步重入问题,写简单个人系统也得警惕此问题,着实让人难受。索性直接用queue包裹一些执行入口,这样简单个人系统没有跨服的业务根本无需考虑此问题了。 实现方案大厅服的业务函数处理通常以player_id为第一参数用来处理玩家个人系统的数据。我们以player_id来区分不同的队列,这样既可以有效利用skynet多携程优势,又能避免个人系统的重入问题。而对 2025-05-24 skynet_fly实现思路历程 #skynet_fly实现思路历程
orm在用户数据日志上的应用 前言游戏服务器免不了需要记录大量玩家数据变化、玩家操作行为、对局战斗数据等等数据的记录以及后台提供数据的查询入口。我遇到过两种做法。 方案一 手动创建数据表结构。 服务器代码拼接sql调用插入。 后台再根据表结构定义写查询页面。 方案二 服务器先写本地json文件。 再选用某种日志采集方案采集日志。 采集那边也需要定义表结构,然后插入数据库。 后台再根据表结构定义写查询页面。 总的 2025-04-09 skynet_fly实现思路历程 #skynet_fly实现思路历程
psub_syn批订阅同步的实现 前言最近有空在给skynet_fly_demo增加用户日志相关,用于记录游戏中产生的日志,比如用户登录登出记录,道具增加,减少记录。我的想法是把用户日志对接上orm,这样写的日志的方便日志服采集后,根据orm设定的字段索引信息直接构建对接数据库的orm,从而实现日志服无需修改就能采集新增或者变更的日志数据。这个过程就遇到一个问题,日志服如何同步到其他服务的日志orm信息。之前的subsyn监听同步 2025-04-03 skynet_fly实现思路历程 #skynet_fly实现思路历程
guid_util guid相关 guid_util function M.fly_guid()描述 fly风格GUID参数 返回值 string 32字节的guid 2025-04-01 skynet_fly API 文档 > 工具函数 #skynet_fly_api
季度更新日志2025-4 2025-6 orm支持创建普通索引orm支持普通索引,并提供相关查询和删除函数。普通索引查询是不会走缓存的,直接先查询数据库。 用户日志支持内置按天写入,保留天数支持。 支持批订阅同步。 fix 订阅同步时滚服热更frpc_client_m同步停止问题。解决container_client对象使用不活跃导致旧服务长时间不销毁。删除container_client:CMD函数 skynet_util.set_c 2025-04-01 季度更新日志 > 2025 #季度更新日志
orm 新增普通索引 前言对于游戏数据来说,普通索引大多作用在日志数据上,按时间,玩家,道具ID,等等条件分页查询检索,数据量通常很庞大,不同的普通索引可以做联合条件查询,如果想普通索引也加上本地缓存页的话,需要处理好缓存是否失效的判断,对于主键唯一索引来说就是对比本次查询的范围的数据总量和缓存总量是否相等,数据总量失效是其中的某个缓存过期。而普通索引基于范围,分页来查询不太好维护数据总量和缓存总量数据的控制,而且排序 2025-04-01 skynet_fly实现思路历程 #skynet_fly实现思路历程
用户日志 ormadapter_uselog��于写固定每天轮换的用户日志 function M:new(file_path, file_name, flush_inval, max_age)描述 创建日志对象参数 file_path string 日志存放路径 file_name string 文件名 flush_inval number? flush间隔时间 max_age number? 最大保留天 2025-03-28 skynet_fly API 文档 > 日志相关 #skynet_fly_api
orm uselog适配器 ormadapter_uselog function M:new(file_path, file_name, flush_inval, maxage)描述 新建适配器对象参数 file_path string 日志存放路径 file_name string 文件名 flush_inval number? flush间隔时间 max_age number? 最大保留天数 返回值 table o 2025-03-28 skynet_fly API 文档 > 数据库相关 #skynet_fly_api
尝试给orm新增唯一索引,最后还是决定不加了 前言有群友比较想要orm可以设置唯一索引,方便类似给账号做绑定手机号,绑定邮箱这种需求,其实对于这类需求,我是建议新建一个表做对应映射关系,但是又考虑到,如果能在原本的表建唯一索引,或许做这类需求要简单从容许多。虽然这又会给orm增长一些的复杂度,但是我抱着试一试的心态,开始对本就复杂的orm解剖重构,先把耦合的索引代码抽离独立,方便主键,唯一索引一起用,然后新增唯一索引,接通了查询,写了查询的测 2025-03-22 skynet_fly实现思路历程 #skynet_fly实现思路历程