工作内容
后端只有我一个人,需要处理所有与后端相关的事情。
项目A
游戏服
为了能动态扩缩容和不停服更新重启,采用了微服务架构。
需要部署多个进程
本地测试,每个核心服务部署两个进程
底层框架
不断改进的一套代码。最近做非传统游戏项目,碰到了一些新的思路,有时间再改进一下。
核心模块原本有很多功能,现在只保留了一些核心概念,其它的移动到工具模块。
工具模块收集了很多工具类
后台管理系统
为了便于自己和后人维护,基于ruoyi-vue3做了一套后台管理系统。
它的资料比较多,而且在B站上有比较系统的教程。
进程状态管理,当在线上启动一个新的服务后,并不会立即对外使用,需要通过后台来修改它的状态
通过后台管理系统查看在线主播
使用工具修改了ruoyi的包名,将游戏业务放到了一个新的模块。在随后的开发过程中,发现游戏业务还是会与管理后台的其它模块产生耦合,纠结中(ruoyi使用了严格的分层结构,而我倾向于DDD思想,所以有冲突)。
使用了前后端分离版的ruoyi-vue3
客户端模拟器
前后端通信使用了protobuf,使用客户端模拟器向游戏服发送消息来测试功能。
从项目启动到项目快要上线,还没有摸到过一个完整功能的客户端,根据没法进行功能联调。
感觉各种不靠谱,赶紧搓了一个模拟器,自己来联调所有功能。
Jenkins
使用Jenkins来管理项目的自动构建、内部部署、外部发布。
提供了一些操作用于维护内部游戏服
压测
模拟大量玩家向游戏服发起操作
测试整个流程,配合jmc、visualvm来分析整体性能。
大致结构
一些交互流程
负载均衡
使用了两种负载均衡,这个用于大厅服
运维
项目组太小,没有配置专门的运维,所以这些都需要自己来完成,购买云服务、线上部署、日常维护。
项目B
游戏服
本地启动多个进程
日志库水平分表
JMeter
测试接口耗时,项目时间比较紧,简单跑一跑
Swagger
用于对接和测试
Jenkins
使用Jenkins来管理项目的自动构建、内部部署、外部发布。
大致结构
其它
后台管理系统、底层框架、导表工具这些就不在这里贴出来了。