教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

前台门户网站架构设计方案 - 图文(4)

来源:网络收集 时间:2025-10-24
导读: 5. Apache +tomcat集群实现负载均衡。 使用 apache和多个tomcat 配置一个可以应用的web网站,用Apache进行分流,把请求按照权重以及当时负荷分tomcat1,tomcat2...去处理,要达到以下要求: 1) Apache 做为HttpServe

5. Apache +tomcat集群实现负载均衡。

使用 apache和多个tomcat 配置一个可以应用的web网站,用Apache进行分流,把请求按照权重以及当时负荷分tomcat1,tomcat2...去处理,要达到以下要求:

1) Apache 做为HttpServer ,通过mod_jk连接器连接多个 tomcat 应用实例,并进行负载均衡。 2) 同时还要配置session复制,也就是说其中任何一个tomcat的添加的session,是要同步复制

到其它tomcat, 集群内的tomcat都有相同的session,并为系统(包括 Apache 和 tomcat)设定 Session 超时时间。 2.3.2 缓存 1. 系统架构方面的缓存 1) Squid缓存

架构方面使用Squid进行缓存。

注:SQUID使用了LM算法,LM就是页面Header里时间(Date)和Last-Modified时间的差。Date一般是Squid从后面取页面的时间,Last-Modified 一般是页面生成时间。

2) Nginx的缓存功能

Nginx从0.7.48版本开始,支持了类似Squid的缓存功能; 缓存把URL及相关组合当作Key,用md5编码哈希后保存;

Nginx的Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面;

采用MMAP实现,设置的缓存区大小不能超过物理内存+SWEB的值 3) 基于memcached的缓存

nginx对memcached有所支持,但是功能并不是特别之强,性能上还是非常之优秀。 location /mem/ {

if ( $uri ~ \ {

set $memcached_key \

memcached_pass 192.168.1.2:11211; }

expires 70; }

这个配置会将http://sudone.com/mem/abc指明到memcached的abc这个key去取数据。 Nginx目前没有写入memcached的任何机制,所以要往memcached里写入数据得用后台的动态语言完成,可以利用404定向到后端去写入数据。

Nginx传统缓存的缺点也是它和squid等缓存软件的不同之特色,所以也可看作其优点。在生产应用中它常常用作和squid的搭档,squid对于带?的链接往往无法阻挡,而nginx能将其访问拦住,例如:http://sudone.com/?和http://sudone.com/在squid上会被当做两个链接,所以会造成两次穿透;而nginx只会保存一次,无论链接变成

http://sudone.com/?1还是http://sudone.com/?123,均不能透过nginx缓存,从而有效地保护了后端主机。

nginx会非常老实地将链接形式保存到文件系统中,这样对于一个链接,可以很方便地查阅它在缓存机器上的缓存状态和内容,也可以很方便地和别的文件管理器如rsync等配合使用,它完完全全就是一个文件系统结构。

2. 应用程序方面的缓存 1) 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) 缓存过期:你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不能满足需要时)。 2) Memcached

memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。

Memcached是以Key/Value的形式单个对象缓存。

3) 自主开发的内存数据缓存服务 a) 独立进程方式的缓存服务

对于一些常用的动态数据通过开发程序服务缓存在内存中,提供给其他子系统调用,如下面的数据就可以通过这样方式进行缓存。

1) 用户基本信息及状态的信息缓冲 2) 列表缓存,就像论坛里帖子的列表

3) 记录条数的缓存,比如一个论坛板块里有多少个帖子,这样才方便实现分页。 4) 复杂一点的group,sum,count查询,比如积分的分类排名 b) 集成在WEB应用中的内存缓存

在web应用中对于热点的功能,考虑使用完全装载到内存,保证绝对的响应速度,对于需要频繁访问的热点数据,采用集中缓存(多个可以采用负载均衡),减轻数据库的压力,比如:很多配置信息,操作员信息等等。 2.3.3 页面静态化

静态的HTML页面严格地由标准的HTML标示语言构成,并不需要服务器端即时运算生成。这意味着,对一个静态HTML文档发出访问请求后,服务器端只是简单地将该文档传输到客户端。从服务器运行的那个时间片来看,这个传输过程仅仅占用了很小的CPU资源。

页面静态化就是采用效率最高、消耗最小的纯静态化的html页面来替换动态页面。我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。

同时采用第三方开源的CMS系统来实现网站内容的管理。对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现页面静态化,所以我们需要引入常见的信息发布系统(CMS),信息发布系统(CMS)可以实现最简单的信息录入自动生成静态页面,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。

同时,HTML静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用HTML静态化来实现,比如论坛中论坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。

在进行html静态化的时候还可以使用一种折中的方法,就是前端继续使用动态实现,在一定的策略下通过后台模块进行定时把动态网页生成静态页面,并定时判断调用,这个能实现很多灵活性的操作。

为了提高静态HTML的访问效率,主要可以对以下几个方面进行优化:网络带宽、磁盘I/O以及cache(高速缓冲存储器)。

2.3.4 数据库配置及优化 1. 数据库集群

对生产数据库采用RAC实现数据库的集群。

2. 数据库及表的散列

把生产数据库和查询数据库进行分离,针对系统业务数据的特点,把大的表进行拆分,对于访问较多的表采用分区表。

…… 此处隐藏:2050字,全部文档内容请下载后查看。喜欢就下载吧 ……

前台门户网站架构设计方案 - 图文(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/593732.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)