原文出处:点击打开链接

说起来游戏服务器的开发,是一个非常宏大的命题。到如今谁也说不清楚服务器到底是一个什么。无非就是游戏逻辑计算,数据存储,高并发之类的话题。服务器架构更是众说纷纷,其根源在于,没有放之四海而皆准的架构。每个公司的游戏类型不同,服务器架构也就不同。新手,可以根据别人的架构获学习和认识一般的游戏服务器都有哪些功能和设计,入门者可以根据别人架构获得一些灵感和启发,补充自己架构的不足。总之,这是一个相互学习的过程。下面是一个手游的服务器架构,供大家玩味一下。先上个图吧:

服务器架构的几个模块:

1,登陆服务器

2,逻辑服务器

3,用户中心服务器

4,充值服务器

5,数据库服务器

6,日志服务器。

这些模块都是分开的,可以分开部署到不同的物理服务器上。

1 登陆服务器

负责处理玩家登陆的请求。一个登陆服务器对应多个游戏逻辑分区。当玩家登陆的时候,登陆服务器向用户中心服务器发送登陆信息。请求对登陆信息的验证。通过验证之后,返回分区地址,之后,客户端与登陆服务器断开,连接到游戏逻辑服务器。

2 逻辑服务器

对玩家的操作进行逻辑处理。逻辑服务器是整个游戏的心脏。它的工作效率直接影响玩家在游戏中的体验,所以对它的要求就是速度,速度,快速返回处理结果。为了达到满足要求的速度,逻辑服务器的大部分操作必须在内存中操作,避免IO操作,IO操作可以放到另外的线程中进行。说是大部分,是因为玩家在第一次登陆的时候可能会从数据库加载所要用到的数据。在图中,大家看到了缓存,缓存的作用就是把数据放在内存中。当玩家退出时,它的数据也会在缓存中保存一段时间,在一定时间内,玩家再次登陆,将不会再重新从数据库加载数据。在逻辑服务器中对数据库的操作可以先放入一个队列,一个线程负责从这个队列取数据,并发送到数据库服务器,这样即减轻了逻辑服务器的压力,也保证了数据处理的效率。逻辑服务器的日志也不在逻辑服务器入库,同样的发送到日志服务器处理。还有一种方法是以一种特定格式的方式,记录到本地文件中,再启一个进程,读取这个文件,然后入库。

3 用户中心服务器

现在很多游戏都对用户进行了集中管理。这方便了对用户提供更好的服务,比如充值,活动,礼包领取,新游戏导入用户等。有的游戏公司可能会用用户中心的数据发展游戏运营平台。这部分与游戏逻辑服务器分开,也减少了游戏逻辑服务器的压力。

4 充值服务器

充值是游戏收入的唯一方式了,所以这个功能必须流畅,毫无压力。如果由于网络或服务器性能原因,导致玩家充值不了,会直接影响收益的。所以充值服务器最好部署在一台单独的物理机上面。也可以多个分区使用一个充值服务器,这要视游戏人数而定。

5 数据库服务器

负责对数据入库及更新的操作。把这部分操作从逻辑服务器分离出来,就是为了减轻逻辑服务器的压力,减少逻辑服务器资源的占用。而且,如果逻辑服务器突然宕机的话,也能尽量保证数据丢失的少。为了保证对数据的更新是顺序性的,这里把数据入库的操作使用队列单线程化。

6 日志服务器

处理玩家日志的入库。日志入库方便游戏运营管理游戏,统计玩家信息。当玩家人数比较多的时候,日志也会占用很多资源。所以把日志从逻辑服务器也分开了。因为日志只是插入操作,所以可以开几个线程进行并发插入到数据库。线程数要根据你数据库的连接池的最大连接数进行设置。要不然会导致连接资源被占完。导致数据插入不了数据库。

