- 浏览: 133191 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (137)
- java (138)
- c# winform (笨方法)根据不同的样式配置 设置窗体相关控件的背景 以改变窗体风格 (1)
- Android平台下实现一个进程管理器 (1)
- 装饰模式 (1)
- 【转】介绍线性代数 (1)
- fqueue初步分析 (1)
- 千万级sql优化 (1)
- 开源项目 (1)
- js弹出遮罩层【并弹出提示信息】 (1)
- 代码高亮、源码格式、iteye代码格式的种种方法 (1)
- Drupal学习笔记(四)warning: array_key_exists(): The first argument should be either a string or an integer (1)
- 2011年Java EE生产力报告 (1)
- java(j2se)学习笔记----类注释文档编写方法? (1)
- ubuntu 添加应用程序 到快速启动 (1)
- JPA注解配置实例 (1)
- C++著名内裤 (1)
- Android笔试或者面试的几个题目 (1)
- Ajax&&GWT (1)
- IHS静默安装(转) (1)
- WIN98下运行DOTNET程序的一些问题 (1)
- 开启新的项目——基于电子邮件的知识管理系统 (1)
- 这里的BLOG服务器也太不稳定了 (1)
- MapXtreme2004代码 读取TAB表中的元素 (1)
- 终于把我的大部分BLOG复制到这里来了 (1)
- 2011NOKIA笔试题目 (1)
- Ajax实现省市二级联动(源代码) (1)
- mxgraph之保存图片 (1)
- sso单点登录 (1)
- Android开发之SurfaceView (1)
- Android开发之ListView (1)
- SQL SERVER 2008 中分页方法集锦 (1)
- 2011-12-2 (1)
- 分页组件 (1)
- Myeclipse自动加入struts 2 Core Libraries导致antlr错误 (1)
- jbpm4在tomcat6中EL错误 (1)
- c++中有关数组和指针的若干问题 (1)
- rails 上传文件和删除文件 (1)
最新评论
-
mazongfei:
就是有点乱,不过还是不错的
sso单点登录 -
xiaokang1582830:
写得这么乱,地球人是无法看得懂的...
sso单点登录 -
shenyu:
大侠,下回分解在哪里啊?
mxgraph之保存图片 -
GZQ0821:
为啥不编译后贴出来呢!
SQL SERVER 2008 中分页方法集锦 -
evil9999:
http://belives2012.blog.163.com ...
千万级sql优化
1.首先,在apache安装目录下找到conf/httpd.conf文件,以文本编辑器打开。
去掉以下文本前的注释符(#)以便让apache在启动时自动加载代理(proxy)模块。
loadmodule proxy_module modules/mod_proxy.so
loadmodule proxy_ajp_module modules/mod_proxy_ajp.so
loadmodule proxy_balancer_module modules/mod_proxy_balancer.so
loadmodule proxy_connect_module modules/mod_proxy_connect.so
loadmodule proxy_ftp_module modules/mod_proxy_ftp.so
loadmodule proxy_http_module modules/mod_proxy_http.so
向下拉动文档找到<ifmodule dir_module>节点,在directoryindex index.html后加上index.jsp,这一步只是为了待会配置完tomcat后能看到小猫首页,可以不做。
继续下拉文档找到include conf/extra/httpd-vhosts.conf,去掉前面的注释符。
用文本编辑器打开conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上
<virtualhost *:80>
serveradmin 管理员邮箱
servername 域名(没有可用ip地址代替)
serveralias localhost
proxypass / balancer://cluster/ stickysession=jsessionid nofailover=on
proxypassreverse / balancer://cluster/
errorlog "logs/lbtest-error.log"
customlog "logs/lbtest-access.log" common
</virtualhost>
这里balancer://是告诉apache需要进行负载均衡的代理,后面的cluster是集群名,可以随意取,两个日志引擎errorlog负责记 录错误,customlog负责记录所有的http访问以及返回状态,日志名可以自己取,笔者取为lbtest。httpd-vhosts.conf配置 完毕,回到httpd.conf,在文档最下面加上
proxyrequests off
<proxy balancer://cluster>
balancermember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1
balancermember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2
</proxy>
proxyrequests off 是告诉apache需要使用反向代理(利用apache进行负载均衡必须使用反向代理,关于更多负载均衡和反向代理详情可以参阅笔者另一篇博客http://zyycaesar.javaeye.com/admin/blogs/293839),<proxy balancer://cluster>用于配置工作在tomcat集群中的所有节点,这里的"cluster"必须与上面的集群名保持一致。 apache通过ajp协议与tomcat进行通信,ip地址和端口唯一确定了tomcat节点和配置的ajp接受端口。loadfactor是负载因 子,apache会按负载因子的比例向后端tomcat节点转发请求,负载因子越大,对应的tomcat服务器就会处理越多的请求,如两个tomcat都 是1,apache就按1:1的比例转发,如果是2和1就按2:1的比例转发。route参数对应后续tomcat配置中的引擎路径 (jvmroute)。
#虚拟机配置,负载均衡配置
<virtualhost *:8000>
serveradmin weigbo@163.com
servername localhost
serveralias localhost
#小心,有些地方要有空格,要不然会出错哈哈。
proxypass / balancer://cluster/ stickysession=jsessionid|jsessionid nofailover=on
proxypassreverse / balancer://cluster/
#errorlog "logs/error.log"
#customlog "logs/access.log" common
</virtualhost>
#the proxyrequests directive should usually be set off when using proxypass.
proxyrequests off
<proxy balancer://cluster>
balancermember ajp://localhost:8009 loadfactor=1 route=tomcat7_a smax=5 max=20 ttl=120 retry=300 timeout=15
balancermember ajp://localhost:9009 loadfactor=1 route=tomcat7_b smax=5 max=20 ttl=120 retry=300 timeout=15
# status=+h为配置热备,当所有机器都over时,才会请求该机器
#balancermember http://192.168.1.218:8009 status=+h
proxyset lbmethod=bytraffic
</proxy>
重启apache服务,如果此时访问http://localhost/将会返回503错误,打开刚才配置的错误日志logs/lbtest-error.log,可以看到错误原因是因为后台服务器没有响应,因为此时tomcat尚未配置和启动。
2.tomcat配置
server.xml找到<engine name="catalina" defaulthost="localhost">,去掉这段或改为注释,把上方紧挨的<engine name="catalina" defaulthost="localhost" jvmroute="jvm1">注释符去掉,对于t2,去掉注释符并把jvm1改为jvm2。这里的jvmroute对应apache httpd.conf中balancermember中配置的route参数。
向下找到<cluster classname="org.apache.catalina.ha.tcp.simpletcpcluster"/>,打开注释,这里的配置是 为了可以在集群中的所有tomcat节点间共享会话(session)。如果仅仅为了获得一个可用的tomcat集群,cluster只需要这么配置就可 以了。
<cluster classname="org.apache.catalina.ha.tcp.simpletcpcluster"
channelsendoptions="8">
<manager classname="org.apache.catalina.ha.session.deltamanager"
expiresessionsonshutdown="false"
notifylistenersonreplication="true"/>
<channel classname="org.apache.catalina.tribes.group.groupchannel">
<membership classname="org.apache.catalina.tribes.membership.mcastservice"
address="228.0.0.4"
port="45564"
frequency="500"
droptime="3000"/>
<receiver classname="org.apache.catalina.tribes.transport.nio.nioreceiver"
address="auto"
<!—tcplistenport如果是同一机器部署两个tomcat7应用,则修改tomcat7_b为4001,以免冲突. 不同机器下,不用更改此项。—>
port="4000"
autobind="100"
selectortimeout="5000"
maxthreads="6"/>
<sender classname="org.apache.catalina.tribes.transport.replicationtransmitter">
<transport classname="org.apache.catalina.tribes.transport.nio.pooledparallelsender"/>
</sender>
<interceptor classname="org.apache.catalina.tribes.group.interceptors.tcpfailuredetector"/>
<interceptor classname="org.apache.catalina.tribes.group.interceptors.messagedispatch15interceptor"/>
</channel>
<valve classname="org.apache.catalina.ha.tcp.replicationvalve"
filter=""/>
<valve classname="org.apache.catalina.ha.session.jvmroutebindervalve"/>
<deployer classname="org.apache.catalina.ha.deploy.farmwardeployer"
tempdir="/tmp/war-temp/"
deploydir="/tmp/war-deploy/"
watchdir="/tmp/war-listen/"
watchenabled="false"/>
<clusterlistener classname="org.apache.catalina.ha.session.jvmroutesessionidbinderlistener"/>
<clusterlistener classname="org.apache.catalina.ha.session.clustersessionlistener"/>
</cluster>
3.web.xml
在<web-app>节点下加入<distributable />,这一步非常重要,是为了通知tomcat服务器,当前应用需要在集群中的所有节点间实现session共享。如果tomcat中的所有应用都 需要session共享,也可以把conf/context.xml中的<context>改为<context distributable="true">,这样就不需对所有应用的web.xml再进行单独配置。
4负载均衡管理器
负载均衡管理器可以动态更新负载均衡的应用,你可以用管理器更改负载因子或者特定的应用,还可以把应用设为off模式。
为了使用balancer management, mod_status和mod_proxy_balancer 必需要加载到apache.
设置:
#此项为mod_proxy_balancer管理器需要
loadmodule status_module modules/mod_status.so
在负载均衡项前加上:
#mod_balancer管理应用
<location /balancer-manager>
sethandler balancer-manager
order allow,deny
allow from all
</location>
可以通过以下地址访问:http://localhost/balancer-manager
5.mod_proxy负载均衡算法
目前mod_proxy有3种负载均衡算法:
1. request counting(我猜是round-robin), lbmethod=byrequests
2. weighted traffic counting(这个是按权重,此例也是用此算法), lbmethod=bytraffic
3. pending request counting(从apche文档来看,应该是按负载量,也就是往负载少的派发新请求). lbmethod=bybusyness
它们通过lbmethod值设置。
去掉以下文本前的注释符(#)以便让apache在启动时自动加载代理(proxy)模块。
loadmodule proxy_module modules/mod_proxy.so
loadmodule proxy_ajp_module modules/mod_proxy_ajp.so
loadmodule proxy_balancer_module modules/mod_proxy_balancer.so
loadmodule proxy_connect_module modules/mod_proxy_connect.so
loadmodule proxy_ftp_module modules/mod_proxy_ftp.so
loadmodule proxy_http_module modules/mod_proxy_http.so
向下拉动文档找到<ifmodule dir_module>节点,在directoryindex index.html后加上index.jsp,这一步只是为了待会配置完tomcat后能看到小猫首页,可以不做。
继续下拉文档找到include conf/extra/httpd-vhosts.conf,去掉前面的注释符。
用文本编辑器打开conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上
<virtualhost *:80>
serveradmin 管理员邮箱
servername 域名(没有可用ip地址代替)
serveralias localhost
proxypass / balancer://cluster/ stickysession=jsessionid nofailover=on
proxypassreverse / balancer://cluster/
errorlog "logs/lbtest-error.log"
customlog "logs/lbtest-access.log" common
</virtualhost>
这里balancer://是告诉apache需要进行负载均衡的代理,后面的cluster是集群名,可以随意取,两个日志引擎errorlog负责记 录错误,customlog负责记录所有的http访问以及返回状态,日志名可以自己取,笔者取为lbtest。httpd-vhosts.conf配置 完毕,回到httpd.conf,在文档最下面加上
proxyrequests off
<proxy balancer://cluster>
balancermember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1
balancermember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2
</proxy>
proxyrequests off 是告诉apache需要使用反向代理(利用apache进行负载均衡必须使用反向代理,关于更多负载均衡和反向代理详情可以参阅笔者另一篇博客http://zyycaesar.javaeye.com/admin/blogs/293839),<proxy balancer://cluster>用于配置工作在tomcat集群中的所有节点,这里的"cluster"必须与上面的集群名保持一致。 apache通过ajp协议与tomcat进行通信,ip地址和端口唯一确定了tomcat节点和配置的ajp接受端口。loadfactor是负载因 子,apache会按负载因子的比例向后端tomcat节点转发请求,负载因子越大,对应的tomcat服务器就会处理越多的请求,如两个tomcat都 是1,apache就按1:1的比例转发,如果是2和1就按2:1的比例转发。route参数对应后续tomcat配置中的引擎路径 (jvmroute)。
#虚拟机配置,负载均衡配置
<virtualhost *:8000>
serveradmin weigbo@163.com
servername localhost
serveralias localhost
#小心,有些地方要有空格,要不然会出错哈哈。
proxypass / balancer://cluster/ stickysession=jsessionid|jsessionid nofailover=on
proxypassreverse / balancer://cluster/
#errorlog "logs/error.log"
#customlog "logs/access.log" common
</virtualhost>
#the proxyrequests directive should usually be set off when using proxypass.
proxyrequests off
<proxy balancer://cluster>
balancermember ajp://localhost:8009 loadfactor=1 route=tomcat7_a smax=5 max=20 ttl=120 retry=300 timeout=15
balancermember ajp://localhost:9009 loadfactor=1 route=tomcat7_b smax=5 max=20 ttl=120 retry=300 timeout=15
# status=+h为配置热备,当所有机器都over时,才会请求该机器
#balancermember http://192.168.1.218:8009 status=+h
proxyset lbmethod=bytraffic
</proxy>
重启apache服务,如果此时访问http://localhost/将会返回503错误,打开刚才配置的错误日志logs/lbtest-error.log,可以看到错误原因是因为后台服务器没有响应,因为此时tomcat尚未配置和启动。
2.tomcat配置
server.xml找到<engine name="catalina" defaulthost="localhost">,去掉这段或改为注释,把上方紧挨的<engine name="catalina" defaulthost="localhost" jvmroute="jvm1">注释符去掉,对于t2,去掉注释符并把jvm1改为jvm2。这里的jvmroute对应apache httpd.conf中balancermember中配置的route参数。
向下找到<cluster classname="org.apache.catalina.ha.tcp.simpletcpcluster"/>,打开注释,这里的配置是 为了可以在集群中的所有tomcat节点间共享会话(session)。如果仅仅为了获得一个可用的tomcat集群,cluster只需要这么配置就可 以了。
<cluster classname="org.apache.catalina.ha.tcp.simpletcpcluster"
channelsendoptions="8">
<manager classname="org.apache.catalina.ha.session.deltamanager"
expiresessionsonshutdown="false"
notifylistenersonreplication="true"/>
<channel classname="org.apache.catalina.tribes.group.groupchannel">
<membership classname="org.apache.catalina.tribes.membership.mcastservice"
address="228.0.0.4"
port="45564"
frequency="500"
droptime="3000"/>
<receiver classname="org.apache.catalina.tribes.transport.nio.nioreceiver"
address="auto"
<!—tcplistenport如果是同一机器部署两个tomcat7应用,则修改tomcat7_b为4001,以免冲突. 不同机器下,不用更改此项。—>
port="4000"
autobind="100"
selectortimeout="5000"
maxthreads="6"/>
<sender classname="org.apache.catalina.tribes.transport.replicationtransmitter">
<transport classname="org.apache.catalina.tribes.transport.nio.pooledparallelsender"/>
</sender>
<interceptor classname="org.apache.catalina.tribes.group.interceptors.tcpfailuredetector"/>
<interceptor classname="org.apache.catalina.tribes.group.interceptors.messagedispatch15interceptor"/>
</channel>
<valve classname="org.apache.catalina.ha.tcp.replicationvalve"
filter=""/>
<valve classname="org.apache.catalina.ha.session.jvmroutebindervalve"/>
<deployer classname="org.apache.catalina.ha.deploy.farmwardeployer"
tempdir="/tmp/war-temp/"
deploydir="/tmp/war-deploy/"
watchdir="/tmp/war-listen/"
watchenabled="false"/>
<clusterlistener classname="org.apache.catalina.ha.session.jvmroutesessionidbinderlistener"/>
<clusterlistener classname="org.apache.catalina.ha.session.clustersessionlistener"/>
</cluster>
3.web.xml
在<web-app>节点下加入<distributable />,这一步非常重要,是为了通知tomcat服务器,当前应用需要在集群中的所有节点间实现session共享。如果tomcat中的所有应用都 需要session共享,也可以把conf/context.xml中的<context>改为<context distributable="true">,这样就不需对所有应用的web.xml再进行单独配置。
4负载均衡管理器
负载均衡管理器可以动态更新负载均衡的应用,你可以用管理器更改负载因子或者特定的应用,还可以把应用设为off模式。
为了使用balancer management, mod_status和mod_proxy_balancer 必需要加载到apache.
设置:
#此项为mod_proxy_balancer管理器需要
loadmodule status_module modules/mod_status.so
在负载均衡项前加上:
#mod_balancer管理应用
<location /balancer-manager>
sethandler balancer-manager
order allow,deny
allow from all
</location>
可以通过以下地址访问:http://localhost/balancer-manager
5.mod_proxy负载均衡算法
目前mod_proxy有3种负载均衡算法:
1. request counting(我猜是round-robin), lbmethod=byrequests
2. weighted traffic counting(这个是按权重,此例也是用此算法), lbmethod=bytraffic
3. pending request counting(从apche文档来看,应该是按负载量,也就是往负载少的派发新请求). lbmethod=bybusyness
它们通过lbmethod值设置。
发表评论
-
rails 上传文件和删除文件
2012-02-07 14:33 1081文件上传,页面代码: <%form_tag '/ ... -
c++中有关数组和指针的若干问题
2012-02-07 14:13 771<pre class="reply-t ... -
jbpm4在tomcat6中EL错误
2012-02-04 14:03 1038? jbpm4 在tomcat6 下面ssh2 这个错 ... -
Myeclipse自动加入struts 2 Core Libraries导致antlr错误
2012-02-04 13:29 947解决方法: 选择windows---preferenc ... -
分页组件
2012-02-03 12:23 892撒地方阿斯顿的撒啊受到爱上 ... -
2011-12-2
2012-02-02 15:34 719ubuntu系统root默认密码,每次开机会随机产生默 ... -
SQL SERVER 2008 中分页方法集锦
2012-02-01 09:34 1351<span style="font-s ... -
Android开发之ListView
2012-01-31 13:53 1230<p><br></p&g ... -
Android开发之SurfaceView
2012-01-11 15:34 1207<h1>Android开发 ... -
sso单点登录
2012-01-11 12:44 3870SSO单点登录 目 ... -
mxgraph之保存图片
2011-12-28 18:38 23211、写在前端:任何情况下,保存图片不可能只通过前台代码 ... -
Ajax实现省市二级联动(源代码)
2011-12-28 16:23 4979<span style="font-f ... -
2011NOKIA笔试题目
2011-12-21 09:29 1045今天去NOKIA机试,纯粹打酱油,没什么准备,题目貌似 ... -
终于把我的大部分BLOG复制到这里来了
2011-12-16 16:22 1009本来我的BLOG都在博客中国的<img src= ... -
MapXtreme2004代码 读取TAB表中的元素
2011-12-15 12:14 879<?xml:namespace prefix = ... -
这里的BLOG服务器也太不稳定了
2011-12-14 20:53 650<p class="MsoPlainT ... -
开启新的项目——基于电子邮件的知识管理系统
2011-12-14 19:59 909</span></font>& ... -
WIN98下运行DOTNET程序的一些问题
2011-12-14 17:24 780</span></font>& ... -
IHS静默安装(转)
2011-12-13 11:59 1271<span style="col ... -
Ajax&&GWT
2011-12-13 10:14 641工作的久了,一直忙于公司相关的技术和业务上,对于如今流 ...
相关推荐
经验分享,2012年 基础的代码例子和描述 以后查找用
apache tomcat负载集群,appache负载,tomcat负载
该文档是我综合了无数相关文档,在我公司项目实施成功后总结的一套文档,经历了数次改动,希望能指引大家少走弯路。 如有表述不清的地方请联系我:QQ:603678227 共同进步。
apache tomcat 集群 负载 均衡 利用apache和tomcat进行集群
Apache+Tomcat集群配置,Apache+Tomcat集群配置,Apache+Tomcat集群配置
apache2.2和tomcat6.0集群配置,Apache和Tomcat集群配置步骤。
本文为您讲述了如何在 Windows 或 Linux 下进行 Tomcat 集群的安装配置。 Windows 下 Tomcat 集群的安装配置与 Linux 下...使用 Apache作为集群的代理服务器(它可以安装在任何一台机 器上),它同时也负责负载均衡。
详细描述了如何配置apache+tomcat集群,经过测试可以使用
Apache+Tomcat集群配置详解 把Apache安装为运行在80端口的Windows服务,安装成功后在系统服务列表中可以看到Apache2.2服务。对于已安装IIS的机器,在启动Apache服务之前必须首先停止IIS Admin服务,不然会因为端口...
Apache,Tomcat集群和负载均衡包括了apache-tomcat-5.5.29.zip,apache_2.2.4-win32-x86-no_ssl.msi,mod_jk-1.2.28-httpd-2.2.3.so,ApacheTomcat整合文档.doc,Apache,Tomcat集群和负载均衡教程.doc,Tomcat负载...
NULL 博文链接:https://eagle0123.iteye.com/blog/1446357
Apache+Tomcat集群,本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置。
ApacheTomcat集群部署配置方案
轻松实现Apache,Tomcat集群和负载均衡 轻松实现 Apache,Tomcat 集群和负载均衡 ...so 第一部分: 第一部分:负载均衡 负载均衡,就是 apache 将客户请求均衡的分给 tomcat1,tomcat2....去处理
本文是自己所学课程做的一个实验,基于Xen实现Apache及tomcat集群,并进行session测试。首先你要自己已经安装好Xen及虚拟机。
反向代理负载均衡 Apache + Tomcat集群 多的我也不多说了 看文档
Apache和tomcat集群部署配置文件案例,包含Apache中的配置文件httpd.conf,mod_jk.conf,workers.properties,以及tomcat中配置文件server.xml
windows系统下apache和tomcat集群配置,自己整理的!
apache tomcat集群要用到的mod_jk.so