您的位置:首页 > 运维架构 > Tomcat

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的计算,这些都需要去研究,具体要达到什么程度,还需要到具体的集群环境中研究测试其瓶颈。

因为作者本身学问有限,如果不对麻烦指出,相互学些

以上博客,如有转载,请指明出处
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: