高性能Web架构设计方案

大型Web网站的特点如下:
在这里插入图片描述
大型Web网站的技术挑战主要来自于大量的用户,高并发的访问和海量的数据存储,任何简单的业务一旦需要处理TB级别的数据和面对数以亿计的用户,问题就会变得很棘手。那么如何打造一个高可用、高性能、易扩展、可伸缩且安全的网站?首先要从架构方面入手,以高性能架构为基础,辅以优化后的前端应用(如减少Http请求,终端缓存等等)和后台程序(如Jvm优化,操作系统优化等等)即可以构建一个高性能的Web网站。
首先我们来了解下构建一个高性能Web网站时,性能的瓶劲在哪里?如下图所示:
在这里插入图片描述
从上图可以分析出性能瓶劲主要表现在两个方面:
1、 硬件资源层面,如不同运营上的网络,服务器的带宽限制,服务器的CPU、内存及磁盘IO等;
2、 软件层面,Web应用程序的性能,数据库服务器的性能;
硬件资源的提升对性能的提升时逐级递减的直至趋于0,所以性能的提高不能通过无休止的增加硬件资源,所以我们就要考虑如何从软件架构的层面来提供性能,下图为高性能架构的主要思路:
在这里插入图片描述
架构思路的说明如下:
1、 负载均衡,包括早期的使用DNS负载均衡,四层交换的负载均衡及七层交换的负载均衡;一般业界多采用硬件四层交换负载均衡和软件四层交换负载均衡,硬件四层交换负载均衡优势时稳定性高,功能强大,但价格较高,一般的公司难以承受,典型产品是F5、A10;软件四层交换负载均衡的优势是免费开源,通过热备等方式也可以构建一个稳定性高的负载均衡,所以我们的首选软件四层交换负载均衡(即LVS)
2、 高可用性方面要考虑避免单点故障,需要引入热备(包括主从和主主两种方式),集群以及灾备;
3、 Web应用开发架构方面要选择合适的应用开发框架同时考虑将动态页面进行静态化并进行静态资源(图片,CSS,JS及页面)的缓存(此点建议使用Nginx或者Varnish进行缓存);数据存储方面考虑使用分布式存储系统(需要根据所存储文件的大小选择合适的存储系统,比如一般的图片文件和视频文件选择的存储系统就会有所不同,前者一般可以选择FastDFS,后者选择HDFS)以及引入数据缓存(如Redis集群)和NoSql数据库(也叫内存数据库,比如:MongoDB)
4、 数据库方面需要考虑进行读写分离,分库、分表、分区等;
5、 网络方面引入CDN来解决不同网络服务商的接入速度问题并考虑在不同运营商机房部署服务器,通过镜像技术来实现不同网络服务商的接入速度问题。
Web应用架构的演化历程:
在这里插入图片描述
Web应用架构的特点如下图
在这里插入图片描述
微服务架构有其明显的优势,已经是目前及未来Web应用架构的首选,其缺点是:微服务过多,服务治理成本高,不利于系统维护;分布式系统开发的技术成本高(容错、分布式事务等),对团队挑战大;所以如果是一般初学者建议还是选择先从MVC架构开始。
综合以上的简单分析,我们可以大致得出高性能的架构如下图:
在这里插入图片描述
1、 使用LVS作为软件四层交换负载均衡并使用Heartbeat实现双机热备;
2、 使用反向代理软件来实现数据缓存(静态资源缓存),此处我们可以选择使用Nginx或者Varnish
3、 Web应用框架可以更加系统规模进行选择,小编建议初学者选择先从MVC架构开始;
4、 数据持久化层使用MyBatis以提高性能,数据缓存使用Redis集群;
5、 分布式存储选择HDFS并引入NoSql数据库,数据库方面实现读写分离和热备,必要的时候还需要分库分表等;
以上介绍了高性能Web架构设计方案,希望对大家对高性能Web架构有所了解。高性能Web架构涉及到的知识还有很多,小编整理了架构学习相关的技术资料,希望对大家有所帮助,以下为部分资料截图:
在这里插入图片描述
需要这些技术资料的同学,请关注我们的微信公众号回复“架构”获取资料下载地址。
在这里插入图片描述

