服务器三大框架?
从系统架构来看,目前的商用服务器大体可以分为三类,即对称多处理器结构(SMP:SymmetricMulti-Processor),非一致存储访问结构(NUMA:Non-UniformMemoryAccess),以及海量并行处理结构(MPP:MassiveParallelProcessing)。
一、SMP(SymmetricMulti-Processor)
所谓对称多处理器结构,是指服务器中多个CPU对称工作,无主次或从属关系。各CPU共享相同的物理内存,每个CPU访问内存中的任何地址所需时间是相同的,因此SMP也被称为一致存储器访问结构(UMA:UniformMemoryAccess)。对SMP服务器进行扩展的方式包括增加内存、使用更快的CPU、增加CPU、扩充I/O(槽口数与总线数)以及添加更多的外部设备(通常是磁盘存储)。
SMP服务器的主要特征是共享,系统中所有资源(CPU、内存、I/O等)都是共享的。也正是由于这种特征,导致了SMP服务器的主要问题,那就是它的扩展能力非常有限。对于SMP服务器而言,每一个共享的环节都可能造成SMP服务器扩展时的瓶颈,而最受限制的则是内存。由于每个CPU必须通过相同的内存总线访问相同的内存资源,因此随着CPU数量的增加,内存访问冲突将迅速增加,最终会造成CPU资源的浪费,使CPU性能的有效性大大降低。实验证明,SMP服务器CPU利用率最好的情况是2至4个CPU。
二、NUMA(Non-UniformMemoryAccess)
由于SMP在扩展能力上的限制,人们开始探究如何进行有效地扩展从而构建大型系统的技术,NUMA就是这种努力下的结果之一。利用NUMA技术,可以把几十个CPU(甚至上百个CPU)组合在一个服务器内。
NUMA服务器的基本特征是具有多个CPU模块,每个CPU模块由多个CPU(如4个)组成,并且具有独立的本地内存、I/O槽口等。由于其节点之间可以通过互联模块(如称为CrossbarSwitch)进行连接和信息交互,因此每个CPU可以访问整个系统的内存(这是NUMA系统与MPP系统的重要差别)。显然,访问本地内存的速度将远远高于访问远地内存(系统内其它节点的内存)的速度,这也是非一致存储访问NUMA的由来。由于这个特点,为了更好地发挥系统性能,开发应用程序时需要尽量减少不同CPU模块之间的信息交互。利用NUMA技术,可以较好地解决原来SMP系统的扩展问题,在一个物理服务器内可以支持上百个CPU。比较典型的NUMA服务器的例子包括HP的Superdome、SUN15K、IBMp690等。
但NUMA技术同样有一定缺陷,由于访问远地内存的延时远远超过本地内存,因此当CPU数量增加时,系统性能无法线性增加。如HP公司发布Superdome服务器时,曾公布了它与HP其它UNIX服务器的相对性能值,结果发现,64路CPU的Superdome(NUMA结构)的相对性能值是20,而8路N4000(共享的SMP结构)的相对性能值是63。从这个结果可以看到,8倍数量的CPU换来的只是3倍性能的提升。
三、MPP(MassiveParallelProcessing)
和NUMA不同,MPP提供了另外一种进行系统扩展的方式,它由多个SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。其基本特征是由多个SMP服务器(每个SMP服务器称节点)通过节点互联网络连接而成,每个节点只访问自己的本地资源(内存、存储等),是一种完全无共享(ShareNothing)结构,因而扩展能力最好,理论上其扩展无限制,目前的技术可实现512个节点互联,数千个CPU。目前业界对节点互联网络暂无标准,如NCR的Bynet,IBM的SPSwitch,它们都采用了不同的内部实现机制。但节点互联网仅供MPP服务器内部使用,对用户而言是透明的。
在MPP系统中,每个SMP节点也可以运行自己的操作系统、数据库等。但和NUMA不同的是,它不存在异地内存访问的问题。换言之,每个节点内的CPU不能访问另一个节点的内存。节点之间的信息交互是通过节点互联网络实现的,这个过程一般称为数据重分配(DataRedistribution)。
但是MPP服务器需要一种复杂的机制来调度和平衡各个节点的负载和并行处理过程。目前一些基于MPP技术的服务器往往通过系统级软件(如数据库)来屏蔽这种复杂性。举例来说,NCR的Teradata就是基于MPP技术的一个关系数据库软件,基于此数据库来开发应用时,不管后台服务器由多少个节点组成,开发人员所面对的都是同一个数据库系统,而不需要考虑如何调度其中某几个节点的负载。
一、区别:
1、含义不同:
B是英文单词“Browser”的首字母,即浏览器的意思;S是英文单词“Server”的首字母,即服务器的意思。B/S就是“Browser/Server”的缩写,即“浏览器/服务器”模式。
C是英文单词“Client”的首字母,即客户端的意思,C/S就是“Client/Server”的缩写,即“客户端/服务器”模式。
2、硬件环境不同:
C/S通常是建立在专用的网络上,小范围的网络环境。而B/S是建立在广域网上的,适应范围强,通常有操作系统和浏览器就行;C/结构比B/S结构更安全,因为用户群相对固定,对信息的保护更强;B/S结构维护升级比较简单,而C/S结构维护升级相对困难。
3、结构不同:
B/S结构是随着互联网的发展,web出现后兴起的一种网络结构模式。这种模式统一了客户端,让核心的业务处理在服务端完成。
C/S结构是一种软件系统体系结构,也是生活中很常见的。这种结构是将需要处理的业务合理地分配到客户端和服务器端,这样可以大大降低通信成本,但是升级维护相对困难。
二、联系:
B/S结构可以在任何地方进行操作而不用安装任何专门的软件。B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。
只要有一台能上网的电脑就能使用,客户端零维护。而且系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。
以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即浏览器/服务器结构。它是C/S架构的一种改进,可以说属于三层C/S架构。主要是利用了不断成熟的WWW浏览器技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
初始阶段的网站架构
大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来,小型网站最开始没有太多人访问,只需要一台服务器就绰绰有余,这时的网站架构如图。
应用程序,数据库,文件等所有的资源都在一台服务器上。通常服务器操作系统使用Linux,应用程序使用PHP开发,然后部署在Apache上,数据库使用MySql,汇集各种开源软件及一台廉价服务器就可以开始网站的发展之路了。
应用服务和数据服务分离
随着网站业务的发展,一台服务器逐渐不能满足需求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足,这时就需要将应用和数据分离,应用和数据分离后整个网站使用三台服务器:应用服务器,文件服务器和数据库服务器,如下图所示,这三台服务器对硬件资源的要求各不相同,应用服务器需要处理大量的业务逻辑,因此需要更快更强大的CPU,数据库服务器需要快速磁盘检索和数据缓存,因此需要更快的硬盘和更大的内存,文件服务器需要储存大量用户上传的文件,因此需要更大的硬盘。
应用和数据分离后,不同特性的服务器承担不同的服务角色,网站的并发处理能力和数据存储空间得到了很大改善,支持网站业务进一步发展,但是随着用户逐渐增多,网站又一次面临挑战:数据库压力太大导致访问延迟,进而影响整个网站的性能,用户体验受到影响,这时需要对网站架构进一步优化。
使用缓存改善网站性能
网站访问特点和现实世界的财富分配一样遵循二八定律:80%的业务访问集中在20%的数据上。淘宝买家浏览的商品集中在少部分成交数多、评价良好的商品上;百度搜索关键词集中在少部分热门词汇上;经常登录的用户才会发微博、看微博,而这部分用户也只占总用户数目的一小部分。
既然大部分的业务访问集中在,那么如果把这一小部分数据缓存在内存中,就可以减少数据库的访问压力。网站使用的缓存分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存。本地缓存的访问速度更快一些,但是受应用服务器内存限制,其缓存数量有限,而且会出现和应用程序争用内存的情况。远程分布式可以使用集群的方式,部署大内存的服务器作为专门的缓存服务器,可以在理论上做到不受内存容量限制的缓存服务。
使用缓存后,数据访问压力得到有效缓解,但是单一应用服务器能够处理的请求连接有限,在网站的访问高峰期,应用服务器会成为整个网站的瓶颈。
使用应用服务器集群改善网站的并发处理能力
使用集群是网站解决高并发,海量问题的常用手段,当一台服务器的处理能力、储存空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求,这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问及存储压力。
对网站而言,只要能通过一台服务器的方式改善负载压力,就可以以同样的方式持续增加服务器不断改善系统性能,从而实现系统的可伸缩性,应用服务器实现集群是网站可伸缩集群架构设计中较为简单成熟的一种。如下图所示。
通过负载均衡调度服务器,可将来自用户浏览器的请求分发到应用服务器集群中的任何一台服务器上,如果有更多的用户,就在集群中加入更多的应用服务器,使应用服务器的负载压力不在成为网站的瓶颈。
数据库读写分离
网站使用缓存后,大部分数据操作访问都可以不通过数据库就能完成,但是仍有一部分读操作,(缓存访问不命中、缓存过期)和全部的写操作,需要访问数据库,在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。
目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。网站利用数据库的这一功能,实现数据库读写分离,从而改善数据库负载压力。
应用服务器在写数据的时候,访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库,这样当应用服务器读数据的时候,就可以通过从数据库或得数据。为了便于应用程序访问读写分离后的数据库,通常在应用服务器端使用专门的数据访问模块,使数据库读写分离时对应用透明。
使用反向代理和CDN加速网站响应
CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,是用户在请求网站服务时,可以从距离自己最近的网路提供商机房获取数据;而反向代理则部署在网站的中心机房,当用户请求到达中心机房后,首先访问的服务器是反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就将其直接给用户。
使用分布式文件系统和分布式数据库系统
分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常庞大的时候才使用,不到万不得以时,网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同的物理服务器上。
使用NOSQL和搜索引擎
对于海量数据的查询,我们使用nosql数据库加上搜索引擎可以达到更好的性能。并不是所有的数据都要放在关系型数据中。常用的NOSQL有mongodb和redis,搜索引擎有lucene。
业务拆分
随着业务进一步扩展,应用程序变得非常臃肿,这时我们需要将应用程序进行业务拆分,如百度分为新闻、网页、等业务。每个业务应用负责相对独立的业务运作。业务之间通过消息进行通信或者同享数据库来实现
分布式服务
这时我们发现各个业务应用都会使用到一些基本的业务服务,例如用户服务、订单服务、支付服务、安全服务,这些服务是支撑各业务应用的基本要素。我们将这些服务抽取出来利用分部式服务框架搭建分布式服务。淘宝的Dubbo是一个不错的选择
现在越来越多的网站要求架构ipv6,特别是一些政务性的网站,上级直接要求必须架构ipv6。
后续会持续干货输出,谢谢大家了。
(一)下面我们先来了解什么是ipv6
IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址 。
由于IPv4最大的问题在于网络地址资源不足,严重制约了互联网的应用和发展。 IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍 。
IPv6为128位二进位制,为方便表示规定以16位二进制为一组,每组以冒号”:”隔开,可以分为8组,每组以4位十六进制方式表示。 16位二进制 8 128位二进制 1111 1111 1111 1111:: 4位十六进制 8 32位十六进制 1 1 1 1:: 如果几个连续段位的值都是0,那么这些0就可以简单地以::来表示,在一个IPv6地址中只能用一次。
(二)下面以centos7为例
当然这个ipv6架构的前提,是你服务器有提供ipv6的地址,这个往往可以联系服务器的提供商进行获取。
1、IP配置:
其配置信息如下
2、配置DNS:
其配置信息如下:
3、 重启网卡
(三)网站域名添加IPv6解析记录
请将根域名涉及IPv6转换的主机名添加ipv6类型记录至分配的IPv6地址
比如带www的域名,wwwtestcom需进行IPv6转换,则添加一条主机名为 www 的 AAAA 记录类型。
(四)如何测试网站已支持ipv6
1、使用命令: ping -6 IPV6 地址。
注意若要测试ping IPV6是否正常,服务端和客户端都必须支持并正确配置了IPV6地址。
2、国家IPv6发展检测平台
地址: https://wwwchina-ipv6cn/#/checkTools 可以进行检测是否支持ipv6。
云服务器是基于规模化的物理服务器集群,每个集群节点被部署在骨干数据中心,可独立提供计算、存储、带宽等互联网基础设施服务。
小鸟云服务器配备纯SSD架构打造的高性能存储,提供优质、高效、弹性伸缩的云计算服务。同时可弹性扩展的资源用量,最大程度的节省IT运营成本,提高资源的有效利用率。
云服务器的物理架构,由存储服务器集群、计算服务器集群、基础架构管理服务器和网络交换机组成。其中,存储服务器集群构建虚拟资源池,具备超大容量,为节点内的云虚拟机提供逻辑磁盘存储、非结构数据存储以及整合备份服务;计算服务器集群,通过虚拟化技术整合,由控制平台按需生成、调配计算资源;管理服务器,采取双机热备的方式,对整个节点的所有计算服务器、共享存储、网络进行管理,同时对外提供管理整个节点的API;网络交换机,负责管理网段、公网交换网段、内部交换网段、存储网段等。
网络架构是进行通信连接的一种网络结构。
网络架构是为设计、构建和管理一个通信网络提供一个构架和技术基础的蓝图。网络构架定义了数据网络通信系统的每个方面,包括但不限于用户使用的接口类型、使用的网络协议和可能使用的网络布线的类型。
网络架构典型的有一个分层结构。分层是一种现代的网络设计原理,它将通信任务划分成很多更小的部分,每个部分完成一个特定的子任务和用小数量良好定义的方式与其它部分相结合。
扩展资料:
使用网络架构注意事项:
1、动态多路径
能够通过多个WAN链路对流量进行负载均衡并不是一项新功能。但是,在传统的WAN中,此功能很难配置,并且通常以静态方式将流量分配给给定的WAN链路。即使面对诸如拥塞链路之类的负面拥塞,也不能改变给定WAN链路的流量分配。
2、应用程序级别
如果应用程序的性能开始下降,因为该应用程序使用的托管虚拟化网络功能(VNF)的物理服务器的CPU利用率过高,则VNF可能会移动到利用率较低的服务器中。
3、能见度
有许多工具声称可以为网络组织提供对传统WAN的完全可见性,以便解决与网络和/或应用程序性能相关的问题。但是,无论是这些工具的缺陷还是网络组织使用的故障排除流程,采用新的WAN架构将使故障排除任务变得更加复杂。
:LTE网络架构
C/S结构,即Client/Server (客户机/服务器) 结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。
B/S结构,即Browser/Server (浏览器/服务器) 结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现。
0条评论