做webgame也有段时间了,最近上线的游戏还处于起步阶段,第二个月收入突破100万了,跟市面上大的webgame比起来,根本不算什么,但有收入总比没有好,呵呵,以后还需更加努力。现在总结一下自己webgame的架构设计,总结的目的一方面是为了共享给网上的朋友,也希望网友给我提出不足之处,另一方面是为了更好的降低成本,总结那些环节还能进一步节省开支。

大家一开始看的这个图是游戏服务端逻辑架构Level1,从图上大体能看出,由多个基础服务提供支持,多个游戏共享通用逻辑服务,外加各自游戏的特性逻辑服务,组成了整个服务端的逻辑架构。

基础服务有很多,有日志服务,通信和内容传递服务(类似WCF的功能),权限,事务,SSO(单点登录),异常处理和查询,路由,监控,服务的注册和分离,配置中心以及数据的提供和存储。

1.日志,用于记录游戏的点点滴滴,游戏交易,玩家数据变化以及需要记录信息的地方。

2.通信和内容传递服务,用于游戏各个逻辑服务的数据传递。

3.权限,判断玩家的操作许可以及游戏后台统计和管理站点操作人员的许可。

4.事务,玩家充值以及各种数据变化,都需要事务的保证,尤其是玩家的充值,会用到分布式事务。

5.单点登录,不管一个公司是出了多个游戏,还是一个游戏开了很多区服,单点登录,让玩家在一个地方登录,其他地方不再需要重新登录,就能玩游戏,带来更好的用户体验。

6.异常处理和查询,能保证系统的稳定性,可用性,查询能帮助更好的维护和解决问题。

7.路由,提供各服务的路由和负载均衡

8.监控,监控各服务的状态,如有异常,可以通知路由,此路服务不可用。如果整个服务器宕机,该服务器上的所有服务,路由将不再中转和调度。

9.服务的注册和分离,配置那些服务可用,那些服务处于维护阶段,那些服务已弃用。

10.数据的提供,根据不同游戏,不同服务,提供对应的数据。

11.数据存储,同上,根据不同游戏,不同服务,把数据存到正确的地方去。

12.配置中心,所有AppSetting的配置,应用配置,通信路由配置,数据存储路径配置等等,都在配置中心存储管理。这样就不用每次上线部署的时候,处理每台服务器上若干的配置

总结,这样的架构主要是为了节省成本,在节省成本的同时,保持可用性,可维护性。

第一个优点,共用。几乎每个游戏都有聊天,公会,技能,包裹物品游戏币等通用模块,把这些通用的逻辑,独立成服务,不依赖数据去驱动,就可以让多个游戏共用,提供给他数据,让他加工,然后生成处理过的数据,至于数据存储,那是数据存储服务的事,这样就不再依赖数据库去驱动了。

第二个优点,可用性,可维护性。我们都知道在架构设计过程中,不要产生单点,例如聊天服务,是否每个游戏服都要部署两套以上?有点浪费,但多个游戏服把所有的服务器资源共享,聊天服务和特定游戏服的数据库分离(聊天跟数据库有什么关系?这个天朝规定了,聊天记录要全部存储下来,随时要检查有没有不和谐的内容),就可以共用,消除单点,一个聊天服务挂了,还有几个在,所有区服的聊天功能全部正常使用,不影响玩家体验。以前我们每个区服的逻辑服务都是单独的一套,也不在乎单点,但运营出现问题后,只能忙的焦头烂额,不但被玩家骂,还要赔偿玩家损失。杯具~~~

快凌晨3点了,先写这么多吧,有空再补充,明天是星期天,不过我依然要加班,早点睡了,欢迎大家和我交流。

我的Mail:cool8868@163.com cool8868@gmail.com,转载请注明出处,谢谢。

