Webgame服务端分布式架构设计

——By  King

最近在设计实现Webgame服务端游戏架构,跟大家分享下。

以下对架构的几点说明:

1.  DB:数据库层。使用MongoDB, 可以作分布式,按webgame的需求,基本应该是不需要的。设置3个数据库,分别是GameData(游戏数据), GameLog(游戏日志),GameConfig(游戏配置)。

2.  Cache:缓存层。使用Redis,作为数据中间层。主从库分布,有了DB作永久存储,就不需要存储文件了。

3. SceneServer:逻辑服务器。负责场景业务逻辑。这层设计为分布式,有N个Server,每个Server可以管理多个场景。可以扩展为分线分布式。

4.  ProxyServer:代理服。处理玩家连接,和数据转发(到Server层),数据包加解密,和过滤非法数据包。这层设计为分布式,有N个 Proxy服,为了分压客户端连接。

玩家在切换地图时,无需断开连接,只要更新该玩家在Proxy代理层的数据流向。

为免减少复杂性,这里不设置World服或者Chat服,对于世界性的业务,可以通过Redis来转发处理。

聊天在Proxy层直接使用redis的发布订阅就可以实现,数据不需要上到Server层,减少Server层压力。但是玩家登录时需要Server通 知Proxy玩家一些状态。另外也可以设计为单独的聊天集群,每个服都连接到聊天群,和游戏逻辑分离,好处是即使聊天挂掉,也不会影响游戏服。

操作数据的原则:是先操作DB,再操作Cache,以数据库为准,确保数据无误。数据更改尽量作增量操作,而不是覆盖操作,减少并发产生的问题。

优点:

1.      分布式架构,可以通过增加服务器来分担逻辑服或代理服的压力。

2.      当一个代理服宕机后,也不会影响其它代理服的游戏。

3.      当一个场景服宕机后,影响的也只是当前地图的玩家。

4.      业务分离成单独的服务器,分散访问流量,而且可以动态增加,提高在线。

5.      代理保证了游戏服安全,使外网无法直接访问内网游戏服。

缺点: 

1.      代理服务器成为高负载情况下的通讯瓶颈问题

2.      Cache缓存在高负载下可能压力较大。

3.      由于网关的单节点故障导致整组服务器无法对外提供服务的问题

欢迎大家讨论和建议,转载请注明作者。——By  King

Email: pencil1@qq.com

