技术栈
skynet
笨鸟先飞的橘猫
7 天前
skynet
skynet线上问题查证练习记录(更新中)
在匹配服务中新增一个死循环。服务列表消息队列和cpu内存占用情况查看cpu使用率解析:load average 三个数字指过去 1 分钟、5 分钟、15 分钟的平均负载。 含义是:等待 CPU + 等待 IO 的进程数。你的值 4.99 意味着平均有 5 个进程排队等资源。如果机器是 4 核,那已经饱和了。
笨鸟先飞的橘猫
15 天前
游戏
·
rpc
·
skynet
skynet——RPC 超时机制优化方案
本文档分析当前项目 RPC 超时机制的实现方式及其性能问题,并给出优化方案。 适合面试时作为「高并发系统性能优化」的话题展开。
笨鸟先飞的橘猫
15 天前
学习
·
lua
·
skynet
skynet热更新实现问题与排错记录
在实现代码热更新功能的过程中,遇到了两个核心问题,根源都指向 skynet 框架的双层缓存设计。skynet 中有两层独立的缓存,只清其中一层无法完成代码热更新。
笨鸟先飞的橘猫
3 个月前
skynet
skynet——上下文管理
在 skynet 中,一个服务 ≠ 一个 Lua VM ≠ 一个进程,而是:C 层有一个 struct skynet_context 结构体
笨鸟先飞的橘猫
4 个月前
网络
·
学习
·
skynet
skynet——网络模块学习
epoll/kqueue + 非阻塞设计巧思:socket 线程只负责 IO 和封 message,不碰 Lua;worker 只从 mq 取 message 调 Lua,不碰 fd。两边靠 mq 解耦,完全没有"IO 线程 vs 业务线程抢同一份数据"的问题。
笨鸟先飞的橘猫
4 个月前
学习
·
skynet
skynet——sharetable学习
进程内多 Lua VM 之间的数据共享机制skynet 每个服务是独立 Lua VM,如果 100 个服务各 load 一份 500KB 的配置表,就是 50MB 浪费。
笨鸟先飞的橘猫
4 个月前
分布式
·
skynet
skynet——分布式支持
skynet 本身只解决"单机多核",集群是后来补的基础设施。两套方案是前后代关系,harbor 是早期的 master/slave 模式,cluster 是后来推荐的替代。
笨鸟先飞的橘猫
4 个月前
监控
·
skynet
skynet监控实践
PrometheusGrafana:一个可视化工具,接入时监控以下5个维度节点级:总服务数、总 mqlen 加和、jemalloc resident 内存、worker 线程数
Huanzhi_Lin
6 个月前
笔记
·
lua
·
skynet
·
actor
·
actor模型
skynet笔记
笨鸟先飞的橘猫
6 个月前
分布式
·
学习
·
游戏
·
lua
·
skynet
MMO游戏中的“跨服团队副本”匹配与状态同步系统
在一个大型多人在线(MMO)游戏中,策划希望推出一个高难度的“世界级团队副本”。该副本需要20名玩家共同挑战。由于单服玩家数量有限,系统需要支持跨服匹配。副本内有复杂的机制,如多个阶段BOSS、团队资源(如团队怒气值)、可被玩家交互的环境物件。玩家共同挑战后,根据各自的贡献给予奖励。
沐风ya
8 个月前
skynet
skynet消息(构成,session,type介绍),数据库与内存管理,消息调用链(发送层,调度层,lua层,总结),外部服务(介绍,skynet内置支持)
目录消息 Message消息构成消息函数的参数列表session为什么需要session 的所有权type
利来利往
8 个月前
lua
·
skynet
·
绑核
skynet指定的多个服务绑定同一个线程
为什么会需要多个服务绑定一个线程?skynet节点的线程数量是可以配置的,但是你不可能配置非常多吧?如果我们一个节点有非常多的服务,我们想其中某些服务不能卡,那么就需要把服务绑定线程不和其他服务共享线程。 我们有一些服务,业务很简单,虽然不怎么吃资源,但是要求不能卡,都需要绑定线程,如果给每一个服务都绑定线程,剩下的留给其他服务共享,可能会资源浪费。绑定的服务消耗了太多的线程,饱的饱死,饿得饿死。 所以我们需要把那些需要独立线程,本身其实不怎么吃资源的,给他们绑定同一个线程。 -- thread_prox
沐风ya
8 个月前
lua
·
skynet
·
actor
skynet概述(service,lua虚拟机,架构设计,如何解决核心问题)
目录介绍skynet与serviceservice介绍service创建豆知识过程handleservice运行阶段
莱茵不哈哈
1 年前
lua
·
c
·
skynet
初探 Skynet:轻量级分布式游戏服务器框架实战
在游戏服务器开发领域,高效、稳定且易于扩展的框架一直是开发者追求的目标。Skynet 作为一款轻量级、高性能的分布式游戏服务器框架,凭借其独特的设计理念和强大的功能,赢得了众多开发者的青睐
monstercl
2 年前
lua
·
skynet
·
游戏服务器
Skynet.socket 函数族使用详解
Skynet 的 skynet.socket 模块提供了 TCP/UDP 网络通信的核心 API,结合协程机制实现了阻塞式调用模型,简化了异步网络编程。本文详细解析其核心函数、使用场景及最佳实践。
monstercl
2 年前
lua
·
skynet
·
游戏服务器
skynet.dispatch 使用详解
skynet.dispatch 是 Skynet 框架中用于注册消息处理函数的核心 API。它的作用是为特定类型的消息绑定处理逻辑,当服务收到该类型的消息时,自动调用对应的处理函数。以下是其详细解析:
Winston-Tao
2 年前
lua
·
游戏开发
·
c 语言
·
skynet
·
游戏服务器框架
Skynet 中 snlua 服务启动整体流程分析
前言: 在 Skynet 中,Lua 扮演了极其重要的角色。Skynet 大多数业务逻辑都跑在一个个 Lua 服务里,而能够将 Lua 环境嵌入到 Skynet 框架下,并与 Skynet 消息调度机制完美结合,正是 snlua 服务所承担的核心功能。
monstercl
2 年前
c语言
·
网络
·
lua
·
skynet
·
游戏服务器
skynet网络包库(lua-netpack.c)的作用解析
该库是 Skynet 框架中用于高效处理网络数据包的核心模块,主要功能包括:使用 GCC 编译命令生成 .so 文件:
毛小子
2 年前
skynet
·
游戏服务器
skynet简单游戏服务器的迭代
用hash类型存储–key主要有4种:----第一种:mysql表数据对应的主键key:index_表名; field:main_index; val:indexList 其中main_index一般是主键,而联合主键的main_index就是联合主键中的主要字段,比如玩家对应多条装备数据,则用玩家id作为main_index indexList则是对应的主键列表,用table格式序列化成json
Winston-Tao
2 年前
lua
·
游戏开发
·
c 语言
·
skynet
·
游戏服务器框架
skynet 源码阅读 -- 核心概念服务 skynet_context
本文从 Skynet 源码层面深入解读 服务(Service) 的创建流程。从最基础的概念出发,逐步深入 skynet_context_new 函数、相关数据结构(skynet_context, skynet_module, message_queue 等),并通过流程图、结构图、以及源码片段的细节分析,希望能对 Skynet 服务的创建有一个由浅入深的系统认识。