WebGame服务端架构分析(一)相关推荐

  1. 汽车之家移动主App服务端架构变迁

    声明:本文为<程序员>原创文章,未经允许不得转载,更多精彩文章请订阅2016年程序员:http://dingyue.programmer.com.cn/ 导语:汽车之家移动主App服务端架 ...

  2. 【精品】服务端 架构演进 历程

    概述 以淘宝作为例,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则. 单机架构 ...

  3. Redis_18_Redis客户端-服务端架构

    文章目录 一.前言 二.Redis客户端-服务器架构 三.客户端 3.1 客户端属性 3.1.1套接字描述符(fd) 3.1.2 名字(name) 3.1.3 标志(flags) 3.1.4 输入缓冲 ...

  4. 模拟“12306”服务端架构:100万人同时抢1万张火车票

    ▼数据猿年度征集评选正在进行中▼ 大数据产业创新服务媒体-聚焦数据·改变商业 数据猿官网 | www.datayuan.cn 今日头条丨一点资讯丨腾讯丨搜狐丨网易丨凤凰丨阿里UC大鱼丨新浪微博丨新浪看 ...

  5. 1年内4次架构调整,谈Nice的服务端架构变迁之路--转

    原文地址:http://mp.weixin.qq.com/s?__biz=MzA5Nzc4OTA1Mw==&mid=410775314&idx=1&sn=7c7cc94f8f4 ...

  6. 【大会】海量高清视频服务端架构设计的变与不变

    随着4K甚至更高分辨率的视频日渐普及,海量视频并发,对服务端的编码.转码的处理能力提出了前所未有的要求,传统的软件编码加速未必能够满足极端场景的要求,包括ASIC.GPU和FPGA方案你方唱罢我登场, ...

  7. [知乎] 端游、手游服务端架构演变

    本文版权归 知乎 韦易笑 所有,此处为转载+收藏,如有再转,请于作者处获得授权并于文章篇头处标明原创作者及出处,以示尊重! 作者:韦易笑 链接:https://www.zhihu.com/questi ...

  8. 各类游戏对应服务端架构

    卡牌.跑酷等弱交互服务端 卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使用简单的 HTTP服务器: 登录时可以使用非对称加 ...

  9. 各类游戏对应的服务端架构

    卡牌.跑酷等弱交互服务端 卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使用简单的 HTTP服务器: 登录时可以使用非对称加 ...

  10. 从游戏服务端角度分析移动同步(状态同步)

    从游戏服务端角度分析移动同步(状态同步) 参考文章: https://www.lfzxb.top/ow-gdc-gameplay-architecture-and-netcode/ https://z ...

最新文章

  1. ItClust:利用迁移学习解决scRNA-seq中的细胞聚类问题
  2. oracle自动分区maxvalue,分区表中的maxvalue参数设置-Oracle
  3. Linux操作系统上lsof命令详解
  4. 处理错误:ORA-27101: shared memory realm does not exist 解决方案
  5. photoshop CS不能打字,出现死机等现象的解决办法!!
  6. 探索推荐引擎内部的秘密
  7. Player启动时提示 System.InvalidOperationException:无法加载计数器名称数据
  8. 集群理论详解(续一)
  9. Google Guava –与Monitor同步
  10. 第一章 计算机系统概述 1.2.1 计算机硬件的基本组成 [计算机组成原理笔记]
  11. CDH 5.13.0 集成 Phoenix
  12. 谈谈Java虚拟机——Class文件结构
  13. linux qt usb转串口通信,centos7 Qt USB转串口通信
  14. 开发测试矛盾java吧_不愿看到Java开发者再做的10件事
  15. 使用Eclispe 查看api技巧
  16. 搜狗手机输入法java_手机搜狗输入法制作个性皮肤的方法
  17. Charles工具基本使用详解
  18. 微信小程序自定义tab切换组件
  19. 浪潮存储助力方特动漫为《熊出没-狂野大陆》动物角色披上“动感毛发”
  20. Xilinx浮点数IP核使用记录

热门文章

  1. from表单的重置按钮(reset)不能重置隐藏input框的值
  2. 《高性能MySQL》读书笔记(1~6章)
  3. 【在线工具收集】抢票音视频剪辑照片PS代码在线编译打字练习游戏
  4. 地址规范化--城市三级联动(layui) (A)
  5. 求伴随矩阵和逆矩阵C++
  6. M1系列Mac用U盘如何重装系统
  7. 2021年十佳返利优惠券平台排名如下
  8. 修改Android应用名称
  9. aso优化应用市场推广方案怎么写
  10. 计算机java证书有哪些_计算机专业应该考这些证书!