资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
网站架构简单说明,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,硬架构 服务器划分 带宽的计算 软架构 分布式缓存 负载均衡 Web服务器集群 数据库集群 HTML的静态化,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,服务器划分,图片服务器和java应用服务器,以及web服务器,数据库服务器 对访问量大的网站而言,分离单独的图片服务器和java应用服务器相当必要,我们可以用lighttpd来跑图片服务器,用tomcat/resin等来跑java应用服务器,可以使用apache/nginx跑web服务器。 java应用服务器多了就不可避免的涉及一个同步的问题,这个可以使用rsync软件来搞定 。 Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点 。在支持纯静态的对象时,比如图片、文件等,lighttpd的速度更快,更理想。 apache是一个web服务器环境,可以作为一个web服务器使用,不过只支持静态网页,如(asp,php,cgi,jsp)等动态网页的就显得无能为力。如果想让服务器也能处理动态页面,那么就需要tomcat了。 处理静态页面时,tomcat不如apache迅速,tomcat也不像apache一样可配置(如:可以作为一个代理服务器,即loadbalaner)。 1.Apache主要用来解析静态文本,如html,tomcat也有此功能,但apache能大大提高效率,对于并发数较大的企业级应用,能更好的显示apache的高效率; 2.Tomcat用来解析jsp,servlet等,所有的客户请求首先会发送到apache,如果请求是静态文本则由apache解析,并把结果返回给 客户端,如果是动态的请求,如jsp,apache会把解析工作交给tomcat,由tomcat进行解析(这首先要两者现实整合),tomcat解析完成后,结果仍是通过apache返回给客户端,这样就可以达到分工合作, 提高系统的性能!,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,带宽计算,假设网站每天要承受100万pv的访问量,计算带宽要涉及到两个指标(峰值流量和页面平均大小),带宽单位为bps(bit/s)。 1、假设峰值流量为平均流量的5倍; 2、假设每次访问的平均页面大小为200KB左右。 1B=8b-1B/s=8b/s(1Bps=8bps) 1KB=1024B - 1KB/s=1024B/s 1MB=1024KB-1Mps=1024KB/s 100万pv访问量一天平均分布,折合每秒大约访问12次,页面大小为字节(Byte),总共访问页面大小就是12*200KB=2400KB,1Byte=8bit,则2400KB=19200Kb,就相当于大约9Mb/s(9Mbps),我们网站在峰值流量时一定要保持正常访问,则真实带宽应该在9M*5=45Mbps左右。,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,分布式缓存,目前比较流行的两大缓存有memcached(memorycache)和ehcache(都支持分布式缓存)。 比较分析(详情请点击): 1、ehcache是用纯java编写的,通信是通过RMI方式,适用基于java技术的项目。 2、memcached服务端是C编写的,客户端有多个语言的实现,如:C,php(淘宝,sina),python(豆瓣网),java。 优点:ehcache效率高,功能强大。Memcached简洁,灵活,所有支持socket的语言都能编写其客户端。 缺点:ehcache只适用于java体系,只能用java编写其客户端。Memcached功能不完善,相对于ehcache效率较低。,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,负载均衡,定义:把来自internet的连接根据某种算法合理的分配到多台服务器上,以减轻主服务器的压力。 1、基于DNS的负载均衡 这是使用最早的负载均衡技术,它是在DNS中为多个IP地址配置同一个域名,访问该域名的服务器将会得到其中一个地址(不知道它是怎么分配这个IP地址的,怀疑是随机分配),从而使得不同客户访问不同的服务器,达到负载均衡的目的。 缺点:它不能区分服务器的差异,即不能反应出来服务器当前承载的访问量。 2、代理服务器的负载均衡 使用代理服务器(如apache),当客户端访问静态页面时,它无需转向内部服务器(如tomcat)进行处理,直接把页面返回给客户端。这种加速模式显然能够提高静态网页的访问速度。,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,负载均衡,3、NAT负载均衡(Network Address Translation 网络地址转换) 简单的说就是把外网地址转换为内网地址(都必须有多个)、比如:当客户机访问zhuzher的某一个外网地址时,地址转换网关就会将其转发到zhuzher的一个映射的内部服务器的地址上。 因此如果地址转换网关能够将每个连接均匀的转换为不同的内部服务器地址,每个连接就各自与自己转换到的内部服务器进行通信,就可以达到负载均衡的目的。 4、反向代理负载均衡 目前常用的负载均衡方法。使用代理服务器将来自客户端的请求按照java应用服务器的当前承载(权值)均匀的分配到这些java应用服务器上。,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,WEB服务器集群,定义:就是指将很多台服务器集中起来进行同一种服务,在客户端看来就像是一台服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。 负载均衡能够很好的使大访问量分担到多个服务器上并行处理,避免了服务器访问量过大崩溃的现象。但是还会出现其他问题:如客户机访问的时候开始访问tomcat1,然后又被分发到tomcat2,此时session就不能共享了;或者刚访问的tomcat1down掉了,又被分到tomcat2,此时session中的数据也失效了。这样就需要将session复制,即集群功能(把多个tomcat集中起来当成一个服务器,不论在哪个服务器运行,session都不会失效)。,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,数据库集群,MySQL Cluster(Mysql集群) 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器 。 MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,关于Cluster中这些组件的关系,参照图示: 一根网线,一台电脑,一杯咖啡,居家创业,电子商务的时代,您拒绝了解机会吗?如果您有创业的想法,请联系梦雪QQ:2289589233或电话联系:18234065716,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,数据库集群,所有的这些节点构成一个完成的MySQL集群体系。数据保存在“NDB Cluster”的存储引擎中,表(结构)则保存在“MySQL服务器”中。应用程序通过“MySQL服务器”访问这些数据表,集群管理服务器通过管理工具(ndb_mgmd)来管理“NDB 存储服务器”。 NDB是一种内存中的存储引擎,具有高可用性和数据一致性等特点。 详情见MySQL Cluster(MySQL 集群) 初试 个人看法: mysql的集群貌似做不到负载均衡的效果。也就是说他建立了多个sql节点,就会对应用程序公布多个ip地址。不能像oracle RAC高性能集群,对外提供一个IP,之后在内部把请求分流到多个RAC的节点上面,以达到负载的目的。 网上有人使用IPVS(ip虚拟服务器)在mysql群集前端先配置一个负载均衡器,它在群集节点之间配置一个共享的虚拟ip地址实现,所有的应用程序使用这个虚拟ip来访问mysql群集。,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,HTML的静态化,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站架构上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法 。 Web服务器(apache)可以直接解析静态页面返回给客户端,不需要再通过tomcat,减少视觉等待。,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,Web前端总结与规划,浏览器的兼容性一定要好 减少页面上图片的数量,并且对图片也要进行压缩处理 对性能要求高的站点首页可以单独静态化处理 CSS放在head中若css放在其他位置,浏览器可能未下载到css就已经开始渲染页面,就会导致页面从无css状态跳转到有css状态;也有一些浏览器加载完css后才会渲染页面,如果css放置靠后会使得页面渲染推迟。 Javascript,css,image的合并和压缩,能够省下很多空间 充分利用浏览器的cache机制,可以大大的减少http请求 HTML尽量使用标准规范写法,提高浏览器渲染引擎的执行效率 对页面分区块,按照优先级进行顺序显示 SEO优化越好,被搜索引擎收录的机会就越大,就会得到较多的客户点击量 减少带宽资源的利用比如:json数据结构简洁,数据通讯量小,因此服务器直接返回给前端json数据,在前端拼成html进行显示,而不是直接从后台返回一个html代码。 js脚本的无阻塞加载Js加载顺序从上到下,使用defer属性在IE下可以允许其他资源并行下载(ff不支持);它是先从后台下载下来代码但不立即执行,前提是:1.脚本中不包含对document.write的调用,2。当前页面中没有其他脚本依赖于它。,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,Java应用服务器,Resin,tomcat,jetty等 Resin和tomcat 1、resin启动速度快、 2、resin报错简洁明确、 3、resin对中文的支持较好、 4、自动配置下,resin会发现改动的jar/class等变化会自动重新加载应用(tomcat也可以配置实现,这个只能作为测试时使用)。,一根网线,一台电脑,一杯咖啡,居家创业,事业QQ:2289589233或电话18234065716,谢谢您的光临,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号