已标记关键词 清除标记
相关推荐
为提高网站的高并发性能,提高开发效率及运营效率,主要按如下几个思路进行规划设计: 2.1.1负载均衡 1)四层交换负载均衡: 采用负载均衡器来实现硬件级的四层交换负载均衡,或采用LVS来实现软件的四层交换负载均衡。 2)通过第三方软件来实现负载均衡,同时实现页面请求的缓存。 通过Nginx实现反向代理服务器集群,同时搭建squid集群以作为静态页面和图片的缓存。 3)通过web服务器的配置来实现负载均衡 即通过apache或是Nginx 将客户请求均衡的分给tomcat1,tomcat2....去处理。 2.1.2WEB应用开发架构思路 1)应用开发实现MVC架构三层架构进行web应用开发 2)页面尽可能静态化以减少动态数据访问,如果是资讯类的网站可以考虑采用第三方开源的CMS系统来生成静态的内容页面。 3)采用Oscache实现页面缓存,采用Memcached实现数据缓存 4)采用独立的图片服务器集群来实现图片资源的存储及WEB请求 2.1.3数据存储的设计思路 1)数据库拆分,把生产数据库和查询数据库分离,对生产数据库采用RAC实现数据库的集群。 2)采用高效的网络文件共享策略,采用图片服务器来实现页面的图片存储。 2.1.4不同网络用户访问考虑 1)通过引入CDN来解决不同网络服务商的接入速度问题,一般只能解决静态页面的访问问题。 在不同运营商机房部署服务器,通过镜像技术来实现不同网络服务商的接入速度问题。
电子商务网站设计方案<br><br>此方案设有方便 用户管理、产品管理、客户服务 等模块。 <br>具有基本电子商务功能,能满足大多数企业的商务应用,开发成本约在6000-10000之间。 <br>……<br>站点功能和需求分析 <br>网站设计成含数据库功能的ASP动态网页。主要包含以下功能 <br> 客户服务和客户关系管理功能 ……<br>网站推广<br>网站的主要目的,是通过网站的推广将互联企业的产品和服务,并使客户随时可以了解企业和企业的产品,这客户提供在线服务和订单处理功能。 <br>从长期的战略目标来说,网站不仅仅是产品和服务的推广,而是通过Internet、企业内部网(Intranet)和企业外部网(Extranet),将买家与卖家、厂商和合作伙伴紧密结合在了一起,因而消除了时间与空间带来的障碍。<br>主要内容动画首页: <br>首页是访问者的第一印象,采用一些新颖而独特的方式给用户留下比较深刻的印象是成功的第一步。 <br>用FLASH制作的全屏动画,能突出表现企业的形象和产品,由于动画本身易于理解,包含有大量直观的信息量,用户可以在打开首页时,快速获得对贵公司的形象、产品和服务的理解。<br>内容页面: <br>网页内容以贵公司的材料为主,我们可以提供协助进行文案的编辑,照片的拍摄等事项。 <br>采用数据库网页,页面内容可以随时更改(一般的办公室议员即可操作),产品内容也可以随时更改,只要把文字输入,数据库会自动生成网页。<br>其他功能: <br>留言版:客户将意见或订单直接记录在网站的小型数据库中。 <br>公司管理员或以浏览这些记录。 <br>目的:协助企业增强业务的互动性、提高客户满意程度,使用户的信息及时反映。 <br>功能:对客户反馈信息的统一管理,自由删除或回复。 <br>支持认证(即留言要经过审核后才能公布)。 <br>可升级为论坛。<br>反馈表:客户将意见或订单直接发送到指定的邮箱中。 <br>网站推广:我公司通过搜索引擎加注方式,并应用WEBRANKING技术,将网站在全球各大搜索引擎注册,WEBRANKING技术能保证在搜索引擎上有较好的排名。(注,部分搜索引擎是收费服务的,如果贵公司需要在这些收费服务的搜索引擎上注册,所需要的费用由贵公司承担)<br>主要功能模块说明产品电子目录功能 <br>目的:宣传自己的产品,是企业上网的主要目的之一,将自己的产品展现给客户,让客户通过网站便能自由选择地购买企业的产品,是产品预订系统的主要目的。 <br>功能: <br>产品分类管理,可以多级分类,以树状组织表现企业的产品系。 <br>产品资料管理,自由增加、删除、修改产品说明与图片。 <br>可以控制产品是否发布,若不发布,该产品在数据库中,但前台浏览不到。 <br>可以控制产品是否允许客户预订,若不允许,该产品在数据库中,前台不提供预订操作。 <br>产品分类检索。 <br>用户通过搜索查询产品。 <br>最新产品浏览。 <br>热门产品浏览。 <br>产品详细资料显示。 <br>产品点击放大。 <br>产品浏览次数记录与统计。 <br>客户可以发表对产品的评论。 <br>客户可在线填写订单,自由选择预订产品,并管理预订。<br>新闻和产品发布系统 <br>……<br><br>客户管理系统 ……<br>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页