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

相关推荐
叶总没有会1 天前
RabbitMQ高级
分布式·rabbitmq
ABB自动化1 天前
ABB 500CIM06 (1MRB150077R0111) | REB500 通信接口
大数据·分布式·系统架构·系统安全·模块测试·plc 控制器
ZENERGY-众壹1 天前
告别本地工控机:分布式光伏 SCADA 架构如何实现云边协同
分布式·架构·光伏运维·能源数字化·电站监控
code_slave(码畜)1 天前
微服务架构落地:读写分离架构 —— 主从延迟引发的“刚开单查不到”灾难与破局
spring boot·分布式·spring cloud·微服务·云原生·架构·读写分离
JAVA_AI人工智能项目实战1 天前
分布式大模型训练_学习笔记
人工智能·分布式·语言模型·自然语言处理
星夜孤帆1 天前
Redis缓存击穿与分布式锁实战:专栏目录、源码与实验说明
redis·分布式·缓存
yyk333241 天前
Spark介绍
大数据·分布式·spark
成为你的宁宁1 天前
【基于 SSH 与 JNLP 协议的 Jenkins 分布式构建方案】
分布式·jenkins
PingCAP2 天前
善战者无赫赫之功:消费金融核心系统的数据库选型与升级路径
数据库·分布式·架构
库库的数据库笔记2 天前
金融核心交易系统的数据库国产信创改造该如何做?
大数据·数据库·分布式·mysql·oracle·金融·数据库架构