和平精英为什么只需要一个服务器

和平精英为什么只需要一个服务器,第1张

暗黑破坏神不朽。500人的游戏服务器游戏有暗黑破坏神不朽。服务器(serer)指在网络环境中或在具有客户-服务器结构(参见客户-服务器计算)的分布式管理环境中,为客户的请求提供服务的节点计算机。

守望之海服务器在全球各地。根据相关信息查询显示,守望之海服务器分布在全球各地,包括美国、欧洲、亚洲等地区的多个城市。守望之海采用分布式服务器架构,这意味着不同地区的玩家可以连接到距离近的服务器,减少延迟和网络拥堵的影响,提高游戏的稳定性和流畅度。这也可保证全球玩家都能够体验到相同的游戏内容和服务质量。

分布式概念还是简单的吧,主要是理解为什么要分布式,和分布式主要做什么。
首先分布式的主要作用有以下几点:
1、提高应用的可用性:服务器要保持长时间能够有效的使用,但是现实情况又是很不稳定的,例如电脑会死机,会断电,硬件设备会损坏,使用分布式可以一定程度的解决这些问题。
2、分散服务器运行压力,这本身也是提高应用可用性的一个方面,例如你的应用功能很多,逻辑很复杂,或者 *** 作的数据量较大,单个应用或者机器难以甚至无法处理你的业务,那么就需要使用分布式。
分布式的概念其实也很简单,就是一个应用做不了或者难以做的事情,让多个应用去做,这就好比让一个人去完成的事情让多个人去完成,举个现实中很简单的例子,例如造车,造车这个工作本身一个造车厂可以完成这个任务,只是一个工厂造车,成本、技术、人员等等都会提高制作成本,而且因为技术过于驳杂,一个厂能造,但是成本和难度都会增加,但是拆分给多个厂来造车,例如一个厂造发动机,一个厂造底盘,一个厂造外壳,一个厂做电子仪表盘等等,把各个配件分散给不同的厂制作,这样每个厂专心做自己更专业的事情,这样既降低了成本,有提高了工作效率。
回到我们的web应用,一般来说,一个系统就是一个应用,系统里面有各种功能,例如学生信息管理系统,系统里面包含各种功能,例如用户登录和认证、权限配置和授权、学生信息的管理、学生的入学管理、学生的毕业管理、校友信息管理等等各种功能,但是当学生的数量特别多,内部业务逻辑特别复杂的时候,一个应用可能不能够承担起这个系统的正常运转,那么就可以考虑分布式,来使用多个应用完成这个系统的功能,例如做一个应用负责登录认证模块,一个应用处理授权的功能,另外一个应用处理学生信息的内容等等。
总结分布式,其实就是一个应用的事情让多个应用来解决,分布式是应用级别的分工,在一台机器的多个应用,我们叫垂直分布式,在多台机器上的分布式叫水平分布式,在一台机器的分布式实现起来比较简单,只需要实现应用之间的内存数据共享即可,内存数据共享方式很多,可以使用共享文件等等方式,多台机器的分布式就需要借助网络通信来共享数据,如果是通语言同技术的应用,可以直接共享内存数据,如果是不同语言的分布式应用,就需要参照一些通用传输协议的数据,例如xml json。

服务器是用来处理高并发的请求,同时能够满足扩展的业务逻辑的需求,最重要的是满足三点:并发性,稳定性,扩展性。
经历过两款上线游戏产品,见识到了游戏行业的杂乱无章,虽然和传统软件行业相比,少了那么些规范,但是对个人能力要求还真不比传统软件行业低。
今天开始,陆续利用业余时间将自己设计的一个服务器的框架贴出来,也会包好一些基本的代码,也会用到一些开源库。从最基础的讲起,首先看看一个实时网络游戏服务器的框架:

目前市面上的游戏,总的来说分为两类:
1弱联网类游戏,像手机上的卡牌类游戏(MT,Dota传奇等),大部分逻辑在客户端处理,不需要实时联网,这类游戏只有一个玩家,而且只有PVE模式,就是打游戏中的机器人(AI),不存在玩家与玩家的实时交互。例如一场副本打斗,只有在开始和结束,才会连接服务器,请求获取或者存储数据,打斗过程由客户端计算完成,最后将战斗结果提交服务器就行了。

