一般个人所使用的电脑,只需要服务一个使用者的需求就够了,但是服务器却必须服务所有人,服务器必须在或者很短的时间内,容纳来自四面八方的工作要求,并且要马上回覆结果、送出答案,这是一般个人电脑所做不到的。
因此,服务器的最大特点,就是运算能力须非常强大,在短时间内就要完成所有运算工作,即使是一部简单的服务器系统,至少就要有两颗中央处理器同时工作。
服务器也是一种高性能计算机,作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。做一个形象的比喻:服务器就像是邮局的交换机,而微机、笔记本、PDA、手机等固定或移动的网络终端,就如散落在家庭、各种办公场所、公共场所等处的电话机。我们与外界日常的生活、工作中的电话交流、沟通,必须经过交换机,才能到达目标电话;同样如此,网络终端设备如家庭、企业中的微机上网,获取资讯,与外界沟通、娱乐等,也必须经过服务器,因此也可以说是服务器在“组织”和“领导”这些设备。
它是网络上一种为客户端计算机提供各种服务的高性能的计算机,它在网络 *** 作系统的控制下,将与其相连的硬盘、磁带、打印机、Modem及各种专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发表及数据管理等服务。它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。
服务器的构成与微机基本相似,有处理器、硬盘、内存、系统总线等,它们是针对具体的网络应用特别制定的,因而服务器与微机在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在差异很大。尤其是随着信息技术的进步,网络的作用越来越明显,对自己信息系统的数据处理能力、安全性等的要求也越来越高,如果您在进行电子商务的过程中被黑客窃走密码、损失关键商业数据;如果您在自动取款机上不能正常的存取,您应该考虑在这些设备系统的幕后指挥者————服务器,而不是埋怨工作人员的素质和其他客观条件的限制。
此外,服务器对外连接的设备也是重量级的,以Xeon™等级的服务器而言,网路频宽已发展到Gigabit Ethernet,是个人电脑的一百倍;SCSI连结也是标准配备,这也是个人电脑少有的规格;而服务器更厉害的,就是可以连结磁碟阵列系统(RAID),一口气可以串接八颗以上的大容量硬碟,这些配备都是个人电脑所望尘莫及,高成本的设备都是为多人的工作所设计预备的。
服务器也不是样样规格都胜过一般个人电脑,服务器的特点是拥有强大运算能力以立即处理大量资讯,并藉著昂贵周边设备一起工作;但是服务器的影像处理能力就不需要很强,许多系统管理者只需要类似DOS的介面软体来 *** 作就可以了;另外服务器也不太需要USB来上下载一些个人化产品的资讯,所以对USB的支援也不是很强。
目前,按照体系架构来区分,服务器主要分为两类:ISC(精简指令集)架构服务器:这是使用RISC芯片并且主要采用UNIX *** 作系统的服务器,如Sun公司的SPARC、HP公司的PA-RISC、DEC的Alpha芯片、SGI公司的MIPS等。
IA架构服务器:又称CISC(复杂指令集)架构服务器,即通常所讲的PC服务器,它是基于PC机体系结构,使用Intel或与其兼容的处理器芯片的服务器,如联想的万全系列、HP的Netserver系列服务器等。
从当前的网络发展状况看,以“小、巧、稳”为特点的IA架构的PC服务器得到了更为广泛的应用。
参考资料:
随着互联网技术的不断发展,我们在进行服务器开发方面也掌握了很多的开发部署技术。今天,昌平镇IT培训就给大家简单来介绍一下,都有哪些服务器开发部署方法是值得我们使用的。
停机部署
停机部署其实是简单粗暴的方式,就是简单地把现有版本的服务停机,然后部署新的版本。在一些时候,我们必需使用这样的方式来部署或升级多个服务。比如,新版本中的服务使用到了和老版本完全不兼容的数据表的设计。这个时候,我们对生产有两个变更,一个是数据库,另一个是服务,而且新老版本互不兼容,所以只能使用停机部署的方式。
这种方式的优势是,在部署过程中不会出现新老版本同时在线的情况,所有状态完全一致。停机部署主要是为了新版本的一致性问题。
这种方式不好的问题就是会停机,对用户的影响会很大。所以,一般来说,这种部署方式需要事前挂公告,选择一个用户访问少的时间段来做。
蓝绿部署
蓝绿部署与停机部署大的不同是,其在生产线上部署相同数量的新的服务,然后当新的服务测试确认OK后,把流量切到新的服务这边来。蓝绿部署比停机部署好的地方是,它无需停机。
我们可以看到这种部署方式,就是我们说的预发环境。在我以前的金融公司里,也经常用这种方式,生产线上有两套相同的集群,一套是Prod是真实服务的,另一套是Stage是预发环境,发布发Stage,然后把流量切到Stage这边,于是Stage就成了Prod,而之前的Prod则成了Stage。有点像换页似的。
这种方式的优点是没有停机,实时发布和升级,也避免有新旧版本同时在线的问题。但这种部署的问题就是有点浪费,因为需要使用双倍的资源(不过,这只是在物理机时代,在云计算时代没事,因为虚拟机部署完就可以释放了)。
另外,如果我们的服务中有状态,比如一些缓存什么的,停机部署和蓝绿部署都会有问题。
滚动部署
滚动部署策略是指通过逐个替换应用的所有实例,来缓慢发布应用的一个新版本。通常过程如下:在负载调度后有个版本A的应用实例池,一个版本B的实例部署成功,可以响应请求时,该实例被加入到池中。然后,版本A的一个实例从池中删除并下线。
这种部署方式直接对现有的服务进行升级,虽然便于 *** 作,而且在缓慢地更新的过程中,对于有状态的服务也是比较友好的,状态可以在更新中慢慢重建起来。但是,这种部署的问题也是比较多的。
在发布过程中,会出现新老两个版本同时在线的情况,同一用户的请求可能在新老版中切换而导致问题。
服务器所用到的知识:TCP/UDP,最基本的;
并发——你可以选择使用select、poll,或者是多线程、多进程:如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并;
如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题;
你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题
你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性;
还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解。
推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。
云服务器云计算计算具体来说又运用了许多技术方案,比如虚拟化技术、分布式存储、数据管理技术、编程模型、云计算平台管理、能耗管理技术等。虚拟化技术
虚拟化是云计算最重要的核心技术之一,它为云计算服务提供基础架构层面的支撑。从技术上讲,虚拟化是一种在软件中仿真计算机硬件,以虚拟资源为用户提供服务的计算形式。旨在合理调配计算机资源,使其更高效地提供服务。
它把应用系统各硬件间的物理划分打破,从而实现架构的动态化,实现物理资源的集中管理和使用。虚拟化的最大好处是,增强系统的d性和灵活性,降低成本、改进服务、提高服务器资源利用效率。
分布式数据存储
为保证高可用性、高可靠性和经济性,云计算服务器采用分布式存储的方式来存储数据,采用冗余存储的方式来保证存储数据的可靠性,即为同一份数据存储多个副本。由于云计算系统需要同时满足大量用户的需求,并为大量用户提供服务,因此,云计算的数据存储技术必须具有高吞吐率和高传输率的特点。
分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了云主机系统的可靠性、可用性和存取效率,还易于扩展。
数据管理技术
处理海量数据是云计算的一大优势。由于云计算需要对海量的分布式数据进行处理、分析,因此,数据管理技术必需能够高效的管理大量数据。
在当前:
1、游戏服务器端主要是数据库管理和TCP通信(加密),用以实现它们的,最主要的几种语言是微软的C语言系和Borland公司(当前其开发语言的子公司被EmbarcaderoTechnologies公司收购,这是题外话)的Delphi与BuilderC++。
2、事实上,由于Delphi与BuilderC++的开发快捷易懂,且与MSSQL或Oracle数据库都能非常好的相容,所以,大多数游戏服务器端使用的是Delphi开发。
3、游戏服务器端的开发,技术难度其实可能并不大,大的是并发的处理、系统资源的利用(同时在线能力),以及合理的数据表、情节安排、防黑防漏洞处理等。
4、相对来说,游戏客户端设计在动画技术、安全技术方面要难得多。
5、在当前,典型的游戏服务端都使用三层结构:游戏客户端与服务器端通信,服务器端再与数据库服务端通信。
服务器语言开发一般用Delphi、C++、net、java、php、python等这几种。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)