立即咨询

电话咨询

微信咨询

立即试用
商务合作

腾讯云游戏业务容器化改造解决方案

腾讯云游戏业务容器化改造解决方案,整合负载均衡CLB、Pod绑定外网EIP方案及Nginx Ingress容器服务功能。支持游戏服务弹性扩缩、网络访问高效调度及流量智能分发,助力游戏企业简化部署流程,提升业务稳定性与运维效率。
立即咨询

 

icon典型战斗服的架构和技术特点icon
具体过程:
玩家们连接到某种匹配服务,匹配服务将玩家匹配分组
一旦玩家匹配成功,匹配服务通知游戏管理器在服务器集群中提供一个专属游戏进程
游戏管理器在集群中某台机器上创建专属游戏服务
游戏管理器给专属游戏服务分配IP地址和服务端口,并返回匹配器
匹配器将返回的IP地址和端口回传给玩家
玩家们直连到专属服务进程开始游戏
技术特点:
游戏存在难以预估的波峰波谷,需要快速的扩缩容
DS进程的启动时延要求很高,一般要求几秒钟,否则就会影响玩家体验
专属游戏服务器在内存中保留游戏信息,属于有状态应用,不可直接退出,需要保证用户对局结束,才能退出
DS的生命周期很短,一般只需保留几分钟或者几个小时
对网络延迟敏感,游戏服务需要直接对外提供服务,玩家直连
游戏需要频繁更新地图、道具等,需要频繁发版和灰度发布

 

 

icon工作负载选择icon

 

 

icon有状态服务 持久化存储对比icon
StatefulSet
PVC 关系:StatefulSet 每个 Pod 都将使用自己的 PVC
持久化存储:可使用 CFS / CBS,都支持 Pod 多副本
Deployment
PVC 关系:Deployment 所有 Pod 都将使用同一个 PVC
持久化存储:使用 CBS 只支持Pod单副本,使用CFS可支持 Pod 多副本

 

 
icon有状态服务 持久化存储配置icon
1、StatefulSet 多副本挂载 CBS 存储
2、StatefulSet 多副本挂载 CFS 存储
 

 

 

 

icon容器存储性能指标icon

 

 

 

icon玩家流量接入方式选择icon
游戏玩家直连战斗服 Pod 外网IP
每个集群可使用一个 StatefulSet 工作负载,采用多副本模式运行
游戏玩家直连Pod,长连接链路简单,可以使用 HPA/HPC 处理弹性伸缩
EKS 小规格资源供给相对充足,EIP 配额可根据场景评估调整
员游戏玩家通过 CLB 转发 Pod 方式进入战斗服
每个集群可使用一个 StatefulSet 工作负载,通过 pod-name label 为每个 sts Pod 单独创建一个 LoadBalancer 的 Service,提供战斗服接入外网IP
游戏玩家通过 LB 转发接入战斗服 Pod,长连接链路多一个层级

 

 

 

icon工作负载 固定内网IP / 外网IPicon

StatefulSet 固定内网IP、外网IP,同时设置响应的回收策略

 

 

icon为每个 Pod 绑定一个外网 CLBicon
1、StatefulSet 多副本挂载 CBS 存储
2、为 nginx-0 绑定 LoadBalancer 的 Service

 

 

icon客户案例——客户流量接入方式汇总icon

 

 

iconCLB Ingress Controllericon
优势
控制器监听 Ingress 直接修改操作 LB 绑定路由规则
网络流量从 LB 直接到业务 POD
缺点
不支持正则表达式路由规则
不支持 rewrite 修改 url 路径
不支持金丝雀发布等高级特性
业务 Service 必须是 NodePort 类型(GR网络模式)

 

 

 

iconNginx Ingress Controllericon

复用 Nginx Ingress Controller 的所有特性

开箱即用,支持节点池 Daemonset 和 Deployment 两种部署方式

可以使用普通 ClusterIP 类型业务 Service

 

 

