网络问题优化方案一

问题描述

部分玩家(尤其是北方玩家)访问24好玩游戏,反馈游戏慢

问题分析

引发游戏慢的根本因素是:

  • 网络耗时
  • 服务器处理耗时

具体体现的可分为以下几种:

  • CDN资源访问慢
  • 服务器请求响应慢
  • 资源、ajax请求过多

以上因素所占的比重暂时还无法确定

前提

  • 监控系统,用于定位具体原因

原理

  • 数据部分独立
  • 非独立数据:全局共享 + 数据库底层同步
  • 节点的请求根据游戏ID来分配,同一个游戏所有请求全部转发至同一节点

方案设计

  • 保证业务层、数据层的分离,避免业务层混乱
  • 数据库多节点,各个节点之间数据同步
  • 尽量保证数据库单点写
  • 数据容易出现写冲突的服务对立为公共服务

结构图

方案图

大部分业务逻辑在游戏节点完成,另外部分业务逻辑在公共服务上进行

主要组件

  • DNS(SLB) : 智能DNS,根据区域/运营商解析到不同的IP
  • SLB : 负载均衡器(每个节点只有一个或者多个负载均衡器)
  • DATA SYNC : 数据库同步服务,主要利用阿里云DTS服务,将定制平台编辑的信息同步只各个节点

本方案主要包含一下三个部分

  • 定制平台/管理后台 (单节点)

    定制平台新建、编辑游戏,查看游戏统计数据
    管理后台
    
  • 公共服务(单节点)

    处理全平台数据唯一或者要求数据高度试试同步的服务,如抽奖、获取公众号token
    
  • 游戏服(多节点)

    处理游戏的大部分逻辑
    

主要解决问题

  • 部分地区访问单点服务器,受网络影响较大。

需要考虑的问题

  • 公共服务管理/授权
  • 数据库结构、业务逻辑调整(比如游戏只读部分与读写部分字段进行分离)
  • 系统解耦,服务拆分

风险

  • 实现难度大

成本

  • 智能DNS
  • 节点(服务器+DB+SLB) * n

results matching ""

    No results matching ""