首页 技术 正文
技术 2022年11月12日
0 收藏 494 点赞 4,900 浏览 2162 个字

由于公司新业务突然上来了,单个Tomcat实例已经不能满足业务发展的需要了,只能通过搭建集群来解决问题了。所以就出现了下面的内容:

1.Redis保存Session信息

为了保存Session信息在集群中可用,所以session信息不能保存Tomcat中,因为如果是这样的话要想实现Session信息的共享就必须通过Session复制的方式来同步Tomcat之间的Session信息,这样比较费力费力而且性能消耗比较大,所以选择通过redis来实现Session信息的保存和共享。

1.1Redis的安装

  教程很多,不做赘述。(http://www.redis.cn/)

1.2Tomcat 使用Redis保存Session信息的配置修改

  下面只考虑一个Redis的情况,如果需要配置Redis的主从和集群还需要其他处理。

1.2.1context.xml修改(位于conf目录下面)

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60" />

上面的配置文件中className 需要和tomcat-redis-session-manager包的路径信息保持一致,这个可以jar包可以通过Github获取(https://github.com/jcoleman/tomcat-redis-session-manager),自己打包获取,没有从MAVEN中仓库中获取到。

1.2.2server.xml修改(位于conf目录下面)

修改服务监听和关闭端口。

1.3所需要的相关Jar包文件(放在Tomcat下面的lib目录中)

  通过上面的Github地址可以知道,还需要tomcat-redis-session-manager、redis的客户端操作工具jedis以及commons-pool2的支持,但是实际的操作过程中发现还需要commons-logging-1.2\commons-pool-1.6、tomcat-juli-7.0.69的支持。注意注意相应的版本信息问题,如果jedis的版本信息过高就会出错,下面是我的相应的jar包列表。

Tomcat集群+Nginx+Redis服务搭建

2.Tomcat集群部署

2.1可以首先简单测试一下上面的Tomcat信息是否完成了Session信息保存在Redis中。很简单,写一个页面访问成功后,打印出相应的Session信息,关闭Tomcat后重启在此访问,判断Session信息是否一致即可,一致说明Session信息成功保存在了redis中,否则没有

2.2将上面的tomcat复制多个即可,注意修改相应的服务端口号信息

3.Nginx

因为有多个Tomcat实例,为了是每一个实例都可以正常的对外服务,所以需要一个统一的请求处理入口,然后通过请求分发来实现对服务的处理,也就是负载均衡和转发 。因为有些其他的特殊需求,要保证每一个服务和IP的关系,通过IP_HASH作为负载均衡的策略处理。

3.1Nginx的安装(centos)

第一步:下载稳定版本的Nginx,解压

第二步:yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel

第三步:进入解压目录 ./configure –with-http_ssl_module

第四步:   make & make install

可以参考文章(http://www.cnblogs.com/skynet/p/4146083.html)

3.2Nginx负责均衡的配置

3.2.1 找到Nginx的安装路径(默认):/usr/local/nginx

3.2.2 修改配置文件conf/nginx.conf

   #设定负载均衡的服务器列表ip_hash
upstream backend {
server 127.0.0.1:8080 ;
server 127.0.0.1:8081 ;
server 127.0.0.1:8082 ;
server 127.0.0.1:8083 ;
ip_hash;
}
        listen       80;
server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / {
root html;
index index.html index.htm;
proxy_pass http://backend;
}

关于nginx的配置文件的使用在这里不做说明。第一个配置需要指明负载发服务器地址和使用负载均衡策略。

4.提供服务

4.1 启动Redis服务

4.2放入服务逐个启动Tomcat

4.3启动Nginx服务

4.4可以正常提供服务了。

5.改进与说明

这只是提供了构建一个Tomcat集群的简单的思路和实现,还有很多完善的地方,针对服务的高可用和稳定性还需要做很多的工作,以后会把服务慢慢的加上去。

上一篇: POJ3243 EXT-BSGS算法
下一篇: LibVLC audio controls
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,157
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,625
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,469
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,241
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,878
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,044