公司内部资料!游戏上线前部署准备,就这新手都行
时间:2023-10-08 09:40 来源:网络整理 作者:墨客科技 点击:次
游戏做的差不多了,是时候准备上线测试部署了,选一个靠谱的云服务器厂商还是很重要,这次准备尝试用下华为云的服务,为了在上线前做足准备,先做一次预演,省得到时候手忙脚乱,也给其他的同事做一个文档记录。 1、游戏架构介绍 1.1服务器架构 不同的公司有不同的游戏服务器架构,所以部署的具体细节大多不相同,但是基本的部署准备还是一样的,先看下我们的游戏架构,方便读者朋友了解后续的准备工作。 1.1.1服务器角色具体介绍下 client:游戏客户端。 gate:网关服,这里不承载游戏的链接,仅仅做游戏服务器的地址发放,玩家从gate服获取正式游戏服的ip和端口。 game:玩家主要在的游戏服务器,只有一个。 room:房间服,玩家匹配进入战斗后将进入战斗服,如果战斗多可以做动态扩展。 Gm:后台管理服务器,可以做活动的发布或者管理玩家数据。 redis:这里主要用来做缓存,避免数据库的频繁访问压力。 mysql:主要用来做数据的持久化。 1.1.2玩家数据流 玩家(client)通过http方式访问gate服务器,获取game服务的ip和端口。 client通过拿到的ip和端口直连game服务器,这样玩家就登录进了服务器。 当玩家操作角色进行匹配战斗的时候,匹配成功后会将需要的数据传入room服务器,所有的战斗指令也会被传入room服务。 当玩家需要查询数据时,比如想获得背包,game服会先像redis查询,如果数据不存在,则像mysql查询,查询到数据后会存入缓存。 当玩家角色数据发生变化时,比如获得了新的道具,这个时候需要操作数据库,game服务器会先更新数据库然后更新缓存。 当发布活动和修改玩家数据的时候使用gm,通过发布指令到game服。 1.1.3服务间交互协议 http协议:主要发生在访问场景比较少的地方,client和gate,game和Gm之间。 dubbo协议:主要使用在内部服务器之间交互数据,好处是简单直接,像操作本地方法一样。 webscoket:主要用在client和game之间,因为这是一个网页游戏的服务器,所以使用了websocket。 1.2部署方式 这里使用docker的方式,原因有几点: 标准化应用发布,避免环境带来的问题。 节约时间,方便快速部署和启动。 团队同学比较熟悉,降低犯错的可能性。 2、部署准备 2.1环境准备 2.1.1机器准备 对服务器的配置做了一个表统计,准备好服务器就好,下表是参考华为云官网。 注:具体价格实际以官网价为准 2.1.2解决方案构成 弹性云服务器ECS:是一种云上可随时自助获取、可弹性伸缩的计算服务,帮助打造安全、可靠、灵活、高效的应用环境。 云数据库 RDS for MySQL:拥有即开即用、稳定可靠、安全运行、弹性伸缩、轻松管理、经济实用等特点,让客户更加专注业务发展。 分布式缓存服务Redis版:业界首个支持Arm和x86双架构的Redis云服务,支持双机热备的HA架构,提供单机、主备、Proxy集群、Cluster集群、读写分离实例类型,满足高读写性能场景及弹性变配的业务需求。 云日志服务 LTS:提供一站式日志采集、秒级搜索、海量存储、结构化处理、转储和可视化图表等功能,满足应用运维、网络日志可视化分析、等保合规和运营分析等应用场景。 弹性公网IP EIP:弹性公网IP(Elastic IP)提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟IP、弹性负载均衡、NAT网关等资源灵活地绑定及解绑,提供访问公网和被公网访问能力。拥有多种灵活的计费方式,满足不同业务场景诉求。 2.2镜像准备 镜像的准备打包推送到私有仓库,具体的方法可以使用一些插件,也可以使用Jenkins,或者手动推送,无论哪种方式,这里准备下可能需要用到的手动命令。 2.2.1安装docker服务 2.2.2打包镜像 将jar包拷贝到和dockerfile相同目录下,执行下面命令,打包镜像。 2.2.3将镜像打包为本地文件 镜像导出为压缩包,方便传输。 2.2.4解包镜像 登录到服务器之后,将上面的文件拷贝到本机,使用下面的命令将镜像导入到当前机器: 2.3部署脚本 注:上述是开发环境,环境变量在有些是默认,在正式环境部署时候需要动态调整 2.4注意点 gate服务器需要开通公网ip。 excel配置文件要提前规划,在docker脚本中挂载 docker挂载的数据目录和日志目录需要提前规划。 每个服务器内部的端口映射要提前规划 环境变量需要在脚本中修改,包括mysql和redis数据库地址,需要链接的服务器ip和端口,以及相关的服务器配置等。 3、正式部署 3.1环境调研 游戏的痛点: 新游首发、海量玩家在线,高并发访问扩容不及时; 网络时延高,游戏卡顿、玩家掉线;自建周期长成本高,无法弹性伸缩。 大多游戏服务器属于计算密集型的,所以游戏服务器云厂商选择核心点有以下几条: 资源扩容能力,能及时扩容,根据需求灵活购买资源,实现动态扩展、成本优化,支持游戏开服、扩服、并服等场景的业务运行。 稳定的带宽,华为云内网带宽转发效率高,ELB亿级并发,动态自动优化网络结构,网络持续、稳定、高效、低时延。 (责任编辑:admin) |
- 上一篇:数百个GoDaddy托管的网站,短时间内被部署了后门
- 下一篇:Gmex.io最新版