设为首页 收藏本站
查看: 1104|回复: 0

[经验分享] terracotta + tomcat + nginx集群

[复制链接]

尚未签到

发表于 2016-12-25 07:32:57 | 显示全部楼层 |阅读模式
今天研究了一下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安装路径>
如果配置无误,会看到下面的信息
[img]
DSC0000.jpg
[/img]
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已经共享,说明集群配置成功

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-318921-1-1.html 上篇帖子: nginx 重写 rewrite 实战 下篇帖子: 关于
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表