iconNginx Ingress 限流能力icon
Nginx Ingress  部分限流配置项
limit-connections:单个IP地址可以同时并发连接的个数
limit-rps:限制单个IP每秒钟的请求数 (limit request per second)
limit-rpm:限制单个IP每分钟的请求数,limit-rpm的优先级高于limit-rps
limit-burst-multiplier:突发请求大小的系数,主要用来定义连接队列的长度,默认是5
limit-rate-after:超过多少流量后执行限速,单位是KB
limit-rate:单个连接每秒的限速值,单位是KB
limit-whitelist:设定IP白名单,在该白名单内的IP不被限速

 

 

iconIstio Ingress Gatewayicon

丰富的流量管控能力,灰度发布

跨集群服务发现和路由

地域感知就近路由

 

 

icon实现每个 Pod 独立配置文件icon
方案优势
每个 Pod 可以使用独立的配置文件,满足游戏业务不同 Pod 需要不同配置的需求(地图、难度级别、游戏规则、玩家数量...) initContainer是在应用程序容器之前启动的,可以保证业务 Pod 配置文件的正确生成
方案问题
使用 initContainer 需要在 StatefulSet YAML 内编写一些额外的代码来实现
需要使用StatefulSet工作负载类型,如果之前使用Deployment,
则会带来某些行为不一致的问题

 

 

icon有状态服务 Pod 扩缩容icon
1、Pod 优雅终止
要实现优雅终止,首先战斗服业务代码需要支持优雅终止的逻辑,在业务代码里面处理下 SIGTERM 信号,一般主要逻辑就是"排水",即等待存量的连接完全结束,再退出进程

 

 

iconPod 长连接场景及最佳实践icon
1、长连接 terminationGracePeriodSeconds 配置问题
长连接场景下,销毁 Pod 时需要的优雅终止时间可能较长  (preStop + 业务进程停止超过 30s),有的极端情况甚至可能长达数小时,这时候可以根据实际情况自定义 terminationGracePeriodSeconds,避免过早的被 SIGKILL 杀死。 具体设置多大可以根据业务场景最坏的情况来预估,比如对战类游戏场景,同一房间玩家的客户端都连接的同一个服务端 Pod,一轮游戏最长半个小时,那么就设置 terminationGracePeriodSeconds 为 1800
 

 

 

iconPod 内多容器共享内存方式icon
1、内存型 emptyDir 实现容器间内存共享
2、容器间内存共享 Java 操作代码示例

 

 

产品推荐

博云先进算力管理引擎ACE
博云先进算力管理引擎ACE是基于自研的算力卡管理技术,提升算力卡利用率,提供丰富的监控运维手段,以及多种任务调度策略帮助用户建立算力资源池,为AI模型训练推理、仿真、渲染、生信分析、数值计算等场景提供完善的算力管理能力。
免费试用
查看详情
左手医生GPT医疗大模型智能云客服
左手医生GPT医疗大模型智能云客服基于左医 GPT大模型,实现自然语言对话,提供健康问答与就医咨询,支持学习医院、企业自有知识库。识别用户意图,智能匹配客户自有线上服务与功能应用,提高使用率。智能识别人工转接时机,实现真人无缝对接。通过人工服务反馈,持续优化智能效果和更新内容,助力医院、企业打造专属 AI 健康入口。
免费试用
查看详情
百度地图开放平台API SDK
百度地图开放平台API SDK提供丰富的地图服务接口,支持地图展示、路径规划、地理编码等功能。开发者可轻松集成到应用中,实现精准位置服务和高效地图操作。它以稳定可靠的服务助力各类应用实现地理位置相关功能。
免费试用
查看详情
闪捷工业安全智能监管平台
闪捷工业安全集中管理平台支持对安全设备、主机设备、网络设备统一管理,包括身份鉴别、授权管理、配置管理、资产拓扑管理、安全域管理等功能,通过对全网资产设备的集中监测,消除信息孤岛,实时掌握工业网络健康安全态势。
免费试用
查看详情