Webgame服务端分布式架构设计相关推荐

  1. 服务端监控架构设计与实践

    作者:vivo互联网服务器团队-Deng Haibo 一.业务背景 当今时代处在信息大爆发的时代,信息借助互联网的潮流在全球自由的流动,产生了各式各样的平台系统和软件系统,越来越多的业务也会导致系统的 ...

  2. 应对海量并发请求,首席布道师谈微服务的应用架构设计

    何李石 七牛云首席布道师 <Go语言程序设计>译者,Go语言/容器虚拟化技术布道师.实践者. 5年以上互联网创业经验和企业级产品研发.运营经验,同时也是互联网产品基础架构解决方案专家. 随 ...

  3. 阿里P8 “布道师”,谈微服务的应用架构设计(附微服务教程)

    本次分享基于微服务的应用架构设计,内容涉及如何构建一个微服务应用,服务注册与发现,微服务测试和典型的微服务架构设计模式,以及微服务架构在七牛的实践案例. 目录 构建一个微服务应用 服务注册与发现 微服 ...

  4. 一、【SpringCloud】微服务与分布式架构

    狂神-SpringCloud笔记目录 文章目录 一.微服务与分布式架构 1.1分布式架构 1.2微服务架构 1.3分布式架构的四个核心问题 与解决方案 1.4 Spring Cloud 五大组件 1. ...

  5. 如何实现高容量大并发数据库服务 | 数据库分布式架构设计

    袋鼠学院和优云.阿里云联合举办的沙龙结束之后,总是有小伙伴们来问PPT内容,想要进一步了解Topic内容.(哦,对了对了,竟然还有小伙伴专门冲着袋鼠云去听沙龙,感动cry~~) 千呼万唤,忙成狗的袋鼠 ...

  6. 高并发服务端分布式系统设计概要(上)

    高并发服务端分布式系统设计概要(上) ======张峻崇 原创.转载请注明出处.====== 又是快一年没写博客了,2013年也只剩尾巴,也不知道今年都忙了些什么.写这篇文章的目的,主要是把今年以来学 ...

  7. 阿里P8架构师谈:分布式架构设计12精讲

    分布式架构设计包含: 分布式缓存 分布式消息中间件 分库分表.读写分离 单点登录等 想成为阿里160万年薪的P8架构师?你必须掌握如下6大技能体系! 阿里P8架构师谈:分布式架构系统拆分原则.需求.微 ...

  8. 分布式架构设计概要总结

    分布式架构概要总结 构建分布式的原因 业务架构的演进 在上图简单以时间线为准,粗略描述了我们系统架构随着业务的需求考量以及业务的发展,系统承担的并发量也将逐步提升,这就要求我们的系统架构需要开始思考如 ...

  9. 后端总结(分布式架构设计)

    分布式架构设计 分布式理论与分布式架构设计理论 1. 分布式架构介绍 2.分布式理论 2.1 数据一致性 2.2 CAP定理 3.分布式一致性协议 4.分布式系统设计策略 5. 分布式架构服务调用 5 ...

  10. 浅谈游戏服务端开发-架构

    网络游戏程序分为客户端和服务端.客户端负责图形渲染.交互和一些简单校验处理,服务端负责业务逻辑处理.数据存储. 我们开发一个游戏demo,服务端程序可以是一个单线程的服务进程.它包含网络通信.业务逻辑 ...

最新文章

  1. python 装饰器实现事件绑定_Python装饰器是怎么实现的?
  2. weblogic oracle连接池配置文件,关于WebLogic 访问Oracle 数据库(建立连接池)问题...
  3. 用小程序·云开发打造运动圈小程序丨实战
  4. GRIDVIEW多行多列合并单元格(合并列)
  5. Java 多线程(八) 线程状态图
  6. Nginx 学习总结(4)—— Rewrite 模块
  7. 【activiti6】设计器的前后端集成与汉化
  8. 太可爱啦!程序员把电脑病毒当宠物养
  9. 美国范德堡大学计算机科学博士,范德堡大学计算机科学专业是什么?相关信息是哪些呢?...
  10. C1驾照到期更换,驾照异地入迁,摩托驾驶证报名,记录
  11. 怎么把html改成迅雷bt种子文件格式,BT种子怎么制作?教你如何制作BT种子
  12. 微信小程序 image-cropper 还原按钮控制
  13. Spring之IOC~控制反转
  14. ununtu20.04系统中如何划词翻译_接住了!有了这几个翻译软件,英语渣渣也能轻松读文献...
  15. sqlmap中的tamper 脚本分析
  16. Android targetSdkVersion从23升级到26适配指南
  17. 众筹时代 - Web众筹平台
  18. java面试题-捕获异常
  19. 中国拼图游戏市场现状研究分析与发展前景预测报告(2022)
  20. 洛谷P1010 [NOIP1998 普及组] 幂次方 题解

热门文章

  1. HTML中的input type=reset标签失效(不起作用)的可能原因
  2. 机器学习数据集划分方法
  3. html鼠标自动图片放大,css如何实现鼠标放在图片上时图片放大呢?
  4. 驱动读写应用程序内存
  5. mysql 参数set_MySQL--mysqldmp命令参数set-gtid-purged
  6. 第一次出书的经验分享
  7. 【其他】Hexo博客(Next主题)放弃多说,接入网易云跟贴
  8. 【软件测试基础理论知识】1.1.常见的软件开发模型之———瀑布模型、原型模型、快速原型模型
  9. CSDN-markdown(文字加色加字号、背景色等)
  10. python之获取星期字符串