登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 经济学类 > 电子商务 > 正文

构建高性能web站点的技术方案分析毕业论文

 2020-02-19 05:02  

摘 要

互联网发展至今,可谓每个人几乎都与互联网息息相关,用户对于优质的网络服务的需求也越来越强烈。作为提供网络服务的网络站点,面对这爆发式的访问流量,如何快速的处理用户的请求,站点系统如何设计,都成为了必须考虑的问题。为处理这些上述所涉及的困难,构建高性能的web站点,本文从站点架构的角度出发,通过对优秀开源软件的集成使用,针对站点用户的请求和访问处理进行快速的响应,从而给予用户舒适的网络服务体验。

运用LAMP架构,负载均衡,分层设计思想,缓存技术,数据库读写分离等等技术手段。将web站点的层级进行划分,流量控制进行用户访问流量的分流,避免单点服务的性能瓶颈。站点的整个层次划分为三层,由应用层,数据层以及缓存层组成。应用层的主要目的时完成访问流量控制和负载均衡的工作,保证站点系统的I/O处理能力。数据层为整个站点提供数据服务的读写工作,面对海量数据时,通过分库分片来提升数据处理能力,面对数据拥堵以及I/O瓶颈问题时,通过读写分离应用解决。缓存层则通过页面层缓存,服务层缓存以及数据层缓存来提升数据的读取性能,避免重复的从数据库读取数据,造成资源的浪费。希望通过本文的研究,能构建一个具有稳定性,适应性,可靠性的高性能web站点的设计。

关键词:LAMP架构;高性能;负载均衡;Web站点

Abstract

Since the development of the Internet, it has been said that almost everyone is closely related to the Internet, and users are increasingly demanding high-quality network services. As a network site providing network services, in the face of this explosive access traffic, how to quickly handle user requests, how to design a site system has become a problem that must be considered. In order to deal with the above-mentioned difficulties and build a high-performance web site, this article provides a comfortable response to the site user's request and access processing through the integration of excellent open source software from the perspective of the site architecture. Network service experience.

LAMP architecture, load balancing, layered design ideas, caching technology, database read and write separation and other technical means. The tiers of web sites are divided, and traffic control performs traffic shunting of user access traffic to avoid performance bottlenecks of single-point services. The entire hierarchy of the site is divided into three layers, which are composed of an application layer, a data layer, and a cache layer. The main purpose of the application layer is to complete the access flow control and load balancing to ensure the I/O processing capability of the site system. The data layer provides reading and writing of data services for the entire site. When faced with massive data, the data processing capability is improved by sub-database fragmentation, and when data congestion and I/O bottlenecks are faced, it is solved by reading and writing separate applications. The cache layer improves data read performance through page layer caching, service layer caching, and data layer caching, avoiding repeated reading of data from the database, resulting in waste of resources. I hope that through the research in this paper, we can build a high-performance web site with stability, adaptability and reliability.

Keywords:LAMP Architecture;High Performance;Load Balancing;Web Site

目录

摘 要 I

Abstract II

第1章 绪论 1

1.1 研究的背景和研究的意义 1

1.2 国内外研究现状和发展趋势 2

1.3 等待的真相和性能瓶颈。 3

第2章 相关技术的介绍 5

2.1 负载均衡 5

2.2 缓存技术 6

2.3 LAMP框架 7

2.4 LAMP组件功能概述 8

2.5 本章小结 9

第3章 案例分析-美团网架构演变 10

3.1 技术架构1.0 10

3.2 技术架构2.0 10

3.3 技术架构2.1 11

3.4 技术架构3.0 11

3.5 本章小结 12

第4章 站点设计技术方案 13

4.1 站点架构设计 13

4.2 站点系统分层概述 13

4.2.1 应用层 13

4.2.2 数据层 14

4.2.3 缓存层 14

4.2.4 组件分层 14

4.3 应用层设计 14

4.3.1 流量控制算法 15

4.3.2 负载实现 16

4.4 数据层的设计 16

4.4.1 数据分片分库 16

4.4.2 数据库读写分离 17

4.5 缓存层的设计 18

4.5.1 缓存需要考虑的方面 19

4.5.2 页面缓存 19

4.5.3 业务缓存 20

4.5.4 数据层缓存 20

4.6 本章小结 21

