Tomcat集群+Nginx+Redis服务搭建

由于公司新业务突然上来了,单个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包列表。

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集群的简单的思路和实现,还有很多完善的地方,针对服务的高可用和稳定性还需要做很多的工作,以后会把服务慢慢的加上去。

时间: 2024-10-05 23:50:25

Tomcat集群+Nginx+Redis服务搭建的相关文章

Java企业级电商项目实战 Tomcat集群与Redis分布式

本套课程包含:java电商项目实战课程 Tomcat集群视频教程 Redis项目实战课程课程目录1-1 课程导学1-2 大型Java项目架构演进解析1-3 一期课程与问答服务回顾1-4 一期项目结构和代码回顾1-5 课程使用系统及技术版本介绍(一期+二期)1-6 二期项目初始化第2章 Lombok框架集成及原理解析本章会对Lombok框架进行介绍,同时会讲解Lombok的原理.并手把手领着小伙伴们实战,引入Lombok以及IDE安装Lombok插件.然后会带着大家实战Coding,讲解@Data

Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享

muke慕课实战课程分享QQ313675301 新增课程: Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享 后端开发: 1.高级java软件架构师实战培训视频教程2.大型SpringMVC,Mybatis,Redis,Solr,Nginx,SSM分布式电商项目视频教程3.Spark Streaming实时流处理项目实战4.Java校招面试 Google面试官亲授5.Java开发企业级权限管理系统6.Java大牛 带你从0到上线开发企业级电商项目7.Java

Java企业级电商项目架构演进之路Tomcat集群与Redis分布式

Java企业级电商项目架构演进之路Tomcat集群与Redis分布式网盘地址:https://pan.baidu.com/s/1taAooW3AhdGcdGSvOLqjkg 密码:nwip备用地址(腾讯微云):https://share.weiyun.com/5JdkNHX 密码:s9pm74 第1章 课程介绍[赠送一期源码+一期内容回顾]第2章 Lombok框架集成及原理解析第3章 Maven环境隔离应用场景及验证实战第4章 Tomcat集群演进详解及环境搭建第5章 Redis基础强化第6章

Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式

Java企业级电商项目架构演进之路  Tomcat集群与Redis分布式 Redisson介绍Redisson是架设在Redis基础上的一个java驻内存数据网格.Redisson在基于NIO的Netty框架上,充分的利用了Redis键值数据库提供的一系列优势.在java使用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类.使得原本作为协调单机多线程并发程序的工具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度.同时结合各富特色的分布

Nginx+tomcat集群使用redis共享session

一 :nginx负载均衡 当Tomcat当做独立的Servlet容器来运行时,可看做是能运行Java Servlet的独立Web服务器. 此外 Tomcat还可以作为其他Web服务器进程内或者进程外的Servlet容器,从而与其他Web服务器集成(Apache Nginx IIS 等) 集成的意义在于:对于不支持运行java Servlet的其他Web服务器,可以通过集成Tomcat来提供运行Servlet的功能. ----------Tomcat与JavaWeb开发技术详解(孙卫琴的一本书)

Web应用优化之nginx+tomcat集群配置+redis管理session

1.nginx的安装 从官网下载一个nginx事务tar.gz版本,centos系统,安装好jdk 第一步解压 第二步:解压完成进入解压目录,执行./configure命令 需要安装gcc编译和pcre库,zlib库 yum -y install gcc yum install pcre-devel yum install zlib-devel ./configure完成后执行make install即可安装成功 2.集群配置流程 一.克隆2台CentOS虚拟机,并安装jdk+tomcat 二.

Tomcat集群+Nginx反向代理+负载均衡

Tomcat集群 所谓tomcat集群,就是向外提供并行服务的多台机器,任何一台服务器宕机,其他服务器还可以代替它向外提供服务,从而不影响用户访问 为了提高tomcat集群的高可用性,还需要实现nginx的双机热备. 反向代理 以代理服务器来接受外网的连接请求,然后将请求转发给内网上的服务器,并将从服务器上得到的结果返回给外网请求的客户端. nginx是一个常用的反向代理服务,可以自定义模块,实现请求转发以及负载均衡(根据具体采用的策略有关). 负载均衡 策略: 轮询(默认) 每个请求按照时间顺

高性能站点架构之负载均衡 Nginx+tomcat+redis实现tomcat集群

上一篇文章给大家讲了Nginx的安装,那么这篇文章为大家讲一下Nginx+Tomcat实现负载均衡. 先说说为什么要用ngnix 做负载均衡.事实上做负载均衡的最出名的莫过于F5了.F5是在硬件设施,动辄几万,几十万,几百万不等,对于一般的小公司来说,这也是一笔非常大的开销.所以能尽量的使用软件.还是使用软件,效果上尽管会差一些,可是还是可以起到一定的作用的. 环境准备 三台装有centos6.5 系统的机器.当中两台机器上装有tomcat7,一台机器上装有nginx3.0.2,至于详细怎样安装

Apache+tomcat或Nginx+tomcat集群搭建

Apache+tomcat集群搭建 1.http://httpd.apache.org/下载apache,本博客以httpd-2.4.12-x86-vc11-r2版本为例(第一个发行版中的) 2.http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/windows/ 下载mod_jk 3.注意Apache和mod_jk的版本,32bit后者64bit要统一 4.apache的httpd.conf文件可能有点问题