目录

基于redis实现会话保持

基于redis实现会话保持

环境描述:

192.168.140.10        nginx

192.168.140.11        tomcat服务器        两个tomcat实例

192.168.140.12        redis服务器        三个redis实例,一主两从实例

192.168.140.13        redis哨兵

1、配置ngix实现tomcat负载均衡

https://i-blog.csdnimg.cn/direct/67a8a7f0861c4af3852a90b725e292ea.png

https://i-blog.csdnimg.cn/direct/0dbe4bd5d7d449c7b32a9fab79491d5d.png

https://i-blog.csdnimg.cn/direct/ffe6bb8a61734a88b763d1f7b4296805.png

2、配置tomcat实例

https://i-blog.csdnimg.cn/direct/739a3ac128b04b5c8262051b60b4d202.png

https://i-blog.csdnimg.cn/direct/decb5cbcb0d1408baef4417a0f45e211.png https://i-blog.csdnimg.cn/direct/08594daea10f4505a7aa0448793e2e7f.png https://i-blog.csdnimg.cn/direct/f51908e5052d483b915068ae646bc326.png

https://i-blog.csdnimg.cn/direct/2b38d75994eb429089ef25c8b1c28fb2.png https://i-blog.csdnimg.cn/direct/0cd856a1df9d4872921980191d967a25.png

https://i-blog.csdnimg.cn/direct/50bf483730754fe4bb79e8bad05b5953.png 第二个实例要更改的地方和上方一致

https://i-blog.csdnimg.cn/direct/236b0778904b495397a8d89dc526b423.png https://i-blog.csdnimg.cn/direct/c398403fd5d4432c98748b9d6aab9799.png

增加执行权限

https://i-blog.csdnimg.cn/direct/e9b21ea8c4b54c25b2ffe48a8903fa0c.png 进行启动 https://i-blog.csdnimg.cn/direct/380d9ec708d94a93b1eeb64d1ce5f9c4.png

测试页面

https://i-blog.csdnimg.cn/direct/edae2d3190654bc8827c14921068109d.png

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

https://i-blog.csdnimg.cn/direct/044b7b0478d14b90a6f1dfe9f461518e.png

3、通过nginx访问tomcat,此时tomcat会话ID是非持久的

4、配置redis一主两从环境

1)安装redis2.6

https://i-blog.csdnimg.cn/direct/c1d8d553fdf84ea9ac3fbb3c07456cb3.png

https://i-blog.csdnimg.cn/direct/1ff0f9e4205648af9c150dad35e87e93.png

https://i-blog.csdnimg.cn/direct/a327d02354ef442ab5553057929aa2b4.png

https://i-blog.csdnimg.cn/direct/b6ef328dba4d4d52a2b1b066f0460eec.png

2)配置 redis多实例

https://i-blog.csdnimg.cn/direct/02853267581f4efdb34e1ccfd9ce5b6d.png

https://i-blog.csdnimg.cn/direct/31a01d9c6c4a4b70bde99c77578a9a0e.png https://i-blog.csdnimg.cn/direct/6a12f47a8de14db9983d8de1a9bd7e36.png

https://i-blog.csdnimg.cn/direct/36a0e9951d2f45149f76c5c429fbb6a1.png

https://i-blog.csdnimg.cn/direct/015205d51eea45238a5beb57987ae9c6.png

https://i-blog.csdnimg.cn/direct/bf5dc181d31b4031957349cac96d3b8e.png

https://i-blog.csdnimg.cn/direct/63bd6ba8d7c842f1820405ada6d0ce58.png https://i-blog.csdnimg.cn/direct/21386ac6843e453990fb4c28a4ece754.png

https://i-blog.csdnimg.cn/direct/8e66b36e6cb748e58442aa624970677d.png

3)配置一主多从

https://i-blog.csdnimg.cn/direct/ffaca3a1c562423b8081d0b57250792e.png

https://i-blog.csdnimg.cn/direct/5062b59c9f554974bc290606d6e800e5.png

7003同上

https://i-blog.csdnimg.cn/direct/87881522e5ba4d7882021fa2fbaa48aa.png

https://i-blog.csdnimg.cn/direct/54357d1c71a54608a9093ef751da202c.png

4)验证一主多从成功

https://i-blog.csdnimg.cn/direct/b22af25adeaa4c9891529c22256c4a54.png

5、配置哨兵
1) 安装redis 2.6

https://i-blog.csdnimg.cn/direct/c6491687e9bb4e83ae7c23e1f705b722.png

https://i-blog.csdnimg.cn/direct/c6491687e9bb4e83ae7c23e1f705b722.png https://i-blog.csdnimg.cn/direct/cc4a747f09f44b26b479d85115f25a42.png https://i-blog.csdnimg.cn/direct/1fbf45a04059418baa28c46a5b0ad970.png

2) 复制哨兵配置文件

https://i-blog.csdnimg.cn/direct/15c00265665e42358407c31978633e0d.png

3) 编辑配置文件

https://i-blog.csdnimg.cn/direct/2ce4f9b34b2b447188b81ff2d3165699.png

https://i-blog.csdnimg.cn/direct/522882f42e8b477090445a56871d542e.png

https://i-blog.csdnimg.cn/direct/2a24bec13a3a4dd08402a50eb867c73c.png

https://i-blog.csdnimg.cn/direct/71ae8b688cbc41b88643164fe448b07a.png https://i-blog.csdnimg.cn/direct/0c9092f8e7574c7b9e7545f0c110b7f3.png

4) 启动哨兵

需要使用redis-sentiner命令来启动哨兵在redis解压目录里为方便使用拷贝到redis安装目录bin目录中

https://i-blog.csdnimg.cn/direct/614472bebbe244e2b1ed3b293de866e1.png

https://i-blog.csdnimg.cn/direct/b6d1a1553ff2438e9d1d8f4db4634a5a.png

6、配置tomcat连接redis哨兵保存会话

1)将jar包复制到tomcat

https://i-blog.csdnimg.cn/direct/432b664b21524331bc79b9887878451b.png

2)编辑tomcat实例配置文件,指定redis集群的信息

https://i-blog.csdnimg.cn/direct/ce031f6cd8fc47fea3691b2ccdbd9cd6.png

在Context标签中添加配置信息

<Manager className=“com.orangefunction.tomcat.redissessions.RedisSessionManager”

maxInactiveInterval=“60”

sentinelMaster=“mymaster”

sentinels=“192.168.140.13:26379”

/>

https://i-blog.csdnimg.cn/direct/26621ace9aa04ec6a5a02bd378d2c0a8.png

第二个实例同上

https://i-blog.csdnimg.cn/direct/6b55cd8efcf04b7f8642178d337c4b13.png

7、测试访问nginx,查看会话ID是否一致

https://i-blog.csdnimg.cn/direct/84ae490affbf44c1be662315a28c8d14.png

https://i-blog.csdnimg.cn/direct/c5bffffa5d9d483882ef84c551737611.png