skynet——分布式支持

概述

skynet 本身只解决"单机多核",集群是后来补的基础设施。两套方案是前后代关系,harbor 是早期的 master/slave 模式,cluster 是后来推荐的替代。

模式

harbor(老方案,master/slave)

  • 每个 skynet 进程是一个 slave,其中一个配 standalone多启一个 cmaster​ 做协调

  • 每个 slave 内有个 harbor 服务​ 负责和其他 slave 通信

  • 服务地址是 32bit,高 8bit = harbor id,所以最多 255 个节点(id 0 保留)

  • 节点内/节点间消息投递对业务透明------skynet 根据地址高 8bit 决定直投还是转 harbor

    服务地址: [harbor_id:8bit][service_handle:24bit]

优点:C 层转发,开销极小;地址透明,业务代码不用感知跨节点

缺点:

  • ≤255 节点

  • 静态配置,启动时定死

  • 无容错------任意节点挂了整个网络视为异常,只能同机房局域网用,不能跨机房

cluster(新方案,推荐)

  • 用字符串 node 名标识节点(如 "game1"、"gate"),节点数无上限

  • Lua 层 RPC(cluster.call/ cluster.send),走二进制协议

  • 支持 cluster.reload()运行时更新配置,节点可动态增删

  • 每个节点独立注册自己提供的服务,查询靠 cluster.proxy

相关推荐
Alluxio13 小时前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型
阿卡好可爱18 小时前
Lua 热更新不生效:改完文件线上仍是旧逻辑,package.loaded 与 upvalue 重绑定详解
数据结构·分布式·后端·架构·lua
方方洛3 天前
ray教程-28-附录G-CICD与Slurm与云上调度
人工智能·分布式·机器学习
空奈qwq3 天前
【Kafka 从入门到实战】从手写一个队列到生产级消息中间件:架构、分区、消费组、零拷贝全解析
分布式·架构·kafka
山甫aa4 天前
锁一篇搞定:乐观锁、悲观锁、CAS、数据库锁与分布式锁【从零开始的 Web 后端学习】
java·数据库·分布式·后端·学习·web
严肃小白兔5 天前
Cloudflare Durable Objects 支持自动重试:分布式调用如何避免重复执行?
分布式
方方洛5 天前
ray教程-27-附录F-RayClient与runtime_env与多语言
人工智能·分布式·机器学习
方方洛6 天前
ray教程-25-附录E-端到端实战案例
人工智能·分布式·机器学习
迅翼SwiftWing7 天前
编队系列(二)|固定翼如何依靠邻居信息保持队形?一致性控制、通信拓扑与分布式仿真实现,附仿真代码
分布式