版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Transition Page过渡页1 大型互联网相关技术目录网站架构发展历史负载均衡CDN分布式缓存分布式数据库服务化消息队列一、最开始的网站架构一、最开始的网站架构 最初的架构,应用程序、数据库、文件都部署在一台服务器上最初的架构,应用程序、数据库、文件都部署在一台服务器上二、应用、数据、文件分离二、应用、数据、文件分离 随着随着业务的扩展,一台服务器已经不能满足性能需求,故将应用程序、数业务的扩展,一台服务器已经不能满足性能需求,故将应用程序、数据库、文件各自部署在独立的服务器上,并且根据服务器的用途配置不同据库、文件各自部署在独立的服务器上,并且根据服务器的用途配置不同的硬件,达到最佳
2、的性能效果。的硬件,达到最佳的性能效果。三、利用缓存改善网站性能三、利用缓存改善网站性能 使用使用缓存主要源于热点缓存主要源于热点数据的存在,大部分网数据的存在,大部分网站访问都遵循站访问都遵循28原则原则(即(即80%的访问请求,最的访问请求,最终落在终落在20%的数据上),的数据上),所以我们可以对热点数所以我们可以对热点数据进行缓存,减少这些据进行缓存,减少这些数据的访问路径,提高数据的访问路径,提高用户体验。用户体验。四、使用集群改善应用服务器性能四、使用集群改善应用服务器性能 提高系统的吞吐量提高系统的吞吐量 提高系统的高可用提高系统的高可用五、数据库读写分离和分库分表五、数据库读写
3、分离和分库分表 随着随着用户量的增加,数据用户量的增加,数据库成为最大的瓶颈,改善库成为最大的瓶颈,改善数据库性能常用的手段是数据库性能常用的手段是进行读写分离以及分库分进行读写分离以及分库分表,读写分离顾名思义就表,读写分离顾名思义就是将数据库分为读库和写是将数据库分为读库和写库,通过主备功能实现数库,通过主备功能实现数据同步。分库分表则分为据同步。分库分表则分为水平切分和垂直切分,水水平切分和垂直切分,水平切分则是对一个数据库平切分则是对一个数据库特大的表进行拆分,例如特大的表进行拆分,例如用户表。垂直切分则是根用户表。垂直切分则是根据业务的不同来切分,如据业务的不同来切分,如用户业务、商
4、品业务相关用户业务、商品业务相关的表放在不同的数据库中。的表放在不同的数据库中。六、使用六、使用CDN和反向代理提高网站性能和反向代理提高网站性能七、使用分布式文件系统七、使用分布式文件系统八、使用八、使用NoSql和搜索引擎和搜索引擎九九、搭建分布式搭建分布式服务(服务化)服务(服务化)负载均衡 应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理,并返回相应数据。提高系统的高可用和吞吐量。 负载均衡设备:将用户访问的请求,根据负载均衡算法,分发到集群中的一台处理服务器。(一种把网络请求分散到一个服务器集群中的可用服务器上去的设备)负载均衡实现技术DNS轮
5、询http重定向LVSDRIP隧道NAT七层(nginx)硬件DNS负载负载均衡均衡缺点缺点 DNS并不能保证返回的地址均匀的落在每台服务器上。并不能保证返回的地址均匀的落在每台服务器上。 DNS服务器并不一定缓存了全部的服务器地址服务器并不一定缓存了全部的服务器地址 如果如果一台一台web服务器宕机,那服务器宕机,那DNS返回这个地址的请求全返回这个地址的请求全部部失败。失败。 每次每次变更服务器需要变更变更服务器需要变更DNS,非常麻烦。,非常麻烦。DNS生效还需生效还需要一段要一段时间。时间。 DNS并不一定对服务器地址进行轮询并不一定对服务器地址进行轮询返回。返回。 为了为了安全,安全
6、,web服务器部署在内网内,外部不能直接访问。服务器部署在内网内,外部不能直接访问。 大型大型网站总是部分使用网站总是部分使用DNS解析,作为第一级负载均衡。解析,作为第一级负载均衡。 将将DNS作为第一级负载均衡,作为第一级负载均衡,A记录对应着内部负载均衡的记录对应着内部负载均衡的IP地址,通过内部负载地址,通过内部负载均衡将请求分发到真实的均衡将请求分发到真实的Web服务器上。服务器上。 DNS能根据地域返回就近的服务器地址。能根据地域返回就近的服务器地址。http重定向缺点:缺点:HTTP重定向服务器不能存重定向服务器不能存在单点,最少需要两台才在单点,最少需要两台才能高可用。那么能高
7、可用。那么HTTP重定重定向服务器也需要向服务器也需要负载均衡负载均衡设备。设备。效率效率很低下很低下当当变更服务器集群的时候,变更服务器集群的时候,需要通知到需要通知到HTTP重定向服重定向服务器。务器。不要使用这种方式进行负载不要使用这种方式进行负载均衡均衡。LVS(NAT)负载均衡策略 轮询轮询将所有请求,依次分发到每台服务器上,适合服务器硬件同相同的场景。将所有请求,依次分发到每台服务器上,适合服务器硬件同相同的场景。优点:服务器请求数目优点:服务器请求数目相同。相同。缺点:服务器压力不一样,不适合服务器配置不同的缺点:服务器压力不一样,不适合服务器配置不同的情况。情况。 随机随机请求
8、随机分配到各个服务器。请求随机分配到各个服务器。优点:使用优点:使用简单。简单。缺点缺点:不适合机器配置不同的:不适合机器配置不同的场景。场景。 最少最少链接链接将请求分配到连接数最少的服务器(目前处理请求最少的服务器)。将请求分配到连接数最少的服务器(目前处理请求最少的服务器)。优点:根据服务器当前的请求处理情况,优点:根据服务器当前的请求处理情况,动态分配。动态分配。缺点:算法实现相对复杂,需要监控服务器请求连接缺点:算法实现相对复杂,需要监控服务器请求连接数。数。负载均衡策略 Hash(源地址散列)(源地址散列)根据根据IP地址进行地址进行Hash计算,得到计算,得到IP地址。地址。优点
9、:将来自同一优点:将来自同一IP地址的请求,同一会话期内,转发到相同的服务器;实地址的请求,同一会话期内,转发到相同的服务器;实现会话粘滞。现会话粘滞。缺点:目标服务器宕机后,会话会缺点:目标服务器宕机后,会话会丢失。丢失。 加权加权在轮询,随机,最少链接,在轮询,随机,最少链接,Hash等算法的基础上,通过加权的方式,进行负等算法的基础上,通过加权的方式,进行负载服务器分配。载服务器分配。优点:根据权重,调节转发服务器的请求优点:根据权重,调节转发服务器的请求数目。数目。缺点:使用相对缺点:使用相对复杂。复杂。LVS(DR)LVS(TUN)硬件F5支持4层和7层负载均衡以及多种优化技术价格昂
10、贵Nginx Nginx(“engine x”) 是一个是一个高性能的高性能的HTTP和反向代理和反向代理服务器,也是一个服务器,也是一个IMAP/POP3/SMTP服务器。服务器。 Nginx使用更少的资源,支使用更少的资源,支持更多的并发连接,体现持更多的并发连接,体现更高的效率,能够支持高更高的效率,能够支持高达达 50,000个并发连接数的个并发连接数的响应。响应。Nginx使用使用epoll and kqueue 作为开发模型。作为开发模型。我们怎么用我们怎么用nginx?nginx处理静态资源,然后处理静态资源,然后将动态资源交给将动态资源交给tomcat进进行处理。行处理。ngi
11、nx作为方向代理服务器,作为方向代理服务器,nginx进行进行七层七层负载负载均衡。均衡。网络延迟带来的挑战假设别的国家连接中国的网络很慢,外国人访问含有大量图片的天猫网站,此时网页可能下载不到图片或者下载的速度很慢,怎么办?解决方案什么是CDN 内容分发网络(Cloud Delivery Network,简称 CDN)将源站内容分发至全国所有的节点,缩短用户查看对象的延迟,提高用户访问网站的响应速度与网站的可用性,解决网络带宽小、用户访问量大、网点分布不均等问题CDN原理-DNS解析过程CDN原理-DNS解析分布式缓存分布式缓存Server=key%3Key=1 server=1Key=2
12、server=2Key=3 server=0Key=4 server=1Key=5 server=2Redis-0机器宕机Server=key%2Key=1 server=1Key=2 server=0 (失效)Key=3 server=1 (失效)Key=4 server=0 (失效)Key=5 server=1 (失效) 增加redis-3机器Server=key%4Key=1 server=1Key=2 server=2 (失效)Key=3 server=3 (失效)Key=4 server=0 (失效)Key=5 server=1 (失效)分布式缓存-HASH一致性算法 平衡性(Bal
13、ance): 平衡性是指哈希的结果能够尽可能分布到所有的缓冲中去,这样可以使得所有的缓冲空间都得到利用。 单调性(Monotonicity): 单调性是指如果已经有一些内容通过哈希分派到了相应的缓冲中,又有新的缓冲加入到系统中。 分散性(Spread): 在最终的结果是相同的内容被不同的终端映射到不同的缓冲区中。这种情况显然是应该避免的,因为它导致相同内容被存储到不同缓冲中去,降低了系统存储的效率。分散性的定义就是上述情况发生的严重程度。好的哈希算法应能够尽量避免不一致的情况发生,也就是尽量降低分散性。 负载(Load): 负载问题实际上是从另一个角度看待分散性问题。既然不同的终端可能将相同的
14、内容映射到不同的缓冲区中, 那么对于一个特定的缓冲区而言,也可能被不同的用户映射为不同 的内容。与分散性一样,这种情况也是应当避免的,因此好的哈希算法应能够尽量降低缓冲的负荷。HASH一致性算法数据库的挑战MYSQL在数据量达到千万级别数据的时候就会变慢,怎么办?数据库QPS,TPS较大,CPU跑满怎么办?解决办法1-主备库解决办法2-将一个库的表移到其他库解决办法3-分布式数据库分布式数据库使用要点insert一定要有分库分表字段select一定要缩小表的查找范围尽量使得数据均等的分散在各个数据的各个表上为什么需要服务化为什么需要服务化SOA-(Service-Oriented Archit
15、ecture)表达了一种软件架构概念,它定义为使用服务来满足软件用户的需求。在SOA环境中,系统上的节点以独立服务的形式将自己的资源开放给网络上其他参与者,其他参与者按一种标准的方式使用资源。与传统点对点架构不同,各种SOA都由松耦合、高度可互操作的应用服务构成。服务化webServiceRestFulEDASWeb Service的基本层次结构UDDI : Universal Description Discovery and Integration WSDL: Web Service Description LanguageSOAP : Simple Object Access Proto
16、colSOAPSOAPSOAPWebService是一种跨编程语言和跨操作系统平台的远程调用技术WSDL描述web服务的三个基本属性服务做些什么?服务所提供的操作(方法)。如何访问服务?数据格式以及访问服务操作的必要协议。服务位于何处?由特定协议决定的网络地址,如URL。Wsdl例子SOAP是什么?SOAP 是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。 SOAP 利用 XML 技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。 这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。SOAP的概念最初来自于 Microsoft
17、and User land software,它已经演化了好几代; 当前最新的规范是SOAP 2.0。由W3C组织制定。SOAP消息结构SOAP请求 . 12345678 SOAP请求在HTTP上的传输POST /DEMOWebServices2.8/Service.asmx HTTP/1.1Host: Content-Type: application/soap+xml; charset=utf-8Content-Length: length . 12345678 SOAP响应在HTTP上的传输HTTP/1.1 200 OKContent-Type: application/soap+xml
18、; charset=utf-8Content-Length: length . Gaussstr. 29 Braunschweig D-38106 SOAP响应 . Gaussstr. 29 Braunschweig D-38106 相关框架Axis2方式方式 支持多种语言,性能较低支持多种语言,性能较低Xfire 和和spring整合很方便整合很方便Apche CXF方式方式 是是Xfire的升级版的升级版JDK开发开发webservice方式方式RESTFULREST REST这个词,是这个词,是Roy Thomas Fielding在他在他2000年的年的博士论文博士论文中提出的。中提出
19、的。 它它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。资源(资源(Resources) REST的名称的名称表现层状态转化表现层状态转化中,省略了主语。中,省略了主语。表现层表现层其实指的是其实指的是资源资源(Resources)的)的表现层表现层。 所谓所谓资源资源,就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首,就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个歌曲、一种服务
20、,总之就是一个具体的实在。你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定(统一资源定位符)指向它,每种资源对应一个特定的的URI。要获取这个资源,访问它的。要获取这个资源,访问它的URI就可以,因此就可以,因此URI就成了每一个资源的地址或独一无二的识别符。就成了每一个资源的地址或独一无二的识别符。表现层(表现层(Representation) “资源的表现形式(资源的表现形式(XML/JSON/HTML/二进制等)二进制等)状态转化(状态转化(State Transfer) HTTP协议里面,四个表示操作方式的动词:协议里面,四个表示操作方式的动词:GET、POST、PUT
21、、DELETE。它们分别对应四种基本操作:。它们分别对应四种基本操作:GET用来用来获取资源,获取资源,POST用来新建资源(也可以用于更新资源),用来新建资源(也可以用于更新资源),PUT用来更新资源,用来更新资源,DELETE用来删除资源。用来删除资源。EDAS企业级分布式应用服务(EDAS,Enterprise Distributed Application Service)是企业级互联网架构解决方案的核心产品,充分利用阿里云现有资源管理和服务体系,引入中间件成熟的整套分布式计算框架(包括分布式服务化框架、服务治理、运维管控、链路追踪和稳定性组件等),以应用为中心,帮助企业级客户轻松构建并托管分布式应用服务体系。 EDAS配置示例EDAS消息队列消息队列-元素 主题主题一种支持发送消息给多个订阅者的机制。一种支持发送消息给多个订阅者的机制。 生产者生产者创建并发送消息的创建并发送消息的JMS客户。客户。 消费者消费者接收消息的接收消息的JMS客户。客户。 消息消息包括可以在包括可以在JMS客户之间传递的数据的对象客户
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026财务经理校招面试题及答案
- 自动化合约优化-洞察与解读
- 中国太保校招面试题及答案
- 2025年辅导员基础知识考试试题及参考答案
- 2025年辐射安全与防护培训考试试题及答案
- 2025年法制宣传日普法知识竞赛测试题库及答案
- 十六种脸型测试题及答案
- 小学数学奥赛试卷及答案
- 湖北省部分名校2025-2026学年高三9月月考语文试题(解析版)
- 行车工安全考试题及答案
- 中心小学开展课后服务活动档案材料(含过程性材料)
- 天津高考英语词汇3500
- 医院妇产科医学病例汇报PPT
- 家庭疾病管理能力调查
- 《为什么家庭会生病》读书笔记思维导图PPT模板下载
- (37)-13.2突发公共卫生事件处置典型案例分析
- 注塑车间安全培训
- 全国国防教育示范学校自评报告
- JB/T 20185-2017热原检测仪
- GB/T 22153-2008国际货运代理通用交易条件
- GB 30616-2020食品安全国家标准食品用香精
评论
0/150
提交评论