Apache+Tomcat+Terracotta+Ehcache负载均衡和分布式会话,缓存框架搭建

一.Apache2.4

1.下载安装

使用的版本是2.4版本。

登录apache 官网下载apache http server。默认没有linux版本,但官网提供了下载windows版本的地址。根据引导一步步安装即可。有使用手册。不懂可仔细阅读。

2.配置

主要涉及到3个文件,httpd.conf,mod_jk.conf,worker.properties。后两个文件默认是没有的需要自己建。都在conf目录下。

新建mod_jk.conf,内容如下:

#加载mod_jk Module

 

LoadModule jk_module modules/mod_jk.so

 

#指定 workers.properties文件路径

 

JkWorkersFile conf/worker.properties

 

#指定哪些请求交给tomcat处理,"loadbalancer"为在workers.propertise里指定的负载分配控制器名

 

JkMount /*.* loadbalancer

 

httpd.conf文件最后添加如下代码:

 

#添加整合tomcat配置

include "C:\Apache24\conf\mod_jk.conf"

 

新建worker.properties文件,内容如下:

 

worker.list=loadbalancer,tomcat2,tomcat1

 

定义第一个集群节点

worker.tomcat1.port=10109

worker.tomcat1.host=192.168.1.101

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor=1

worker.tomcat1.socket_keepalive=1

worker.tomcat1.socket_timeout=300 

 

定义第二个集群节点

worker.tomcat2.port=10209

worker.tomcat2.host=192.168.1.102

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor=1

worker.tomcat2.socket_keepalive=1

worker.tomcat2.socket_timeout=300

 

 

负载均衡行为

worker.loadbalancer.type=lb

worker.loadbalancer.balance_workers=tomcat2,tomcat1

worker.loadbalancer.sticky_session=0

 

    Apache在启动之后会在C:\Apache24\logs下生成mod_jk.log日志信息。Tomcat不能正常工作可以在这里查看日志。

二、Terracotta3.7.7

1.安装之后在bin下建立tc_config.xml配置文件内容如下:

 

<?xml version="1.0" encoding="UTF-8" ?>  

 <tc:tc-config xmlns:tc="http://www.terracotta.org/config">  

   <servers>  

     <!-- Sets where the Terracotta server can be found. Replace the value of host with the server's IP address. -->   

     <server host="192.168.1.100" name="Server1">  

       <data>%(user.home)/terracotta/server-data</data>  

       <logs>%(user.home)/terracotta/server-logs</logs>  

     </server>  

     <!-- If using a standby Terracotta server, also referred to as an ACTIVE-PASSIVE configuration, add the second server here. -->   

       

   <server host="192.168.1.131" name="Server2">   

     <data>%(user.home)/terracotta/server-data</data>  

     <logs>%(user.home)/terracotta/server-logs</logs>  

   </server>   

   <!-- If using more than one server, add an <ha>   

   section. -->  

    

   <ha>   

   <mode>networked-active-passive</mode>  

   <networked-active-passive>  

     <election-time>5</election-time>  

   </networked-active-passive>  

 </ha>  

  

  </servers>  

 <!-- Sets where the generated client logs are saved on clients. Note that the exact location of Terracotta logs on client machines may vary based on the value of user.home and the local disk layout. -->   

   <clients>  

          <logs>%(user.home)/terracotta/client-logs</logs>  

   </clients>  

 </tc:tc-config>

 

其中,%(user.home)/terracottaterracotta的安装目录。

 

启动terracotta使用bin目录下start_tc_server.batdev_console.bat可查看terracotta集群工作情况。

 

三、apache整合tomcat7

目的:负载均衡

Tomcat配置文件server.xml有三处需要修改。

1.ajp端口要与apache worker.properties中的一致

2.http1.1端口每个tomcat不同

3.有一个engine标签,添加jvmRoute=”worker.name”,其中worker.name就是apache worker.properties文件中的worker名称,tomcat1tomcat2等等。

 

四、terracotta整合tomcat7

目的:分布式会话

1.将terracotta common目录中的terracotta-toolkit-1.6-runtime-5.7.0.jarsessions目录中的terracotta-session-1.3.7.jar拷贝到tomcat lib目录下

2.修改tomcat context.xml 添加如下内容:

<Valve className="org.terracotta.session.TerracottaTomcat70xSessionValve" tcConfigUrl="terracotta.server1.ip:9510,terracotta.server2.ip:9510"/>

如上所示,集群中有几个terracotta就添加几个地址,逗号分割。

 

五、terracotta整个ehcache

目的:分布式缓存

在项目的src目录下新建ehcache.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>  

  

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

         xsi:noNamespaceSchemaLocation="ehcache.xsd"  

         updateCheck="true" monitoring="off"  

         dynamicConfig="true">  

  

    

    <cacheManagerEventListenerFactory class="" properties=""/>  

  

    <terracottaConfig url="192.168.1.101:9510,192.168.1.102:9510"/> <!--terracottaؾϱǷƤ׃,Ĭɏ׋ࠚΪ9510,נٶؾϱǷԃ,ؖٴ  -->  

  

    <defaultCache  

           maxEntriesLocalHeap="0"  

           eternal="false"  

           overflowToDisk="false"  

           timeToIdleSeconds="30"  

           timeToLiveSeconds="60">  

           <terracotta clustered="true" /> <!--使用集群-->  

    </defaultCache>  

      

    <cache name="demoCache"   

            maxBytesLocalHeap="200M"  

            eternal="false"  

            overflowToDisk="false"  

            timeToIdleSeconds="30"  

            timeToLiveSeconds="60"  

            memoryStoreEvictionPolicy="LFU"  

            maxElementsOnDisk="100000"  

            >  

    <terracotta clustered="true" />   

    </cache>  

  

</ehcache> 

 

如上图所示:

//配置terracotta服务器集群

<terracottaConfig url="192.168.1.101:9510,192.168.1.102:9510"/> 

//使用集群缓存

<terracotta clustered="true" /> <!--使用集群-->  

注意: 所有需要缓存的对象都需要实现serializable接口。默认的缓存方式就是序列化。具体暂时没有深究。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Quartz是一种广泛使用的分布式定时作业调度框架,可用于在多台服务器上触发执行一组作业。以下是Quartz分布式定时任务框架搭建步骤: 1. 安装数据库 Quartz框架需要一个持久性存储器来保存作业调度信息。选择一个数据库(如MySQL或Oracle)并创建Quartz的表结构。 2. 配置Quartz实例 在Quartz中,每个实例代表一个独立的调度器,可以在其上启动和停止作业调度。要配置Quartz实例,需要在代码中指定一些配置属性,例如数据库连接信息和调度器的名称。 3. 创建作业和触发器 在Quartz中,作业代表要执行的代码逻辑,而触发器则指定作业何时运行。可以使用Cron表达式来指定触发器的运行时间。要创建新的作业和触发器,请使用Quartz的API。 4. 创建分布式Quartz实例 为了使Quartz在分布式环境中运行,需要在所有服务器上创建Quartz实例。这些实例应该使用相同的数据库,并且应该使用相同的配置属性。 5. 配置集群 在分布式环境中,Quartz需要一种机制来协调调度器的运行。可以通过使用第三方插件(如Terracotta)或Quartz提供的基于数据库的集群实现来实现这一点。 6. 启动Quartz实例 一旦完成了配置和集群设置,可以启动Quartz实例并开始调度作业。要启动Quartz实例,需要使用Quartz的API方法。 总之,搭建Quartz分布式定时任务框架需要一定的技术和经验。最好在熟悉Quartz框架之前不要尝试这个任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值