0. 背景
在项目上线之后发现了SESSION同步出现了问题(由于之前的项目是交由WAS管理),然而在tomcat下并没有提供这样的功能,因此需要在当前环境下搭建session集群。了解之后发现最为被任何的方案是:redis集群。于是就有了今天的笔记。
首先需要了解的是,redis是去中心化的设计,大致翻阅了几篇文档之后斗胆得到一个结论:集群环境的redis节点数与几台机器并没有必然的关系(故,你可以在一台机器上安装多个redis节点)。当然出于高可用的角度考虑 当然是在不同的机器上更为稳妥,因为你无法保证硬件故障不出现。
1. 准备工作
笔者这里模拟一台机器6个节点的模式。本地开放虚拟机,IP为 192.168.5.131
创建6个节点:192.168.5.131:7001 192.168.5.131:7002 192.168.5.131:7003 192.168.5.131:7004 192.168.5.131:7005 192.168.5.131:7006
创建用户rds,创建目录 /rds 用于安装这些玩意 授权rds当前目录所有权限
chown -R rds /etc/profile
mkdir /rds
chown -R rds /rds
赋予rds /etc/profile权限
chown -R rds /etc/profile
开放网络权限(笔者这里由于是单机,所以只需要开通以上节点到应用的网络权限)
如果是两台机(192.168.0.1:7001,192.168.0.1:7002,192.168.0.1:7003,192.168.0.2:7004,192.168.0.2:7005,192.168.0.2:7006)在开通两台机器到应用的访问权限同时,还要开通以下网络策略。
192.168.0.1 -> 192.168.0.2:17004
192.168.0.1 -> 192.168.0.2:17005
192.168.0.1 -> 192.168.0.2:17006
192.168.0.2 -> 192.168.0.1:17001
192.168.0.2 -> 192.168.0.1:17002
192.168.0.2 -> 192.168.0.1:17003
需要准备以下安装包
- ruby
- rubygems
- redisapi
- tcl
- redis
下载地址: https://download.youkuaiyun.com/download/a116475939/11135926 笔者已经打包好了
将以上文件上传到 /rds 底下
创建6个redis-conf文件
文件名称均为redis.conf
daemonize yes
pidfile /var/run/redis_7001.pid
logfile "/rds/redis/log/7001.log"
port 7001
bind 192.168.5.131
cluster-enabled yes
cluster-config-file nodes_7001.conf
cluster-node-timeout 5000
appendonly yes
其中,端口和IP以下内容需要自己修改,一定确保每台机器不同!
3.redis 安装
安装ruby
tar zxf ruby-