2台机器模拟6台机器集群,session会话分离热备,tomcat热插拔,3台tomcat机器,一台apache

该博客介绍了如何通过Apache、Tomcat和Terracotta搭建集群环境,实现Session会话分离和热备。配置了两台服务器,每台服务器上有一个Tomcat实例,一台作为主Terracotta服务器,另一台作为热备。当主服务器失效时,热备服务器能够接管。同时,还讨论了如何扩展集群,包括增加Tomcat节点和数据库的主从架构,以及利用分布式缓存提高系统的伸缩性。
摘要由CSDN通过智能技术生成

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

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

以上博客,如有转载,请指明出处


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值