游戏服务器架构

游戏服务器架构,第1张

案例1:寝室斗地主

案例2:社区斗地主

什么是服务器架构

案例:MMORPG 轩辕传奇 服务器架构 分区多世界

MMORPG:大型 多人 在线 角色扮演

分区多世界:运营视角

分区多世界:运维视角

双通服:世界上最遥远的距离,是从电信到网通的距离。

分区多世界:客户端视角

分区多世界:服务器视角

轩辕服务器为什么要这么多进程和机器 - 多维度切分

初始设计

一个进程包揽所有游戏服务器功能

问题:开第2个服应该怎么做呢?

按世界分离

公共服分离

公共服热备

按功能分离

按重要性分离

百万注册 = 10W活跃 = 1W在线,缓存应重点放在活跃身上。

设计演进:分区多世界原型v2

继续分离公共服

分离逻辑部分弱相关的功能,公共服分离服务器列表、版本升级、账号信息等功能。

切分逻辑进程

当前的现状是所有鸡蛋都放在一个篮子里,所有玩家都在一个进程上,好处是一个特性可以方便地 *** 作到所有玩家上,风险是一个特性的bug可能会影响到所有玩家。

所有特性都在一个进程所带来的风险是:特性的不断的引入会使该进程稳定性和服务质量降低。

设计演进:分区多世界原型v3

如何做切分,参考原则如下:

服务器为长线运营的准备

基本原则:可用、可控、可扩展性

接入与负载

可用性

在线控制

过载保护

服务器中服务介绍

版本升级 tcus

目录服务 tdir

显示服务器列表,繁忙程度(参照在线人数)。

游戏过程 world/scene

运营支持 GM平台/idip

1、硬件环境不同:
C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务。 B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备。 信息自己管理。 有比C/S更强的适应范围, 一般只要有 *** 作系统和浏览器就行。

2、对安全要求不同 :
C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强。 一般高度机密的信息系统采用C/S 结构适宜。 可以通过B/S发布部分可公开信息。
B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群。

3、对程序架构不同:
C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑。
B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上。 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的。Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统。 SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟。

4、软件重用不同:
C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好。
B/S 对的多重结构,要求构件相对独立的功能。 能够相对较好的重用。就入买来的餐桌可以再利用,而不是做在墙上的石头桌子

5、系统维护不同 :
系统维护是软件生存周期中,开销大。
C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级。 升级难。 可能是再做一个全新的系统
B/S 构件组成,方面构件个别的更换,实现系统的无缝升级。 系统维护开销减到最小。用户从网上自己下载安装就可以实现升级。

6、处理问题不同:
C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与 *** 作系统相关。 应该都是相同的系统
B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的。 与 *** 作系统平台关系最小。

7、用户接口不同
C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流。 并且大部分难度减低,减低开发成本。

Java框架可以简化开发难度,更便于我们开发程序。所以学好Java框架还是比较重要的。Java的框架主要有:SpringMVC、Spring、Mybatis、Dubbo、Maven、RabbitMQ、Log4j、Ehcache、Redis、Shiro。不过这十个我们不需要都学会,只要学会其中四五个比较常用的就可以。

1SpringMVC。Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,主要是帮助我们简化日常的Web开发;

2Mybatis。MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架;

3Spring。Spring深得企业的青睐;

4Maven。越来越多的开发人员开始使用maven。

扩展资料:

java的学习,可以按照优就业的java课程大纲进行学习:

一、JavaEE基础

Java基础语法、面向对象、核心类库、集合、异常、IO、线程、JDK新特性

二、JavaWeb开发

前端技术、数据库、JAVA数据库 *** 作、软件服务器及服务器相关技术、动态网页JSP、AJAX、优就业-在线医疗系统

三、Java高级框架

SpringMVC、MyBatis、Spring、MySQL高级、Linux&Redis&Nginx、Maven、中公MIS权限系统

四、大型微服务分布式项目实战

SpringBoot、SpringCloud、Git、Dubbo、Zookeeper、AngularJS、Spring Security、BCrypt加密、FastDFS、分布式事务处理、Redis Cluster、Solr、SolrCloud、Freemarker、JMS、短信发送平台、SSO解决方案、CORS、Twitter的Snowflake、SpringTask、Maven Profile、MongoDB简介、MyCat、Docker、Jenkins、东易买大型电商实战、东易众筹

五、微服务大型项目实战。

当我还在游戏行业时曾做过一个基于大世界的养成类游戏,这张是它的架构拓扑图。
虽然现在转到了互联网行业,但回过头来看,好多技术架构上的思路都是相通的。有些设计,在今天看来依然具备一定的参考价值。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10300595.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-07
下一篇2023-05-07

发表评论

登录后才能评论

评论列表(0条)

    保存