Keepalived+Nginx+Tomcat+Redis实现高可用负载均衡(二)

Keepalived+Nginx+Tomcat+Redis实现高可用负载均衡(二)_第1张图片

 

01 前言   

    上期我们介绍keepalived与Nginx的配置,现在我们介绍一下Tomcat与Redis是怎么实现session共享。

     本文转自我个人的公众号:天目星    ,请大家多多关注。

请关注我的微信公众号


 

 

一、使用的软件版本与架构图。

    linux: CentOS 7.5.1804

    Keepalived: keepalived-1.3.5

    Nginx: nginx-1.12.2

    Tomcat: apache-tomcat-7.0.93

    Redis: redis-3.2.12

 


 

 

二、安装软件(后端)

 

    1、安装Tomcat

    Tomcat是一个小型的免费的轻量级应用服务器,可用于开发和调试JSP程序,在并发访问用户不是很多的场合普遍使用。

    前提条件:tomcat需要java的支持,请可以前往Oracle下载rpm包安装。本例使用的是jdk-7u80-linux-x64.rpm

    源码包请自行前往Apache tomcat官网下载,我们使用的是Binary Distributions来安装。

    解压安装

# 解压tar xvf apache-tomcat-7.0.93.tar.gz# 移动二进制包到你想存放的路径mv apache-tomcat-7.0.93 /usr/local/tomcat# 创建tomcat用户,使用非root的用户运行更安全groupadd -r -g 310 tomcatuseradd -u 310 -g 310 -s /sbin/nologin tomcat# 授权tomcat用户chown -R tomcat.tomcat /usr/local/tomcat

 

    配置启动服务

    vim /usr/lib/systemd/system/tomcat.service

 

[Unit]Description=tomcatAfter=network.target[Service]User=tomcatGroup=tomcatType=forkingExecStart=/usr/local/tomcat/bin/startup.shExecStop=/usr/local/tomcat/bin/shutdown.shPrivateTmp=true[Install]WantedBy=multi-user.target

 

    配置tomcat

    #配置负载均衡中tomcat使用的标识符(不可重复)

    vim /usr/local/tomcat/conf/server.xml

# 两个节点相应的设置:jvmRoute="tomcat01" ,另一台设置"tomcat02"

 

    2、安装Redis

    可以前期Redis官网下载源码安装,也可以使用yum源安装。

# 使用yum源安装redisyum install redis

 

    配置Redis(使用主从模式)

# 修改配置文件vim /etc/redis.conf ### 主节点配置 #### bind 127.0.0.0  #注释掉本地监听port 6400  #设定监听端口protected-mode no  #本例用于测试pidfile "/var/run/redis_6400.pid"### 从节点配置 #### bind 127.0.0.0  #注释掉本地监听port 6000protected-mode no  #本例用于测试pidfile "/var/run/redis_6400.pid"slaveof 192.168.0.3 6400  #主节点的IP地址

 

    配置Redis-Sentinel

# 修改配置文件vim /etc/redis-sentinel.conf### 主从配置一致 ###daemonize yes  #开启守护进程port 23456  #端口protected-mode no  #本例用于测试# 配置要监控主服务器(详解)# 定义主服务器名: mymaster# 主服务ip: 192.168.0.3# 主服务端口:6400# 设置为1个sentinel: 1   # 至少要1个sentinel发现主节点是故障的才进行转移sentinel monitor mymaster 192.168.0.3 6400 1# 设置sentinel认定一个服务器断线5000毫秒,sentinel就认定该服务DOWNsentinel down-after-milliseconds mymaster 5000# 设置发生主备切换时最多可以有多少个slave同时对新的master进行同步,本例只有一个slave,设置为1sentinel parallel-syncs mymaster 1

 

    测试Redis主从情况

# 使用redis客户端测试连接redi-cli -h 192.168.0.3 -p 6400# 连接上后使用 info replication 显示主从信息192.168.0.3:6400> info replication

 

 

    主节点信息

Keepalived+Nginx+Tomcat+Redis实现高可用负载均衡(二)_第2张图片

   

    从节点信息

Keepalived+Nginx+Tomcat+Redis实现高可用负载均衡(二)_第3张图片


 

 

    3、配置Tomcat连接Redis

 

 

 

    tomcat连接redis需要以下几个jar包的支持,请自行下载并拷贝至tomcat的lib目录

# cd /usr/local/tomcat/libtomcat-redis-session-manage.jarjedis.jarcommons-pool2.jar

 

    修改Tomcat的context.xml配置

# vim /usr/local/tomcat/conf/context.xml# 在中添加如下配置      host="192.168.0.3"  port="6400"  maxInactiveInterval="180"/>

 

    配置tomcat会话到期时间

# vim /usr/local/tomcat/conf/web.xml   30

 

   添加测试页至webapps中

# vim /usr/local/tomcat/webapps/test/index.jsp##############<%@ page contentType="text/html;charset=UTF-8" language="java" %>      test page        

查询当前保存的Session信息

  • SessionID: <%=session.getId()%> 
  • SessionIP: <%=request.getRemoteAddr()%> 
  • SessionServerName: <%=request.getServerName()%> 
  • SessionPort: <%=request.getServerPort()%> 
  • SessionText: <%out.println("This is Tomcat01");%>

 

 

    4、开始测试

    经过以上的配置,大家已经搭建好整个架构,现在我们需要磨刀霍霍向猪羊...哦,错了...应该向键盘输入命令把所有服务开启,并打开浏览器测试会话保存情况了。

    启动服务

# 启动顺序systemctl start nginx.servicesystemctl start keepalived.servicesystemctl start tomcat.servicesystemctl start redis.servicesystemctl start redis-sentinel.service

 

    打开浏览器

http:///test/index.jsp        

 

Keepalived+Nginx+Tomcat+Redis实现高可用负载均衡(二)_第4张图片

 

02 结尾 

    本期的又到了说再见的时候,相信大家通过这次演示可以初步了解此架构。当然这个架构还有许多需要补充的地方,欢迎大家一起讨论。后续还有其他演示,请继续关注此公众号。

请关注我的个人公众号

你可能感兴趣的:(高可用)