V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Roy3
V2EX  ›  推广

云原生项目实践 DevOps(GitOps)+K8S+BPF+SRE,从 0 到 1 使用 Golang 开发生产级麻将游戏服务器—第 3 篇

  •  
  •   Roy3 · 2021-02-06 20:02:27 +08:00 · 1370 次点击
    这是一个创建于 1146 天前的主题,其中的信息可能已经有所发展或是发生改变。

    云原生项目实践 DevOps(GitOps)+K8S+BPF+SRE,从 0 到 1 使用 Golang 开发生产级麻将游戏服务器—第 3 篇

    通过服务器日志和客户端抓包了解游客( Guest )登录流程

    系列文章

    1. 云原生项目实践 DevOps(GitOps)+K8S+BPF+SRE,从 0 到 1 使用 Golang 开发生产级麻将游戏服务器—第 1 篇
    2. 云原生项目实践 DevOps(GitOps)+K8S+BPF+SRE,从 0 到 1 使用 Golang 开发生产级麻将游戏服务器—第 2 篇

    介绍

    这将是一个完整的,完全践行 DevOps/GitOpsKubernetes 上云流程的 Golang 游戏服务器开发的系列教程。

    这个系列教程是对开源项目 Nanoserver 的完整拆解,旨在帮助大家快速上手 Golang (游戏)服务器后端开发。通过实践去理解 Golang 开发的精髓 —— Share memory by communication(通过通信共享内存)

    同时这个项目可能还会涉及到 Linux 性能调优(BPF 相关的工具)和系统保障(SRE)的相关的工作。

    Step-By-Step 开发 Mahjong Server

    • 单体架构理解 Mahjong Server 业务 -> Nano Distributed Game Server (分布式) + 微服务 改造。
    • Demo:go-mahjong-server

    游客登录业务分析

    游客(Guest)登录 这里主要还是用于开发与调试程序。

    回顾一下 Nano 框架

    关于 Nano Game Server 的快速上手大家可以参看我之前写的 -> 5 分钟上手 Nano 游戏服务器框架

    Nano 术语

    • 组件(Component):nano 应用的功能就是由一些松散耦合的 Component 组成的,每个 Component 完成一些功能。
    • Handler:它定义在 Component 内的方法,用来处理具体的业务逻辑。
    • 路由(Route):用来标识一个具体服务 或者客户端接受服务端推送消息的位置
    • 会话(Session):客户端连接服务器后, 建立一个会话保存连接期间一些上下文信息。连接断开后释放。
    • 组(Group):Group 可以看作是一个 Session 的容器,主要用于需要广播推送消息的场景。
    • 请求(Request), 响应(Response), 通知(Notify), 推送(Push):Nano 中四种消息类型。

    Nano 组件的生命周期

    type DemoComponent struct{}
    
    func (c *DemoComponent) Init()           {}
    func (c *DemoComponent) AfterInit()      {}
    func (c *DemoComponent) BeforeShutdown() {}
    func (c *DemoComponent) Shutdown()       {}
    
    • Init:组件初始化时将被调用。
    • AfterInit:组件初始化完成后将被调用。
    • BeforeShutdown:组件销毁之前将被调用。
    • Shutdown:组件销毁时将被调用。

    整个组件的生命周期看起来非常的清晰。

    云原生项目实践 DevOps(GitOps)+K8S+BPF+SRE,从 0 到 1 使用 Golang 开发生产级麻将游戏服务器—第 3 篇

    我是为少
    微信:uuhells123
    公众号:黑客下午茶
    
    1 条回复    2021-02-07 10:17:11 +08:00
    buzailianxi
        1
    buzailianxi  
       2021-02-07 10:17:11 +08:00
    开源客户端有么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3138 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:29 · PVG 22:29 · LAX 07:29 · JFK 10:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.