云原生项目实践 DevOps(GitOps)+K8S+BPF+SRE,从 0 到 1 使用 Golang 开发生产级麻将游戏服务器—第 3 篇
通过服务器日志和客户端抓包了解游客( Guest )登录流程
系列文章
- 云原生项目实践 DevOps(GitOps)+K8S+BPF+SRE,从 0 到 1 使用 Golang 开发生产级麻将游戏服务器—第 1 篇
- 云原生项目实践 DevOps(GitOps)+K8S+BPF+SRE,从 0 到 1 使用 Golang 开发生产级麻将游戏服务器—第 2 篇
介绍
这将是一个完整的,完全践行 DevOps/GitOps 与 Kubernetes 上云流程的 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
公众号:黑客下午茶