大型互联网相关技术_第1页
大型互联网相关技术_第2页
大型互联网相关技术_第3页
大型互联网相关技术_第4页
大型互联网相关技术_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大型互联网相关技术

目录网站架构发展历史负载均衡CDN分布式缓存分布式数据库服务化消息队列一、最开始的网站架构最初的架构,应用程序、数据库、文件都部署在一台服务器上二、应用、数据、文件分离随着业务的扩展,一台服务器已经不能满足性能需求,故将应用程序、数据库、文件各自部署在独立的服务器上,并且根据服务器的用途配置不同的硬件,达到最佳的性能效果。三、利用缓存改善网站性能使用缓存主要源于热点数据的存在,大部分网站访问都遵循28原则(即80%的访问请求,最终落在20%的数据上),所以我们可以对热点数据进行缓存,减少这些数据的访问路径,提高用户体验。四、使用集群改善应用服务器性能提高系统的吞吐量提高系统的高可用五、数据库读写分离和分库分表随着用户量的增加,数据库成为最大的瓶颈,改善数据库性能常用的手段是进行读写分离以及分库分表,读写分离顾名思义就是将数据库分为读库和写库,通过主备功能实现数据同步。分库分表则分为水平切分和垂直切分,水平切分则是对一个数据库特大的表进行拆分,例如用户表。垂直切分则是根据业务的不同来切分,如用户业务、商品业务相关的表放在不同的数据库中。六、使用CDN和反向代理提高网站性能七、使用分布式文件系统八、使用NoSql和搜索引擎九、搭建分布式服务(服务化)负载均衡应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理,并返回相应数据。提高系统的高可用和吞吐量。负载均衡设备:将用户访问的请求,根据负载均衡算法,分发到集群中的一台处理服务器。(一种把网络请求分散到一个服务器集群中的可用服务器上去的设备)负载均衡实现技术DNS轮询http重定向LVSDRIP隧道NAT七层(nginx)硬件DNS负载均衡缺点DNS并不能保证返回的地址均匀的落在每台服务器上。DNS服务器并不一定缓存了全部的服务器地址如果一台web服务器宕机,那DNS返回这个地址的请求全部失败。

每次变更服务器需要变更DNS,非常麻烦。DNS生效还需要一段时间。

DNS并不一定对服务器地址进行轮询返回。为了安全,web服务器部署在内网内,外部不能直接访问。大型网站总是部分使用DNS解析,作为第一级负载均衡。将DNS作为第一级负载均衡,A记录对应着内部负载均衡的IP地址,通过内部负载均衡将请求分发到真实的Web服务器上。DNS能根据地域返回就近的服务器地址。http重定向缺点:HTTP重定向服务器不能存在单点,最少需要两台才能高可用。那么HTTP重定向服务器也需要负载均衡设备。效率很低下当变更服务器集群的时候,需要通知到HTTP重定向服务器。不要使用这种方式进行负载均衡。LVS(NAT)负载均衡策略轮询将所有请求,依次分发到每台服务器上,适合服务器硬件同相同的场景。优点:服务器请求数目相同。缺点:服务器压力不一样,不适合服务器配置不同的情况。随机请求随机分配到各个服务器。

优点:使用简单。缺点:不适合机器配置不同的场景。最少链接将请求分配到连接数最少的服务器(目前处理请求最少的服务器)。优点:根据服务器当前的请求处理情况,动态分配。缺点:算法实现相对复杂,需要监控服务器请求连接数。负载均衡策略Hash(源地址散列)根据IP地址进行Hash计算,得到IP地址。优点:将来自同一IP地址的请求,同一会话期内,转发到相同的服务器;实现会话粘滞。缺点:目标服务器宕机后,会话会丢失。加权在轮询,随机,最少链接,Hash’等算法的基础上,通过加权的方式,进行负载服务器分配。优点:根据权重,调节转发服务器的请求数目。缺点:使用相对复杂。LVS(DR)LVS(TUN)硬件F5支持4层和7层负载均衡以及多种优化技术价格昂贵NginxNginx(“enginex”)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx使用更少的资源,支持更多的并发连接,体现更高的效率,能够支持高达50,000个并发连接数的响应。Nginx使用epollandkqueue作为开发模型。我们怎么用nginx?nginx处理静态资源,然后将动态资源交给tomcat进行处理。nginx作为方向代理服务器,nginx进行七层负载均衡。网络延迟带来的挑战假设别的国家连接中国的网络很慢,外国人访问含有大量图片的天猫网站,此时网页可能下载不到图片或者下载的速度很慢,怎么办?解决方案什么是CDN内容分发网络(CloudDeliveryNetwork,简称CDN)将源站内容分发至全国所有的节点,缩短用户查看对象的延迟,提高用户访问网站的响应速度与网站的可用性,解决网络带宽小、用户访问量大、网点分布不均等问题CDN原理-DNS解析过程CDN原理-DNS解析分布式缓存分布式缓存Server=key%3Key=1server=1Key=2server=2Key=3server=0Key=4server=1Key=5server=2Redis-0机器宕机Server=key%2Key=1server=1Key=2server=0(失效)Key=3server=1(失效)Key=4server=0(失效)Key=5server=1(失效)增加redis-3机器Server=key%4Key=1server=1Key=2server=2(失效)Key=3server=3(失效)Key=4server=0(失效)Key=5server=1(失效)分布式缓存-HASH一致性算法平衡性(Balance):

