阅读 2123

牌类游戏使用微服务重构笔记(一): 先定个小目标

前言

牌类游戏与微服务是没有什么联系的,仅仅是因为笔者从事牌类游戏行业的开发工作,近期因为老框架在负载上升后遇到很多棘手的问题,需要从架构上做调整,我选择了微服务进行重构

  • 语言层面上,选择了golang
  • 发布部署工具上,选择了kubernetes, 主要考虑是团队人太少,需要一个这样事半功倍的工具,此前也写过一点相关的博客,kubernetes学习笔记 (二):k8s初体验
  • 微服务框架上,选择了micro,主要考虑是比较相信这个来自谷歌的大牛,框架写的是相当的不错
  • 数据序列化协议选择了protobuf替换了原来的json方式
  • rpc框架上,选择了谷歌的grpc, 主要是考虑语言中立、高性能,比较适合游戏
  • 服务发现,服务注册,选择了consul,主要考虑是简单 方便.正式环境下使用k8s自带的服务发现,后文会有详细介绍
  • service mesh暂未考虑,主要是买了本书看完感觉掌握程度不高,暂时放弃了,访问服务以micro提供的方法硬编码访问(其实也很方便)

除了微服务相关的,游戏本身业务方面也进行了一些优化,主要有:

  • 游戏房间和游戏本身分离,使得无论是房间玩法的拓展还是游戏玩法的拓展都很容易
  • 游戏与算法分离,可以独立编写,独立测试
  • 扑克游戏设计
  • 麻将游戏设计
  • 使用proto二进制数据传输的通用websocket网关

博客内容

牌类游戏使用微服务重构笔记(二): micro框架简介:micro toolkit
牌类游戏使用微服务重构笔记(三): micro框架简介 go-micro
牌类游戏使用微服务重构笔记(四): micro框架使用经验
牌类游戏使用微服务重构笔记(五): micro源码阅读
牌类游戏使用微服务重构笔记(六): protobuf爬坑
牌类游戏使用微服务重构笔记(七): 使用grpc构建游戏双向流
牌类游戏使用微服务重构笔记(八): 游戏网关服务器
牌类游戏使用微服务重构笔记(九): 游戏多版本兼容与热更新
牌类游戏使用微服务重构笔记(十): 麻将设计
牌类游戏使用微服务重构笔记(十一): 扑克设计
牌类游戏使用微服务重构笔记(十二): 在k8s中部署

...

本人学习golang、micro、k8s、grpc、protobuf等知识的时间较短,如果有理解错误的地方,欢迎批评指正,可以加我微信一起探讨学习