版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网站架构的设计方案网站架构,一般认为是根据客户需求分析的结果,准确定位网站目标群体,设定网站整体架构,规划、设计网站栏目及其内容,制定网站开发流程及顺序,以最大限度地进行高效资源分配与管理的设计。其内容有程序架构,呈现架构,和信息架构三种表现。而步骤主要分为硬架构和软架构两步程序。网络架构是现代网络学习和发展的一个必须的基础技术。在选择机房的时候,根据网站用户的地域分布,可以选择网通或电信机房,但更多时候,可能双线机房才是合适的。越大的城市,机房价格越贵,从成本的角度看可以在一些中小城市托管服务器,比如说北京的公司可以考虑把服务器托管在天津,廊坊等地,不是特别远,但是价格会便宜很多。现在的 P
2、HP 框架有很多选择,比如:CakePHP,Symfony,Zend Framework 等等,至于应该使用哪一个并没有唯一的答案,要根据 Team 里团队成员对各个框架的了解程度而定。很多时候,即使没有使用框架,一样能 写出好的程序来,比如 Flickr 据说就是用Pear+Smarty 这样的类库写出来的,所以,是否用框架,用什么框架,一般不是最重要的,重要的是我们 的编程思想里要有框架的意识。网站规模到了一定的程度之后,代码里各种逻辑纠缠在一起,会给维护和扩展带来巨大的障碍,这时我们的解决方式其实很简单,那就是重构,将逻辑进行分层。通常,自上而下可以分为表现层,应用层,领域层,持久层。所
3、谓表现层,并不仅仅就指模板,它的范围要更广一些,所有和表现相关的逻辑都应该被纳入表现层的范畴。比如说某处的字体要显示为红色,某处的开头要空两格,这些都属于表现层。很多时候,我们容易犯的错误就是把本属于表现层的逻辑放到了其他层面去完成,这里说一个很常见的例子:我们在列表页显示文章标题的时候,都会设定一个最大字数,一旦标题长度超过了这个限制,就截断,并在后面显示“.”,这就是最典型的表现层逻辑,但是实际情况,有很多程序员都是在非表现层代码里完成数据的获取和截断,然后赋值给表现层模板,这样的代码最直接的缺点就是同样一段数据,在这个页面我可能想显示前 10 个字,再另一个页面我可能想显示前 15 个字
4、,而一旦我们在程序里固化了这个字数,也就丧失了可移植性。正确的做法是应该做一个视图助手之类的程序来专门处理此类逻辑,比如说:Smarty 里的 truncate 就属于这样的视图助手(不过它那个实现不适合中文)。所谓应用层,它的主要作用是定义用户可以做什么,并把操作结果反馈给表现层。至于如何做,通常不是它的职责范围(而是领域层的职责范围) ,它会通过委派把如何做的工作交给领域层去处理。在使用 MVC 架构的网站中,我们可以看到类似下面这样的 URL: domain/articles/view/123,其内部编码实现,一般就是一个 Articles 控制器类,里面有一个 view 方法,这就是一
5、 个典型的应用层操作,因为它定义了用户可以做一个查看的动作。在 MVC 架构中,有一个准则是这么说的:Rich Model Is Good。言外之意,就是Controller 要保持“瘦”一些比较好,进而说明应用层要尽量简单,不要包括涉及领域内容的逻辑。所谓领域层,最直接的解释就是包含领域逻辑的层。它是一个软件的灵魂所在。先来看看什么叫领域逻辑,简单的说,具有明确的领域概念的逻辑就是领域逻辑,比如我们在ATM 机上取钱,过程大致是这样的:插入银联卡,输入密码,输入取款金额,确定,拿钱,然后 ATM 吐出一个交易凭条。在这个过程中,银联卡 在 ATM 机器里完成钱从帐户上划拨的过程就是一个领域逻
6、辑,因为取钱在银行中是一个明确的领域概念,而 ATM 机吐出一个交易凭条则不是领域逻辑,而仅是一 个应用逻辑,因为吐出交易凭条并不是银行中一个明确的领域概念,只是一种技术手段,对应的,我们取钱后不吐交易凭条,而发送一条提醒短信也是可能的,但并 不是一定如此,如果在实际情况中,我们要求取款后必须吐出交易凭条,也就是说吐出交易凭条已经和取款紧密结合,那么你也可以把吐出交易凭条看作是领域逻辑 的一部分,一切都以问题的具体情况而定。在 Eric 那本经典的领域驱动设计中,把领域层分为了五种基本元素:实体,值对象,服务,工厂,仓储。具体可以参 阅书中的介绍。领域层最常犯的错误就是把本应属于领域层的逻辑泄
7、露到了其他层次,比如说在一个 CMS 系统,对热门文章的定义是这样的:每天被浏览的次数多 于 1000 次,被评论的次数多于 100 次,这样的文章就是热门文章。对于一个 CMS 来说,热门文章这个词无疑是一个重要的领域概念,那么我们如何实现这个 逻辑的设计的?你可能会给出类似下面的代码:“SELECT . FROM . WHERE 浏览 1000 AND 评论 100”,没错,这是最简单的实现方式,但是这里需要注意的是“每天被浏览的次数多于 1000 次,被评论的次数多于 100 次”这个重要的领域逻辑被隐藏到 了SQL 语句中,SQL 语句显然不属于领域层的范畴,也就是说,我们的领域逻辑泄
8、露了。网站的性能瓶颈分析网站的性能影响因素很多,下面主要从如下4个方面进行分析说明:1)网络负载a)公网负载b)内网负载2)WEB应用服务器性能a)CPUb)存储,I/O访问c)内存d)并发TCP/IP连接数3)数据库服务器性能a)数据库参数配置b)服务器性能(CPU、内存、存储)c)数据结构的合理性4)不同WEB应用的处理方式而对不同的性能瓶颈a)对于静态的网站:静态的HTML页面严格地由标准的HTML标示语言构成,并不需要服务器端即时运算生成。这意味着,对一个静态HTML文档发出访问请求后,服务器端只是简单地将该文档传输到客户端。从服务器运行的那个时间片来看,这个传输过程仅仅占用了很小的C
9、PU资http:/ 将客户请求均衡的分给tomcat1,tomcat2.去处理。WEB应用开发架构思路1)应用开发实现MVC架构三层架构进行web应用开发2)页面尽可能静态化以减少动态数据访问,如果是资讯类的网站可以考虑采用第三方开源的CMS系统来生成静态的内容页面。3)采用Oscache实现页面缓存,采用Memcached实现数据缓存4)采用独立的图片服务器集群来实现图片资源的存储及WEB请求数据存储的设计思路1)数据库拆分,把生产数据库和查询数据库分离,对生产数据库采用RAC实现数据库的集群。2)采用高效的网络文件共享策略,采用图片服务器来实现页面的图片存储。不同网络用户访问考虑1)通过引
10、入CDN来解决不同网络服务商的接入速度问题,一般只能解决静态页面的访问问题。2)在不同运营商机房部署服务器,通过镜像技术来实现不同网络服务商的接入速度问题。总体架构网站的开发架构网络拓扑结构备注:采用双防火墙双交换机做网络冗余,保障平台服务采用双防火墙通知接通 2 线路互联网接入,设备之间采用 VRRP 协议,在任何一个防火墙、互联网发生故障后均可自动将流量切换到另一端,保证网站的正运行,设备或网络恢复后,自动恢复。采用双千兆交换机分别接在 2 台防火墙上,当某台设备或者网络链路发生故障后,好设备自动接管已坏设备的工作,不影响网站的整体运行,根据业务及真实服务器的数量,交换机可以随时增加。采用
11、硬件设备负载均衡器,实现网络流量的负载均衡使用硬件设备负载均衡器,将网络流量均衡的分担到 WEB 服务器集群各节点服务器,保障平台服务器资源均衡的使用。采用代理服务器,实现软件级的网络负载均衡。数据库服务器分离成生产数据库集群和查询数据库集群,实现生产读写与后台查询统计进行分离,同时生产数据库采用 rac 技术进行架构涉及技术的详解负载均衡基于 DNS 的负载均衡-一个域名绑定多个 IPDNS 负载均衡技术是最早的负载均衡解决方案,它是通过 DNS 服务中的随机名字解析来实现的,在 DNS 服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个
12、地址。因此,对于同一个名字,不同的客户机会得到不同的地址,它们也就访问不同地址上的 Web 服务器,从而达到负载均衡的目的。这种技术的优点是,实现简单、实施容易、成本低、适用于大多数TCP/IP 应用;但是,其缺点也非常明显,首先这种方案不是真正意义上的负载均衡,DNS 服务器将 Http 请求平均地分配到后台的 Web 服务器上,而不考虑每个 Web 服务器当前的负载情况;如果后台的 Web 服务器的配置和处理能力不同,最慢的 Web 服务器将成为系统的瓶颈,处理能力强的服务器不能充分发挥作用;其次未考虑容错,如果后台的某台 Web 服务器出现故障,DNS 服务器仍然会把 DNS 请求分配到
13、这台故障服务器上,导致不能响应客户端。最后一点是致命的,有可能造成相当一部分客户不能享受 Web 服务,并且由于DNS 缓存的原因,所造成的后果要持续相当长一段时间(一般 DNS 的刷新周期约为 24 小时)。所以在国外最新的建设中心 Web 站点方案中,已经很少采用这种方案了。通过硬件四层交换实现负载均衡在硬件四层交换产品领域,有一些知名的产品可以选择,比如 Alteon、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。Yahoo 中国当初接近 2000 台服务器使用了三四台 Alteon 就搞定了通过软件四层交换实现负载均衡软件四层交换我们可以使用 Linu
14、x 上常用的 LVS 来解决,LVS 就是 Linux Virtual Server,他提供了基于心跳线 heartbeat 的实时灾难应对解决方案,提高系统的鲁棒性,同时可供了灵活的虚拟 VIP 配置和管理功能,可以同时满足多种应用需求,这对于分布式的系统来说必不可少。一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建 squid 集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性。通过反向代理服务器实现负载均衡反向代理服务器又称为 WEB 加速服务器,它位于 WEB 服务器的前端,充当 WEB 服务器的内容缓存器,反向代理服务器是针
15、对 WEB 服务器设置的,后台 WEB 服务器对互联网用户是透明的,用户只能看到反向代理服务器的地址,不清楚后台 WEB 服务器是如何组织架构的。当互联网用户请求 WEB 服务时,DNS 将请求的域名解析为反向代理服务器的 IP 地址,这样 URL 请求将被发送到反向代理服务器,由反向代理服务器负责处理用户的请求与应答、与后台 WEB 服务器交互。利用架构涉及技术的详解负载均衡基于 DNS 的负载均衡-一个域名绑定多个 IPDNS 负载均衡技术是最早的负载均衡解决方案,它是通过 DNS 服务中的随机名字解析来实现的,在 DNS 服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的
16、客户机将在解析这个名字时得到其中的一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,它们也就访问不同地址上的 Web 服务器,从而达到负载均衡的目的。这种技术的优点是,实现简单、实施容易、成本低、适用于大多数TCP/IP 应用;但是,其缺点也非常明显,首先这种方案不是真正意义上的负载均衡,DNS 服务器将 Http 请求平均地分配到后台的 Web 服务器上,而不考虑每个 Web 服务器当前的负载情况;如果后台的 Web 服务器的配置和处理能力不同,最慢的 Web 服务器将成为系统的瓶颈,处理能力强的服务器不能充分发挥作用;其次未考虑容错,如果后台的某台 Web 服务器出现故障,DN
17、S 服务器仍然会把 DNS 请求分配到这台故障服务器上,导致不能响应客户端。最后一点是致命的,有可能造成相当一部分客户不能享受 Web 服务,并且由于DNS 缓存的原因,所造成的后果要持续相当长一段时间(一般 DNS 的刷新周期约为 24 小时)。所以在国外最新的建设中心 Web 站点方案中,已经很少采用这种方案了。通过硬件四层交换实现负载均衡在硬件四层交换产品领域,有一些知名的产品可以选择,比如 Alteon、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。Yahoo 中国当初接近 2000 台服务器使用了三四台 Alteon 就搞定了通过软件四层交换实现负载
18、均衡软件四层交换我们可以使用 Linux 上常用的 LVS 来解决,LVS 就是 Linux Virtual Server,他提供了基于心跳线 heartbeat 的实时灾难应对解决方案,提高系统的鲁棒性,同时可供了灵活的虚拟 VIP 配置和管理功能,可以同时满足多种应用需求,这对于分布式的系统来说必不可少。一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建 squid 集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性。通过反向代理服务器实现负载均衡反向代理服务器又称为 WEB 加速服务器,它位于 WEB 服务器的前端,充当 WEB
19、服务器的内容缓存器,反向代理服务器是针对 WEB 服务器设置的,后台 WEB 服务器对互联网用户是透明的,用户只能看到反向代理服务器的地址,不清楚后台 WEB 服务器是如何组织架构的。当互联网用户请求 WEB 服务时,DNS 将请求的域名解析为反向代理服务器的 IP 地址,这样 URL 请求将被发送到反向代理服务器,由反向代理服务器负责处理用户的请求与应答、与后台 WEB 服务器交互。利用反向代理服务器减轻了后台 WEB 服务器的负载,提高了访问速度,同时避免了因用户直接与 WEB 服务器通信带来的安全隐患。目前有许多反向代理软件,比较有名的有 Nginx 和 Squid 。Nginx 是由
20、Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Squid是由美国政府大力资助的一项研究计划,其目的为解决网络带宽不足的问题,支持HTTP,HTTPS,FTP 等多种协议,是现在 Unix 系统上使用、最多功能也最完整的一套软体。Squid Squid 是一个开源的软件,利用它的反向代理技术可以提高网站系统的访问速度,下面将重点介绍 Squid 反向代理的实现原理和在提高网站性能方面的应用。Squid反向代理服务器位于本地 WEB 服务器和 Internet 之间 ,
21、 组织架构如下图:客户端请求访问 WEB 服务时,DNS 将访问的域名解析为 Squid 反向代理服务器的 IP 地址。这样客户端的 URL 请求将被发送到反向代理服务器。如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端,否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。Squid 反向代理一般只缓存可缓冲的数据(比如 html 网页和图片等) ,而一些 CGI 脚本程序或者 ASP、JSP 之类的动态程序默认不缓存。它根据从 WEB 服务器返回的 HTTP 头标记来缓冲静态页
22、面, 有四个最重要 HTTP 头标记:Last-Modified: 告诉反向代理页面什么时间被修改Expires: 告诉反向代理页面什么时间应该从缓冲区中删除Cache-Control: 告诉反向代理页面是否应该被缓冲Pragma: 用来包含实现特定的指令,最常用的是 Pragma:no-cache 注:DNS 的轮询机制将某一个域名解析为 多个IP地址。NginxNginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器。Nginx 已经在俄罗斯最大的门户网站 Rambler Media(www.rambler.ru)上运
23、行了4年时间,同时俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务器。在国内,已经有新浪博客、新浪播客、搜狐通行证、网易新闻、网易博客、金山逍遥网、金山爱词霸、校内网、YUPOO相册、豆瓣、迅雷看看等多家网站、频道使用 Nginx 服务器。Nginx 特点如下:1)工作在OSI模型的第7层(应用层)2)高并发连接官方测试能够支撑 5 万并发连接,在实际生产环境中跑到 23 万并发连接数。 3)内存消耗少在 3 万并发连接下,开启的 10 个 Nginx 进程才消耗 150M 内存(15M*10=150M) 。 4)配置文件非常简单风格跟程序一样通俗易懂。 5)成本低廉Nginx 为
24、开源软件,可以免费使用。而购买 F5 BIG-IP、NetScaler 等硬件负载均衡交换机则需要十多万至几十万人民币。 6)支持Rewrite重写规则能够根据域名、URL 的不同,将 HTTP 请求分到不同的后端服务器群组。 7)内置的健康检查功能如果 Nginx Proxy 后端的某台 Web 服务器宕机了,不会影响前端访问。 8)节省带宽支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头。 9)稳定性高用于反向代理,宕机的概率微乎其微。 Nginx+squid页面缓存来实现反向代理负载均衡通过Nginx反向代理和squid缓存实现动静分离的架构图如下所示:Apache +t
25、omcat 集群实现负载均衡。使用 apache和多个tomcat 配置一个可以应用的web网站,用Apache进行分流,把请求按照权重以及当时负荷分tomcat1,tomcat2.去处理,要达到以下要求:1)Apache 做为HttpServer ,通过mod_jk连接器连接多个 tomcat 应用实例,并进行负载均衡。2)同时还要配置session复制,也就是说其中任何一个tomcat的添加的session,是要同步复制到其它tomcat, 集群内的tomcat都有相同的session,并为系统(包括 Apache 和 tomcat)设定 Session 超时时间。缓存系统架构方面的缓存S
26、quid缓存架构方面使用Squid进行缓存。注:SQUID使用了LM算法,LM就是页面Header里时间(Date)和Last-Modified时间的差。Date一般是Squid从后面取页面的时间,Last-Modified 一般是页面生成时间。Nginx的缓存功能Nginx从0.7.48版本开始,支持了类似Squid的缓存功能;缓存把URL及相关组合当作Key,用md5编码哈希后保存;Nginx的Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面;采用MMAP实现,设置的缓存区大小不能超过物理内存+SWEB的值基于memcached
27、的缓存nginx 对memcached有所支持,但是功能并不是特别之强,性能上还是非常之优秀。location /mem/ if ( $uri /mem/(0-9A-Za-z_*)$ ) set $memcached_key $1; memcached_pass :11211; expires 70;这个配置会将 http:/ 指明到 memcached 的 abc 这个 key 去取数据。Nginx 目前没有写入 memcached 的任何机制,所以要往 memcached 里写入数据得用后台的动态语言完成,可以利用 404 定向到后端去写入数据。目前有许多反向代理软件
28、,比较有名的有 Nginx 和 Squid 。Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Squid是由美国政府大力资助的一项研究计划,其目的为解决网络带宽不足的问题,支持HTTP,HTTPS,FTP 等多种协议,是现在 Unix 系统上使用、最多功能也最完整的一套软体。Squid Squid 是一个开源的软件,利用它的反向代理技术可以提高网站系统的访问速度,下面将重点介绍 Squid 反向代理的实现原理和在提高网站性能方面的应用。Squid反向
29、代理服务器位于本地 WEB 服务器和 Internet 之间 , 组织架构如下图:该请求的资源,则将该请求的资源直接返回给客户端,否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。Squid 反向代理一般只缓存可缓冲的数据(比如 html 网页和图片等) ,而一些 CGI 脚本程序或者 ASP、JSP 之类的动态程序默认不缓存。它根据从 WEB 服务器返回的 HTTP 头标记来缓冲静态页面, 有四个最重要 HTTP 头标记:Last-Modified: 告诉反向代理页面什么时间被修改Expires: 告诉反向代理页
30、面什么时间应该从缓冲区中删除Cache-Control: 告诉反向代理页面是否应该被缓冲Pragma: 用来包含实现特定的指令,最常用的是 Pragma:no-cache 注:DNS 的轮询机制将某一个域名解析为 多个IP地址。NginxNginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器。Nginx 已经在俄罗斯最大的门户网站 Rambler Media(www.rambler.ru)上运行了4年时间,同时俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务器。在国内,已经有新浪博客、新浪播客、搜狐通行证、网
31、易新闻、网易博客、金山逍遥网、金山爱词霸、校内网、YUPOO相册、豆瓣、迅雷看看等多家网站、频道使用 Nginx 服务器。Nginx 特点如下:1)工作在OSI模型的第7层(应用层)2)高并发连接官方测试能够支撑 5 万并发连接,在实际生产环境中跑到 23 万并发连接数。 3)内存消耗少在 3 万并发连接下,开启的 10 个 Nginx 进程才消耗 150M 内存(15M*10=150M) 。 4)配置文件非常简单风格跟程序一样通俗易懂。 5)成本低廉Nginx 为开源软件,可以免费使用。而购买 F5 BIG-IP、NetScaler 等硬件负载均衡交换机则需要十多万至几十万人民币。 6)支持
32、Rewrite重写规则能够根据域名、URL 的不同,将 HTTP 请求分到不同的后端服务器群组。 7)内置的健康检查功能如果 Nginx Proxy 后端的某台 Web 服务器宕机了,不会影响前端访问。 8)节省带宽支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头。 9)稳定性高用于反向代理,宕机的概率微乎其微。 Nginx+squid页面缓存来实现反向代理负载均衡3)Apache 做为HttpServer ,通过mod_jk连接器连接多个 tomcat 应用实例,并进行负载均衡。4)同时还要配置session复制,也就是说其中任何一个tomcat的添加的session,是要同
33、步复制到其它tomcat, 集群内的tomcat都有相同的session,并为系统(包括 Apache 和 tomcat)设定 Session 超时时间。缓存系统架构方面的缓存Squid缓存架构方面使用Squid进行缓存。注:SQUID使用了LM算法,LM就是页面Header里时间(Date)和Last-Modified时间的差。Date一般是Squid从后面取页面的时间,Last-Modified 一般是页面生成时间。Nginx的缓存功能Nginx从0.7.48版本开始,支持了类似Squid的缓存功能;缓存把URL及相关组合当作Key,用md5编码哈希后保存;Nginx的Web缓存服务只能为
34、指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面;采用MMAP实现,设置的缓存区大小不能超过物理内存+SWEB的值基于memcached的缓存nginx 对memcached有所支持,但是功能并不是特别之强,性能上还是非常之优秀。location /mem/ if ( $uri /mem/(0-9A-Za-z_*)$ ) set $memcached_key $1; memcached_pass :11211; expires 70;这个配置会将 http:/ 指明到 memcached 的 abc 这个 key 去取数据。Ngi
35、nx 目前没有写入 memcached 的任何机制,所以要往 memcached 里写入数据得用后台的动态语言完成,可以利用 404 定向到后端去写入数据。OSCacheOSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能,OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。OSCache有以下特点:缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥有全面的API-OSCache API给你全面的程序来控制
36、所有的OSCache特性。永久缓存-缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。支持集群-集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期-你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时) 。OSCache是当前运用最广的缓存方案,JBoss,Hibernate,Spring等都对其有支持。OSCache的特点:1) 缓存任何对象:你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。 2) 拥有全面的API:OSCache API允许你通过编程
37、的方式来控制所有的OSCache特性。 3) 永久缓存:缓存能被配置写入硬盘,因此允许在应用服务器的多次生命周期间缓存创建开销昂贵的数据。 4) 支持集群:集群缓存数据能被单个的进行参数配置,不需要修改代码。 5) 缓存过期:你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不能满足需要时) 。Memcachedmemcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。Memcached是以Key/Value的形式单个对象缓存。自主开发的内存数据缓存服务独立进程方式的缓存服务对于一些常用的动态数据通过开发程序服务缓存在内存中,提供给其他子系统调用,如下面的数据就可以通过这样方式进行缓存。1)用户基本信息及状态的信息缓冲2)列表缓存,就像论坛里帖子的列表3)记录条数的缓存,比如一个论坛板块里有多少个帖子,这样才方便实现分页。4)复杂一点的group,sum,count查询,比如积分的分类排名信息发布系统(CMS)可以实现最简单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小额信用借款合同书样本
- 医疗器材合作合同样本
- 农村宅基地买卖合同样本
- 夫妻双方自愿离婚协议书撰写要点
- 2024大学生就业协议书范例
- 离婚标准协议书815672024年
- 股东之间的投资合作协议
- 汽车买卖合同书样本
- 电视剧动画制作合作协议
- 合同担保书样本
- 《中值定理应用》课件
- 六年级英语上册课件-Unit4 I have a pen pal 人教pep (共23张PPT)
- 糖尿病膳食计算课件
- 文化创意产品设计及案例PPT完整全套教学课件
- DB4208T74-2022《早春大棚西瓜生产技术规程》
- 急诊及创伤外科题库
- 人教版四年级上册数学大数的认识《改写和近似数》课件
- 幼儿园大班科学:《动物城破案》 课件
- 船用柴油机的发展与分类课件
- 初中生物试验小组活动记录
- 子宫正常解剖及超声图像课件
评论
0/150
提交评论