2强联网类游戏,典型的就是MMORPG或者MMARPG的类型的游戏,一般常见于端游或者页游,也包含手游。在一个地图中,同时有很多玩家,任何一个玩家的状态或者属性发生变化,服务器就需要实时更新游戏中角色的状态,并且通知到周围的玩家。例如在副本中,一个玩家释放技能,攻击范围,伤害计算这些逻辑都是服务器来完成的,而客户端只需要负责特效的显示,这个过程中需要实时的数据交互。
显然,第2种,MMORPG类游戏需要服务器做更多的事情,对服务器的运算要求更高,实时性要求更高,自然实现起来更复杂。

一个大型的网落游戏服务器应该包含几个模块:网络通讯,业务逻辑,数据存储,守护监控(不是必须),其中业务逻辑可能根据具体需要,又划分为好几个子模块。
这里说的模块可以指一个进程,或者一个线程方式存在,本质上就是一些类的封装。

对于服务器的并发性,要么采用单进程多线程,要么采用多进程单线程的方式,说说两种方式的优缺点:

一、单进程多线程的服务器设计模式,只有一个进程,但一个进程包好多个线程:
网络通讯层,业务逻辑,数据存储,分别在独立的线程中,无守护进程。
优点:
1数据共享和交换方便,使用全局变量或者单例就可以,数据存储方便。
2单进程,服务器框架结构相对简单,编码容易。
缺点:
1所有功能只能在单个物理服务器上,不能做成分布式。
2不方便监控各个线程状态,容易死锁
3一个线程出错,例如内存非法访问,栈空间被破坏,那么服务器进程就退出,所有玩家掉线,影响大。

二、多进程单线程的服务器设计模式,多个进程,每个进程只有一个线程:
网路通讯,业务逻辑,数据存储,守护进程,分别在不同的进程。
优点:
1各个进程可以分布在不同的物理服务器上,可以做成分布式的服务器框架,例如可以将数据存储单独放到一个物理服务器上,供几个区的服务器使用。将网络通讯进程独立出来,甚至可以做成导向服务器,实现跨服战。
2可以通过守护进程监控其它进程状态,例如有进程死掉,马上重启该进程,或者某个进程cpu使用率接近100%(基本可以判断是某个逻辑死循环了), 强制kill掉该进程,然后重启。
3单个服务器进程异常退出,只要不是网络通讯进程(一般这个都会比较稳定,没什么逻辑),那么就可以及时被守护进程重启,不会造成玩家掉线,只会造成在1-2秒内,某个逻辑功能无法使用,甚至玩家都感觉不到。
4服务器通过共享内存进行数据交换,那么如果其中一个服务器死掉,数据还在,可以保护用户数据(当然多线程也可以使用共享内存)。
5并发性相对多线程要高点。
缺点:
1不方便使用互斥锁,因为进程切换的时间片远远于线程切换,对于一个高并发服务器是无法允许这么高时间片的切换代价的。因此必须设计好服务器的框架,尽量避开使用锁机制,但要保证数据不出错。
2多进程编程,在各个进程间会有很多通讯,跨服务器进程的异步消息较多,会让服务器的编码难度加大。

国内的高性能服务器主要有研祥,浪潮,亿万克等。感兴趣的话点击此处,免费了解一下

高性能计算机群主要解决大规模科学问题的计算和海量数据的处理,如科学研究、气象预报、计算模拟、军事研究、CFD/CAE、生物制药、基因测序、图像处理等等。信息服务机群的应用范围很广,包括如数据中心、电子政务、电子图书馆、大中型网站、网络游戏、金融电信服务、城域网/校园网、大型邮件系统、VOD、管理信息系统等等。就其实现方式上分,还可以分为负载均衡机群、高可用机群等。

亿万克亚当R522N3是一款基于Intel C600系列开发的服务器,拥有超强的处理性能及灵活的RAID配置方案,实现性能、密度、扩展性最大化设计,在足量的整机性能与经济实惠之间实现优良的平衡,适用于企业虚拟化、分布式存储、云计算大数据、VDI及深度学习等应用领域。


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

原文地址: https://outofmemory.cn/zz/13243047.html

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

发表评论

登录后才能评论

评论列表(0条)

保存