平衡性是指哈希的结果能够尽可能分布到所有的缓冲中去,这样可以使得所有的缓冲空间都得到利用。单调性(Monotonicity):

单调性是指如果已经有一些内容通过哈希分派到了相应的缓冲中,又有新的缓冲加入到系统中。

分散性(Spread):

在最终的结果是相同的内容被不同的终端映射到不同的缓冲区中。这种情况显然是应该避免的,因为它导致相同内容被存储到不同缓冲中去,降低了系统存储的效率。分散性的定义就是上述情况发生的严重程度。好的哈希算法应能够尽量避免不一致的情况发生,也就是尽量降低分散性。

负载(Load):

负载问题实际上是从另一个角度看待分散性问题。既然不同的终端可能将相同的内容映射到不同的缓冲区中,

那么对于一个特定的缓冲区而言,也可能被不同的用户映射为不同的内容。与分散性一样,这种情况也是应当避免的,因此好的哈希算法应能够尽量降低缓冲的负荷。HASH一致性算法数据库的挑战MYSQL在数据量达到千万级别数据的时候就会变慢,怎么办?数据库QPS,TPS较大,CPU跑满怎么办?解决办法1-主备库解决办法2-将一个库的表移到其他库解决办法3-分布式数据库分布式数据库使用要点insert一定要有分库分表字段select一定要缩小表的查找范围尽量使得数据均等的分散在各个数据的各个表上为什么需要服务化为什么需要服务化SOA-(Service-OrientedArchitecture)表达了一种软件架构概念,它定义为使用服务来满足软件用户的需求。在SOA环境中,系统上的节点以独立服务的形式将自己的资源开放给网络上其他参与者,其他参与者按一种标准的方式使用资源。与传统点对点架构不同,各种SOA都由松耦合、高度可互操作的应用服务构成。服务化webServiceRestFulEDASWebService的基本层次结构传输协议:

SMTP/HTTP等统一数据格式:

XML服务操作协议: SOAP服务描述协议:

WSDLSimple,Open,BroadIndustrySupport简单、开放、工业界广泛支持服务发布协议:

UDDIUDDI:UniversalDescriptionDiscoveryandIntegrationWSDL:WebServiceDescriptionLanguageSOAP:SimpleObjectAccessProtocol发布查询WebService提供者WebService使用者UDDI绑定InternetSOAPSOAPSOAPWebService是一种跨编程语言和跨操作系统平台的远程调用技术WSDL描述web服务的三个基本属性服务做些什么?服务所提供的操作(方法)。如何访问服务?数据格式以及访问服务操作的必要协议。服务位于何处?由特定协议决定的网络地址,如URL。Wsdl例子SOAP是什么?SOAP是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。SOAP利用XML技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。SOAP的概念最初来自于MicrosoftandUserlandsoftware,它已经演化了好几代;当前最新的规范是SOAP2.0。由W3C组织制定。SOAP消息结构SOAP请求<?xml

version='1.0'

?>

<soap:Envelope

xmlns:soap="/soap/envelope/">

<soap:Header>

...

</soap:Header>

<soap:Body>

<getCustomerAddress

xmlns="/xsd">

<customerID>12345678</customerID>

</getCustomerAddress

>

</soap:Body>

</soap:Envelope>

SOAP请求在HTTP上的传输POST/DEMOWebServices2.8/Service.asmxHTTP/1.1Host:Content-Type:application/soap+xml;charset=utf-8Content-Length:length<?xml

version='1.0'

?>

<soap:Envelope

xmlns:soap="/soap/envelope/">

<soap:Header>

...

</soap:Header>

<soap:Body>

<getCustomerAddress

xmlns="/xsd">

<customerID>12345678</customerID>

</getCustomerAddress

>

</soap:Body>

</soap:Envelope>

SOAP响应在HTTP上的传输HTTP/1.1200OKContent-Type:application/soap+xml;charset=utf-8Content-Length:length<?xml

version='1.0'

?>

<soap:Envelope

xmlns:soap="/soap/envelope/">

<soap:Header>

...

</soap:Header>

<soap:Body>

<getCustomerAddressResponse

xmlns="/xsd">

<address>

<street>Gaussstr.

29</street>

<city>Braunschweig</city>

<zipCode>D-38106</zipCode>

</address>

</getCustomerAddressResponse>

</soap:Body>

</soap:Envelope>

SOAP响应<?xml

version='1.0'

?>

<soap:Envelope

xmlns:soap="/soap/envelope/">

<soap:Header>

...

</soap:Header>

<soap:Body>

<getCustomerAddressResponse

xmlns="/xsd">

<address>

<street>Gaussstr.

29</street>

<city>Braunschweig</city>

<zipCode>D-38106</zipCode>

</address>

</getCustomerAddressResponse>

</soap:Body>

</soap:Envelope>

相关框架Axis2方式

支持多种语言,性能较低Xfire

和spring整合很方便ApcheCXF方式

是Xfire的升级版JDK开发webservice方式RESTFULRESTREST这个词,是RoyThomasFielding在他2000年的博士论文中提出的。

它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。资源(Resources)REST的名称"表现层状态转化"中,省略了主语。"表现层"其实指的是"资源"(Resources)的"表现层"。所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。表现层(Representation)“资源的表现形式(XML/JSON/HTML/二进制等)状态转化(StateTransfer)HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。EDAS企业级分布式应用服务(EDAS,EnterpriseDistributedApplicationService)是企业级互联网架构解决方案的核心产品,充分利用阿里云现有资源管理和服务体系,引入中间件成熟的整套分布式计算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论