基于redis实现会话保持

发布于:2025-03-30 ⋅ 阅读:(26) ⋅ 点赞:(0)

redis的作用主流的应用就是做数据的缓存服务器,还有就是用来做后端服务器的会话保持。

nginx给后端的tomcat做反向代理,

tomcat软件会自动帮助客户端生成会话信息。

而阿帕奇不会自动帮助客户端生成会话信息。

而后端的redis哨兵集群的作用是为了适配我们自己的java程序连接redis的驱动。

php需要安装连接redis的驱动,java程序要想连接redis也需要必要的驱动。【而java程序要去连接redis软件没有现成的驱动,都是公司的开发人员自己写的。】

1.配置nginx软件实现tomcat软件的负载均衡。【ip地址是192.168.140.11】

如上图所示,这是安装gcc软件。

如上图所示,这是安装nginx软件所需要的依赖软件。

如上图所示,随后我们去运行make  make install去安装nginx软件。
 

2.配置tomcat实例【ip地址是192.168.140.11】

如上图所示,我们先去安装jdk,我们将jdk的tar包解压缩到指定目录下,随后我们再到/etc/profile文件中去编写对应的jdk的环境变量。

如上图所示,此时我们已经把jdk安装成功。

如上图所示,此时我们就已经把这个tomcat安装成功,并且配置好了tomcat的环境变量。

如上图所示,这是查看tomcat的版本信息。

如上图所示,随后我们要去创建两个tomcat的实例,我们去创建对应的tomcat实例的配置目录和日志目录,随后我们将默认的tomcat软件配置目录下的所有文件都复制到对应的tomcat实例配置目录下。

如上图所示,随后我们去创建两个实例的项目目录。

如上图所示,我们修改对应实例的配置文件。

如上图所示,我们到tomcat实例的配置文件下指定实例的监听端口。

如上图所示,随后我们去修改这个实例提供http服务的端口为9000

如上图所示,关于虚拟主机的配置,我们配置这个虚拟主机的项目目录是/data01,并且指定将这个虚拟主机的日志文件都保存在这个实例的日志目录中。

随后我们将第二个实例的监听端口设置为8020,提供http服务的端口为9001

我们配置这个实例的虚拟主机的项目目录是/data01,并且指定将这个虚拟主机的日志文件都保存在这个实例的日志目录中。

如上图所示,我们去配置不同tomcat实例的服务脚本。

如上图所示,此时tomcat的两个实例启动成功。

tomcat测试页面

如上图所示,这里的getId就是tomcat给客户端生成的会话ID。

如上图所示,这是配置两个不同tomcat实例的访问首页。

3.使用nginx给后端的tomcat做负载均衡

如上图所示,我们去编辑nginx软件的配置文件将两个tomcat实例设置成一个upstream组,

随后设置location

如上图所示,当我们编辑好nginx的配置文件之后,我们去启动nginx,查看nginx启动之后对应的端口信息。

4.通过nginx访问tomcat,此时tomcat会话ID是非持久的。

如上图所示,现在每刷新一次这个界面,对应的会话ID都会发生变化,此时证明,

5.配置redis的一主两从环境

1.为了适配我们现有的java驱动,所以安装redis2.6版本。

如上图所示,当我们安装好redis之后,我们就去配置redis软件的环境变量。

2.配置redis多实例

如上图所示,这是编辑各个redis实例的配置文件。

3.配置一主多从

如上图所示,配置这两个redis实例的主redis都是192.168.140.12的7001端口。

如上图所示,我们去启动这多个redis实例。

如上图所示,此时redis的一主两从就设置好了。

4.配置哨兵集群

哨兵机器负责检测主服务器状态,当主服务器挂了之后,会将从服务器提升为一个新的主服务器。

在哨兵机器上也需要安装redis软件,

这里的安装操作略过。【并且配置环境变量】

1.复制哨兵配置文件

2.编辑哨兵配置文件

如上图所示,这是用来指定哨兵启动的端口信息。

如上图所示,这是指定这个哨兵的集群的名称,并且指定这个哨兵机器人所监控的机器IP地址和端口号,最后的数字表示的是当有几个哨兵机器认为主服务器挂的时候才进行主从切换,此时设定当有一台哨兵机器认为主服务器挂的时候,就进行主从切换。

如上图所示,当哨兵机器超过30秒连接不上主服务器的时候,就判断主服务器故障,此时进行主从切换的操作,

如上图所示,这里的数字表示的是当哨兵进行主从切换的时候,启动几个进程或者线程来完成主从切换。

如上图所示,这是时间表示的是哨兵在帮助我们做主从切换的超时时间的,如果超过这个时间主从切换仍然没有完成,则表示主从切换失败。并且只会在开始连接的15分钟之后才会产生失败信息。【并且这个时间不能过长。】

3.启动哨兵

如上图所示,启动哨兵机器的命令在redis的解压目录下存在。

如上图所示,哨兵机器启动,默认是前台启动。

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

1)将jar包复制到tomcat

如上图所示,这些jar包都是用来配合tomcat上的java应用连接redis软件的驱动。

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

如上图所示,配置tomcat的两个实例的配置文件,分别将这段代码复制到这两个配置文件中,

如上图所示,此时重启两个tomcat实例。

7.测试访问nginx,查看会话ID应该是一致的。

如上图所示,无论是哪个tomcat实例去回应客户端请求,会话ID都是一样的。