terracotta + tomcat + nginx集群

Easter79
• 阅读 787

今天研究了一下terracotta + tomcat的集群,记录一下。 
一、环境 
    本机,ip:192.168.2.158  win7 64位 
    虚拟机,ip:192.168.81.128 RedHat 64位 
    本机装两个tomcat 和 一个terracotta,虚拟机装一个teracotta。 
    虚拟机也要装jdk,因为terracotta需要jdk的支持。 
    terracotta安装目录,win7为G:\java_workspaces\terracotta-3.7.7  虚拟机为/usr/lws_life/terracotta-3.7.7 
二、步骤 
    1、将terracotta安装目录下sessions文件夹里的terracotta-session-1.3.7.jar 和 common文件夹里的 terracotta-toolkit-1.6-runtime-5.7.0.jar 文件 都拷贝到 tomcat的lib中(两个tomcat都需要拷贝)。 
    2、在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>development</configuration-model>  
  </system>  
  
  <servers>  
    <!-- 这里配置第一台 terracotta服务器信息  -->  
    <server host="192.168.2.158" name="MyServer1" bind="192.168.2.158">  
      <data>G:/java_workspaces/terracotta-3.7.7/server-data</data>  
      <logs>G:/java_workspaces/terracotta-3.7.7/server-logs</logs>  
      <index>G:/java_workspaces/terracotta-3.7.7/server-index</index>  
      <statistics>G:/java_workspaces/terracotta-3.7.7/server-statistics</statistics>  
  
      <!-- 这些端口都是默认的  -->  
      <dso-port bind="192.168.2.158">9510</dso-port>  
      <jmx-port bind="192.168.2.158">9520</jmx-port>  
      <l2-group-port bind="192.168.2.158">9530</l2-group-port>  
  
      <authentication/>  
  
      <http-authentication>  
        <user-realm-file>G:/java_workspaces/terracotta-3.7.7/realm.properties</user-realm-file>  
      </http-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>  
  
    <!-- 这里配置第二台terracotta服务器信息 -->  
    <server host="192.168.81.128" name="MyServer2" bind="192.168.81.128">  
      <data>/usr/lws_file/terracotta-3.7.7/server-data</data>  
      <logs>/usr/lws_file/terracotta-3.7.7/server-logs</logs>  
      <index>/usr/lws_file/terracotta-3.7.7/server-index</index>  
      <statistics>/usr/lws_file/terracotta-3.7.7/server-statistics</statistics>  
  
      <dso-port bind="192.168.81.128">9510</dso-port>  
  
      <jmx-port bind="192.168.81.128">9520</jmx-port>  
  
      <l2-group-port bind="192.168.81.128">9530</l2-group-port>  
  
      <authentication/>  
  
      <http-authentication>  
        <user-realm-file>/usr/lws_file/terracotta-3.7.7/realm.properties</user-realm-file>  
      </http-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>  
      
    <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>

3、修改tomcat安装目录conf文件夹中的context.xml文件,添加内容如下:

<?xml version="1.0" encoding="UTF-8"?>  
<Context>  
    <WatchedResource>WEB-INF/web.xml</WatchedResource>  
      
    <!-- 主要添加这一段 我用的tomcat6.0, tcConfigUrl为terracotta服务器的地址,端口就是tc-config.xml文件中设置的dso端口,这里默认为9510,多个服务器信息用逗号分隔 -->  
    <Valve className="org.terracotta.session.TerracottaTomcat60xSessionValve" tcConfigUrl="192.168.2.158:9510,192.168.81.128:9510"/>  
</Context>

4、配置nginx,配置文件为nginx安装目录下conf文件夹中的nginx.conf,主要修改代码如下:

#这里是配置nginx的负载均衡 有四种负载均衡的方式,这里采用权值的分配  
upstream mysvr {  
      #weigth参数表示权值,权值越高被分配到的几率越大  
      #本机上的Squid开启3128端口  
      #这里的ip和端口请对照tomcat做相应修改  
      server 127.0.0.1:8080 weight=1;  
      server 127.0.0.1:8081 weight=1;  
    }  
  
    server {  
            #监听80端口  
        listen 80;  
        server_name localhost;  
        location / {  
              #这里的mysvr为上方配置的 负载均衡的信息  
          proxy_pass http://mysvr;  
          proxy_redirect off;  
          proxy_set_header Host $host;  
          proxy_set_header X-Real-IP $remote_addr;  
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
          client_max_body_size 10m;  
              client_body_buffer_size 128k;  
                
              #该值表示一台服务器down了之后,如果分配给该服务器资源,链接超过1秒钟,就重新分配资源  
              proxy_connect_timeout 1;  
              proxy_send_timeout 90;  
              proxy_read_timeout 90;  
              proxy_buffer_size 4k;  
              proxy_buffers 4 32k;  
              proxy_busy_buffers_size 64k;  
              proxy_temp_file_write_size 64k;  
        }  
    }

5、启动terracotta服务。 
   win7 下进入cmd模式,进入terracotta的bin目录,执行如下命令 

start-tc-server.bat -f <安装路径>/tc-config.xml

linux下,进入terracotta的bin目录,执行如下命令

start-tc-server.sh -f <安装路径>/tc-config.xml

 注意:这里启动需要指定tc-config.xml文件,否则会使用默认的配置文件。 
         如果linux下不能执行该命令,需要赋予权限,最简单的就是 chmod 777 -R  <terracotta安装路径> 
如果配置无误,会看到下面的信息 

terracotta + tomcat + nginx集群

6、启动tomcat服务 和 nginx服务。 
   访问 http://127.0.0.1(nginx 和 tomcat都是装在本机的,所以可以用127.0.0.1访问,项目部署时去掉项目名,比如http://127.0.0.1:8080/coal 访问的要改为 http://127.0.0.1:8080访问
7、测试 
   查看sessionId,应该会在原有的sessionId后面加上 .X,X为数字,代表不同的服务器,如hgdjfgdhsgfjhsjhg.1或 hgdjfgdhsgfjhsjhg.2,这时关闭其中一台tomcat,项目可以正常运行,然后启动关闭的tomcat,在关闭另一台tomcat,发现session已经共享,说明集群配置成功

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k