第5章 总结和展望 22

5.1 总结 22

5.2 展望 22

参考文献 24

致 谢 26

第1章 绪论

1.1 研究的背景和研究的意义

互联网时代下,网络用户越来越庞大,企业的web站点向浏览器主机以及手机移动端迁移,互联网新技术随着发展随时在更新优化,用户需求不断提高,他们与应用程序的交互也变得复杂起来,而对于体验的要求也变得苛刻。互联网企业的大型网络站点面临巨大的访问量,高并发流量访问和海量数据的挑战。而面对大量的访问流量在同一段时间到达企业web站点时,在保证访问速度和提高用户体验的同时,web服务器的性能是否支撑起来,是我们要解决的问题。并且越来越多的应用将转到Web平台上实现,使用过去的网络框架搭建Web站点无论从系统吞吐量、用户等待时间延迟以及访问并发数等各个方同都难以保证用户现有的需求。

过去,传统的站点处理用户的请求,访问入口是一个单点服务入口,对用户的请求采取集中响应的策略,使得处理用户数据的能力低下[9]。原因是web服务器的处理能力低下,未能充分调动硬件的能力,还有更重要的原因是软件体系的发展不足,影响应用程序对操作系统的使用。随着技术的不断进步演化发展,计算能力的提升不断的增强站点业务的处理能力,这就可以摒弃单纯的单点集中模式的计算。虽然集中式的系统具有部署快速的优点,但要达到相应的高性能要求,则需要很高的硬件资源水平,成本巨大。并且随着业务的发展,系统必须要进行扩容,这样的话扩展起来会相当的复杂,并且难以维护。若web站点出现故障,可能导致整个站点的崩溃。

当分布式计算技术出现时,应用程序被分割成多个各组件部分,各个组件分别发放到多个主机完成处理工作,各组件各司其职,协同合作。缩减了计算处理的时间,提高效率。优秀的内聚特性和透明特性是分布式系统的特点,同时它还具备良好的可靠性和安全性能[3]。对于业务的改变,还可以进行业务迁移及系统镜像功能。用户客户端分散和站点资源分散是其最主要的特点。Web站点的交互过程中,分布式的系统可以对计算资源和数据资源进行总体规划和调度管理,保证性能高效的计算能力。

本篇论文对于企业的大型网站站点所要求的性能方面进行分析。在选题开始阶段,对构建高性能web站点的各种相关技术进行学习与研究,对于系统的不同层次切割分层,运用各层中间件进行构建整个系统,构建了一个能够提供高性能计算能力,能够处理海量业务的高性能可扩展Web站点的解决方案。

1.2 国内外研究现状和发展趋势

回顾互联网的发展历史中,互联网用户急剧增长,互联网用户的网络资源内容吸引以及内容消费过渡到用户吸引以及用户创造,所需的信息服务及日常内容的消费随着互联网的兴起逐渐丰富起来。移动互联网给我们带来了更多的数字场景。互联网渐渐从信息内容提供以及社交向服务型互联网的过渡。而随着互联网服务的不断发展中,企业的web站点需要一个能支撑业务服务高性能和可靠的网站站点。

中国国内的一般情况下的解决方案是运用并行系统,以此来提高服务器的硬件水平,更多的是从硬件水平出发,未从软件体系结构的方面进行考滤,该解决方案不能充分的发挥出硬件的性能,浪费资源严重。

国外一般情况下的解决方案是使用Web服务器集群。用户的访问请求由集群服务器中的负载均衡服务器来进行接收,并通过相应的负载均衡服务策略来进行流量的控制分发[11]。然而,这样的解决方案所表达的性能预期不像预期的增加装载机器的数量那样明显,而是越来越平缓。

(1)web网站加速全球信息化进程

社会发展的趋势不断朝着信息化的方向发展,信息技术得以不断的提高完善。从1970年开始,数据网系统的开发实现社会信息化,取得成就有T.100系列的可视图文,数据网以及消息业务系统等等。二十世纪八十年代到九十年代,在一些发达国家,信息化已经取得成效。然而互联网的不断发展兴起使得社会信息化充分得到发展,在全世界得到普及。随着越来越多的互联网网络站点的建立与对用户开放应用,社会信息化水平也不断的提高。

(2)web站点推动信息技术发展

