通过数据库来实现tomcat集群
前段时间一直在学习tomcat的集群,tomcat5已经配置成功了,无奈到了tomcat6上,总是不成功,出现的问题是一个tomcat无法发现另外一个tomcat,今天又在网上看了下,发现了一个新的方法来实现集群。
集群无非就是实现两个关键点,一个是负载的均衡,一个是session的复制。
负载的均衡通过apache很容易分配,前面也有介绍,就不细说了。
tomcat6的session复制,按照官网上说的tomcat5配置成功了,到了6就总是不成功。
下面说下新方法
1.编辑context.xml文件,添加
<Manager className="org.apache.catalina.session.PersistentManager" checkInterval="1" maxIdleBackup="2"> <Store className="org.apache.catalina.session.JDBCStore" driverName="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/session?user=root&password=123456" sessionTable="tomcat_sessions" sessionIdCol="session_id" sessionDataCol="session_data" sessionValidCol="valid_session" sessionMaxInactiveCol="max_inactive" sessionLastAccessedCol="last_access" sessionAppCol="app_name" checkInterval="1" debug="99" /> </Manager>
create table tomcat_sessions ( session_id varchar(100) not null primary key, valid_session char(1) not null, max_inactive int not null, last_access bigint not null, app_name varchar(255), session_data mediumblob, KEY kapp_name(app_name));
CREATE TABLE `tomcat_sessions` ( `session_id` varchar(100) NOT NULL, `valid_session` char(1) NOT NULL, `max_inactive` int(11) NOT NULL, `last_access` bigint(20) NOT NULL, `app_name` varchar(255) DEFAULT NULL, `session_data` varbinary(60000) DEFAULT NULL, PRIMARY KEY (`session_id`), KEY `kapp_name` (`app_name`)) ENGINE=MEMORY DEFAULT CHARSET=utf8;