资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,网站架构简单说明,一根网线,一台电脑,一杯咖啡,居家创业,事业,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,等变化会自动重新加载应
展开阅读全文