跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 云原生项目实践 DevOps(GitOps)+K8S+BPF+SRE,从 0 到 1 使用 Golang 开发生产级麻将游戏服务器—第 2 篇
未分類
2021 年 2 月 7 日

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

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

資深大佬 : Roy3 2

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

系列文章

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

介绍

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

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

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

脚手架项目

  • 脚手架是基于 nanoserver 抽出来的,旨在帮助大家快速理解这个 Mahjong Server 是如何搭出来的。
  • 我们先单体架构理解整体业务 -> 然后再 分布式 Nano Server + 微服务 改造( Step-by-Step )。
  • Demo:go-mahjong-server

基础回顾

Go Modules

我的本地环境:

go version # go version go1.14.14 darwin/amd64 

go mod help

Go mod 提供对 modules 操作的访问。

请注意,所有 go 命令都内置了对 modules 的支持, 不只是'go mod'。例如,日常的依赖关系添加(adding),删除(removing),升级(upgrading)和降级(downgrading)应该使用 'go get' 完成。 有关 module 功能的概述,请参见 'go help modules'。

用法:

go mod <command> [arguments] 
  • download 将模块下载到本地缓存
  • edit 通过工具或脚本编辑 go.mod
  • graph 打印模块依赖图
  • init 在当前目录中初始化新模块
  • tidy 添加缺少的内容并删除未使用的模块
  • vendor 制作第三方依赖包( vendored )的依赖副本
  • verify 验证依赖项具有预期的内容
  • why 解释为什么需要软件包( packages )或模块( modules )

使用 “go help mod <命令>” 可获取有关命令的更多信息。

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

脚手架基本结构

├── configs # 配置文件 │   ├── config.toml ├── db # 数据库( xorm )相关 │   ├── model │   │   ├── struct.go # database schema │   ├── const.go │   ├── logger.go │   ├── model.go ├── internal │   ├── game # 游戏服务器( Nano server ) │   │   ├── crypto.go │   │   ├── game.go │   │   ├── manager.go │   ├── web # web 服务器(提供 API ) │   │   ├── web.go ├── pkg # 项目基础包 │   ├── algoutil # 常用工具函数 │   │   ├── algoutil.go  │   ├── crypto # md5 rsa sha1 x509 base64 相关工具 │   │   ├── crypto.go │   ├── errutil # 游戏服务器中错误码和错误信息统一管理 │   │   ├── code.go │   │   ├── errutil.go │   ├── whitelist # 白名单验证工具函数 │   │   ├── white_list.go ├── protocol # 协议(放所有游戏) │   ├── web.go ├── main.go # 入口 

大佬有話說 (1)

  • 資深大佬 : m0cha

    收藏了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具