




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