[转]一个手机游戏的服务器架构相关推荐

  1. 一个手机游戏服务器的架构

    原文: http://www.youxijishu.com/blogs/19.html 说起来游戏服务器的开发,是一个非常宏大的命题.到如今谁也说不清楚服务器到底是一个什么.无非就是游戏逻辑计算,数据 ...

  2. 网狐棋牌游戏平台服务器架构设计分析[转]

    网狐棋牌游戏平台服务器架构设计分析[转] http://blog.csdn.net/weiwangchao_/article/details/7047044 基本设计概念和处理流程 调用模型 模仿CO ...

  3. 游戏服务器支付系统,一种手机游戏支付服务器、支付方法及支付系统专利_专利查询 - 天眼查...

    1.一种手机游戏支付服务器,其特征在于,包括: 一存储模块:用于存储手机游戏用户在平台的唯一身份信息以及绑定的手机号码,所述唯一身份信息至少包括平台用户唯一标识和能够验证用户归属地关系的基本信息:一获 ...

  4. 手机游戏显示服务器异常,手机玩游戏是云服务器异常

    手机玩游戏是云服务器异常 内容精选 换一换 本文介绍了云手机CPH产品新特性和对应的文档动态,新特性将在各个区域(Region)陆续发布,欢迎体验. 华为鲲鹏云手机是运行在云端虚拟出带有原生安卓操作系 ...

  5. 详解互联网小游戏的服务器架构

    对于互联网的小游戏而言,逻辑基本放在客户端:除了付费货币的业务外,服务器基本只起到一个效验的作用. 所以,设计了如下简单的服务器架构,草稿图解如下: 热更的逻辑在登录/注册之前,在登录的时候会,服务器 ...

  6. mysql服务端放置_放置类游戏后端服务器架构设计与实现

    前言: 停更了一段时间.2020年也接近尾声了,调整了一下人生状态,继续前进. 今年完全参与了一款放置类游戏从0到开发上线再到合服.从目前市场上买量游戏的发展线路来看,合服意味着游戏走向压榨玩家的最后 ...

  7. 网狐棋牌游戏平台服务器架构设计分析

    调用模型 模仿COM组件接口模式,利用面向对象思想多态性polymorphism,调用方保存着被调用方的基础接口指针(interface or sink钩子)(Pure Virtual Functio ...

  8. 手机游戏战斗服务器没有响应,奇葩战斗家手游APP无法登陆怎么处理 处理方案一览...

    奇葩战斗家手游APP无法登陆怎么处理 处理方案一览.奇葩战斗家是一款非常好玩的游戏,许多玩家被其优秀的内容和有趣的玩法所吸引.但是近日有小伙伴反应奇葩战斗家手游APP无法登陆,小编这里整理了一些奇葩战 ...

  9. java如何做一个选择英雄界面手机购买,一个手机游戏商接受了我!开始创作手机英雄坛说JAVA版!...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 『食物和饮水』 这个是表示你当前的饥渴程度的,左边的是当前值,右边的就是你的饭量和水量.随着时间的推移食物和水都在逐渐消耗,如果食物或水有一项变为零玩家的 ...

最新文章

  1. linux分区通俗讲解,linux硬盘分区基础及设备号的解释
  2. 同花顺的数据格式总览(转帖)
  3. MyEclipse6.0下代码提示(alt+/)无法使用的解决方法
  4. 为什么大多数同学宁愿吃学习的苦,也不愿意尝思考的痛?
  5. 全新出击!《Java开发手册(嵩山版)》解读手册升级下载
  6. 分隔list,让页面成多行多列遍列
  7. Leetcode: Counting Bits
  8. 依赖第三方库时出现的问题:Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16
  9. (pytorch-深度学习)包含并行连结的网络(GoogLeNet)
  10. kettle怎么复制资源库的job_#linux系统下调度数据库类型资源库中的kettle job
  11. golang github.com/go-sql-driver/mysql 遇到的数据库,设置库设计不合理的解决方法
  12. [paper reading] 译 + 注 :如何阅读 Research Papers(Andrew Ng)
  13. iOS篇之有沙盒缓存
  14. Windows 7 一年试用批处理
  15. bilibili老版本_哔哩哔哩5.13.0旧版本下载-bilibili5.13.0旧版本下载v5.13.0旧版本-西西软件下载...
  16. uboot移植主要思路
  17. java 面试高频问题 java8新特性
  18. Redis下载和安装
  19. 作业(数组)---运行环境winTC(二)
  20. 小罗说敏捷 | 使用关键路径法优化项目进度管理

热门文章

  1. PHP - ChatGpt 学习 仅供参考
  2. arthas的监控java性能
  3. 概率与数理统计——大数定律
  4. 乡村爱情故事8 下载地址
  5. [渝粤教育] 南通大学 电路分析 参考 资料
  6. Hadoop中解除 Name node is in safe mode的方法
  7. html页面 消除横向滚动条,框架网页中去掉横向(水平)滚动条的方法
  8. Ubuntu16.04 装机之后要做的二十件事
  9. 软件测试的简历里面,项目介绍要怎么写好?【乐搏TestPro】
  10. python3.0 中文手册