2台机器模拟6台机器集群,session会话分离热备,tomcat热插拔,3台tomcat机器,一台apache
2014-08-02 21:37
405 查看
这里的是用两台机器来模拟6台机器的集群为前台提供服务。这是什么意思呢?具体解释一下,这下面是大致思路
前段用apache来处理静态页面,后台tomcat处理jsp等动态页面,并且apache做服务器的负载均衡器和前段web服务器开放,将前面的请求发送给后面的apache处理
后面用三台tomcat作处理,接受来自*.jsp或者*.do等请求来处理相关请求
torracotta服务器做session集群,将session从tomcat中分离,两台服务器,一台做主服务器,另一台做热备,当一台session服务器失灵了或者down机了,则从服务器会检测此服务器是否超时,超时了,则认为它失效了,然后会让另一台服务器接管
接下来讲一下配置
怎么模拟的呢?
192.168.1.101 这里两个tomcat 一个apache,一个Terracotta
192.168.1.103 这里一个tomcat 一个Terracotta
前面apache与tomcat集群已经说清楚了,不作具体说明,在work.properties里再加入一个tomcat,也就是192.168.1.103
#========tomcat3======== worker.tomcat3.port=8013 worker.tomcat3.host=192.168.1.103 worker.tomcat3.type=ajp13 worker.tomcat3.lbfactor = 1
tomcat3就加进集群去了
然后配置terracotta集群,这里一台主服务器,另一台做热备镜像
与上一篇我写的这个terracotta稍微有点不同,以后我会写一篇配置文件的翻译文档,怎么配置再来告诉大家
下面是配置文件,注意配置文件里不能有中文
tc-config.xml
<?xml version="1.0" encoding="UTF-8" ?> <tc:tc-config xmlns:tc="http://www.terracotta.org/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.terracotta.org/schema/terracotta-6.xsd"> <tc-properties> <property name="l2.nha.dirtydb.autoDelete" value="true"/> <property name="l1.cachemanager.enabled" value="true"/> <property name="logging.maxLogFileSize" value="1024"/> </tc-properties> <system> <configuration-model>production</configuration-model> </system> <servers> <server host="192.168.1.101" name="localhost" bind="0.0.0.0"> <data>D:/terracotta/server-data</data> <logs>D:/terracotta/server-logs</logs> <index>D:/terracotta/server-index</index> <statistics>D:/terracotta//server-statistics</statistics> <dso-port bind="192.168.1.101">9510</dso-port> <jmx-port bind="192.168.1.101">9520</jmx-port> <l2-group-port bind="192.168.1.101">9530</l2-group-port> <authentication/> <dso> <client-reconnect-window>120</client-reconnect-window> <persistence> <mode>temporary-swap-only</mode> </persistence> <garbage-collection> <enabled>true</enabled> <verbose>false</verbose> <interval>3600</interval> </garbage-collection> </dso> </server> <server host="192.168.1.103" name="server2"> <data>D:/terracotta2/server-data</data> <logs>D:/terracotta2/server-logs</logs> <dso-port>8510</dso-port> <authentication/> <dso> <persistence> <mode>temporary-swap-only</mode> </persistence> <garbage-collection> <enabled>true</enabled> <verbose>true</verbose> <interval>3600</interval> </garbage-collection> </dso> </server> <mirror-groups> <mirror-group group-name="group1"> <members> <member>localhost</member> <member>server2</member> </members> <ha> <mode>networked-active-passive</mode> <networked-active-passive> <election-time>5</election-time> </networked-active-passive> </ha> </mirror-group> </mirror-groups> <ha> <mode>networked-active-passive</mode> <networked-active-passive> <election-time>5</election-time> </networked-active-passive> </ha> <update-check> <enabled>true</enabled> <period-days>10</period-days> </update-check> </servers> <clients> <logs>logs-%i</logs> </clients> </tc:tc-config>
然后将torracotta 拷贝一份到 192.168.1.103 ,将此配置文件也复制一份放到bin目录下面,192.168.1.101 torracotta目录的bin下面也要拷一份
应用的context.xml,将三个tomcat需要集群的应用的MATE-INF 都加进去
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Valve className="org.terracotta.session.TerracottaTomcat60xSessionValve" tcConfigUrl="192.168.1.101:9510" />
</Context>
好,集群至此就配置完成,启动的时候要注意一下
192.168.1.101 start-tc-server.bat -n localhost
192.168.1.103 start-tc-server.bat -n sever2
然后将三个tomcat都启动,apache也启动,注意的是,必须先将192.168.1.101的terracotta启动,我们设置的这个是主服务器,其他顺序随便
然后就可以测试了,测试文件第一篇文档,将apache+tomcat集群的时候说了
http://localhost/test/test.jsp
这个地址,或者在192.168.1.103上面用http://192.168.1.103/test/test.jsp
下面是效果图
tomcat3加入集群
terracotta集群配置成功效果
当192.168.1.101失效,192.168.1.103就会检测主服务器,是否超时,超时了,则自动激活提供服务,session信息仍然保存
当然这个集群还可以增加tomcat节点,后面有数据库节点,大致架构如下,数据库采用主从架构,读写分离配置,并且采用ehcache做分布式缓存,可伸缩的配置,数据库可以加台热备,一边保持他的可用性,分布式缓存可以抱枕他的伸缩性,当然也可以用memeched做分布式缓存,都很好配置。具体怎么样或者性能达到最高,还需要调优,比如tomcat优化,jvm优化,什么的,还可以将web组件分离,采用专门的服务器,进行专门的优化,来提高其性能,比如有的侧重io读写,有的侧重cpu的计算,这些都需要去研究,具体要达到什么程度,还需要到具体的集群环境中研究测试其瓶颈。
因为作者本身学问有限,如果不对麻烦指出,相互学些
以上博客,如有转载,请指明出处
相关文章推荐
- Tomcat 6 集群配置 session 共享 同一台机器
- Apache+tomcat实现负载均衡集群和session共享、tengine+tomcat实现web动静分离
- Apache+Tomcat实现负载均衡及集群(session同步)--三、动静分离(2)使用mod_proxy
- (二)apache+tomcat集群+session会话同步 推荐
- apache+tomcat集群+session会话同步
- 在一台主机上模拟tomcat集群
- Apache + Tomcat + Linux 集群和均衡负载 (Session 同步复制) 配置实
- Apache+Tomcat集群配置+session共享
- linux环境下通过nginx实现tomcat集群实现Session会话问题
- Apache+Tomcat集群配置+session共享
- Apache+Tomcat集群负载均衡的两种session处理方式
- 基于mod_proxy 负载均衡Apache+tomcat 集群-简单HA(No-Session,LB+Failover)
- Apache+Tomcat集群部署下的session共享解决
- 方案三:APACHE(proxy) + TOMCAT(session复制)兑现高可用网站或管理系统集群
- apache+多个tomcat+memcached共享session会话(ubuntu12.04篇)
- 节点集群Apache+Tomcat集群之深入Session
- Apache+Tomcat集群负载均衡的两种session处理方式
- Linux Apache集成Tomcat 动静分离与垂直集群(域名绑定)
- Apache+Tomcat负载均衡两种session共享方式的设置之二复制会话
- Apache+Tomcat负载均衡两种session共享方式的设置之二复制会话