相关技术行业的发展随着网络的发展进一步推动。web站点如果没有快速发展,那么电信行业会在技术领域垄断,从而操控整个技术市场,控制整个利润总额。使得信息服务业的发展缓慢,限制住了社会电信业的发展。导致电信行业的发展进行和服务业的利润空间较小。最终,信息服务业和社会信息化发展将变得缓慢。

互联网的出现打破电信行业垄断的格局。互联网具备的异构特性,向社会电信技术发起挑战。异质性是指社会上原始信息技术不会影响到互联网技术的发展[14]。因此长期以来,互联网技术得以快速发展和不断进步。并且在网络通信的技术不断发展进步中,给与Web技术更广泛的业务应用和创作空间。随着各种大中型应用推广发展,信息技术开始快速发展的阶段。

(3)各项新技术推动Web站点的演变

web网站站点的快速发展来源于互联网计算的不断发展。开始小型网站建设使用,发展到站点应用程序和数据库的分离来提高性能,在进一步到应用集群服务,目前可能发展到未来云服务器集群构建应用,从点到云的历程使得web站点不断演变。各种新技术不断发展并应用到业务中,为构建高性能web站点提供了实践基础。

1.3 等待的真相和性能瓶颈。

用户发出请求后,等待响应的时间如下:

● 数据在网络上传输的时间。

● web服务器处理用户请求以及生成响应数据的时间。

● 用户浏览器端计算和渲染响应数据的时间。

用户数据通过整个网络传输的时间大致由两部分组成:用户浏览器发送的请求数据通过网络到达服务器的时间,服务器的响应数据通过网络传输到用户浏览器的时间。

站点服务器端的主要的时间消耗是处理用户发送的请求数据并且生成响应数据这一部分消耗时间。其中包括许多部分的相应环节。我们使用‘每秒处理的请求数’这一指标标准来度量这一部分的时间。每秒处理请求数这一指标也称为吞吐量。吞吐量是指请求的数量而不是指每一单位时间所处理的相应数据量。造成站点服务器吞吐量受到影响的因素有非常多。例如服务器并发相关策略、I/0处理模型、I/O性能以及机器CPU核心数等等,当然还包括系统应用程序自身的逻辑复杂度等。

浏览器端的时间消耗在于用户浏览器自身计算和页面渲染时间,其中因素包括风格渲染、页面组件数量、脚本解释器性能、浏览器并发策略、页面大小、页面组件域名分布、页面组件缓存状态和域名DNS解析等,以及其他相应一些因素。并且每个供应商的浏览器版本略有不同。

上述可以发现,用户浏览站点的页面,发送给web服务器主机的每一个请求都会经历上面的过程。如果在此过程中的某些环节处理有问题的话,响应的速度变慢,对于整个页面的响应速度将会受到很大的影响。

在站点中,影响站点应用系统性能的关键节点的因素称之为系统性能瓶颈。随着系统的运行过程中,系统的瓶颈还会不断的变化和发生迁移。例如站点的业务结构的多样性和用户的使用习惯随着系统版本的不断迭代,各个阶段的系统瓶颈又不相同。或者当用户量不断的增长,数据量也不断的增长,系统的瓶颈也会发生迁移。站点需要做的就是预测或在使用的过程中找出系统的性能瓶颈,不断的调整解决瓶颈,优化系统的性能。

当然,除了影响系统性能的关键节点因素外,有些待优化的节点可能并不构成性能的瓶颈的影响。但我们也不能忽略这些子因素,我们称之为“长尾效应”。也就是说对于多个子因素的优化,组成起来也会对性能有一个比较大的提高,有时性能的提升时很可观的。在开始优化之前,可以思考下优化的可行性,效率性以及对整个系统会不会造成大的影响。

第2章 相关技术的介绍

2.1 负载均衡

负载均衡是一种将用户流量按照一定算法策略分配到多个web服务器的负载均衡服务。通过消除站点服务的单个故障点来提高应用程序的可用性,以此来实现更高级别的应用程序容错能力,高能力地提供应用程序的流量的负载分流。为用户提供高效、稳定以及安全的服务能力。

负载均衡服务位于整个web体系结构外层。负载均衡从应用程序的顶层传送用户访问压力。它可以提高系统带宽和扩展web功能,也使得系统灵活性得以提高以及增强站点的数据处理能力,从而提高了整个web站点的系统吞吐量[17]。负载均衡服务中,在合适的策略下,业务的不断发展下,要求的系统处理能力提高,在软件层次性能达到上限情况下增加处理用户服务的机器,保证系统应用的处理请求的能力得以增强。几种负载均衡的方案介绍如下:

(1)http 重定向协议实现负载(如图2.1)

首先浏览器端的用户发出请求,浏览器启动http请求,然而用户不清楚他请求的地址不是web服务器实际的地址,而是负载服务器的地址。负载服务器就能获取用户的请求并把它转发到实际的web服务器去处理请求,web服务器处理完请求后转交给负载均衡服务器,再将用户所需的信息发送回浏览器端给用户。简单部署是这种类型的加载方法的一个优点,但它需要多个服务器完成单个访问的请求,并且性能不太好。

图2.1 http重定向协议实现负载

(2)DNS域名解析负载均衡(如图2.2)

这种负载均衡的策略工作原理是对用户ip地址进行域名解析。根据用户的ip地址找到距离最接近的IP地址,这样不仅能快速处理访问请求,还能提升管理维护负载均衡服务器的能力。但是DNS域名解析运用缓存技术,当第一次解析返回结果时将会生成缓存数据。如果应用服务器脱机,但是缓存数据的存在导致相应的DNS记录仍然存在,这时用户继续访问将会发生错误。通常,DNS负载使用的算法时轮询算法。该算法不能反映服务器运行的状态,也不能区分各个服务器间的不同之处。

图2.2 DNS域名解析

(3)反向代理负载均衡(如图2.3)

使用反向代理服务器转发请求。负载均衡反向代理服务器起到第三方中间人的作用,使用它可以集中的管理下游的web服务器集群,使得不对外暴露真实的服务器地址,对用户隐藏[18]。Web站点根据的站点的规模选择合适的负载均衡策略,当访问流量到达负载转发中心时,根据负载策略将访问转发到合适服务器中进行响应,响应完毕后将真正处理用户请求的web服务器产生的响应数据在经过负载均衡服务器返回给用户。

图2.3 反向代理负载均衡

2.2 缓存技术

缓存技术的使用有很长一段历史了。简单地说,缓存的目的是避免节省成本昂贵的计算,把计算结果保存起来。并且在需要再次应用的时候将其取出,从而可以避免重复计算,节约了计算的消耗,这是所有缓存的本质。

缓存技术主要解决两个问题:

  1. 性能问题:某些不改变的数据和常用的静态数据每次读取都消耗过多IO,如果通过缓存的方式存储起来可以避免数据的重复创建、处理和传输,就可以明显提高应用的响应速度,性能得到有效的提高。
  2. 稳定性问题:对于Web站点,如果都要处理每个请求,对于有限的资源是巨大的浪费。频繁出现同一用户接口和特定数据的多个请求,尤其是在具有大用户的系统中,可能会导致系统不稳定。缓存技术的应用可以减少重复流量传输的数量。缓存能够有效减少应用系统中的计算处理和数据量,使得计算机cpu的进程数量减少,还可以减少内存对磁盘访问的次数,节约机器性能,这是提高系统性能的重要部分。建立系统所需的缓存可以提高系统的响应时间和处理效率,绕过从底层物理磁盘读取数据的循环,直接从最快内存中获取数据,从而减少资源消耗,维护系统稳定能力。

2.3 LAMP框架

LAMP框架架构是基于 Linux , Apache ,MySql以及PHP的web开发的平台,LAMP由Linux、Apache、MySQL和PHP这四大开源软件组成,它们四个互相独立的开源软件项目,网站建设的开发人员通常会在建设网站站点的是将其组合起来使用,LAMP框架具有很高的兼容性,在不断的使用发展中,LAMP构成了一个功能强大的Web开发平台[10]。LAMP在企业web站点的应用范围也越来越流行,因为使用LAMP平台开发项目成本低、平台稳定性好且系统应用速度快的优点,成为了与J2EE以及.Net商业软件并列的三大WEB软件开发框架之一。LAMP框架具有如下五个特点:开源性,成本低,稳定性,速度快以及安全性[2]

(1)Linux操作系统

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图