1、搭建一个 redis 哨兵集群
实验环境:主节点 10.0.0.81 从节点1 10.0.0.82 从节点2 10.0.0.83
首先安装redis,yum install -y redis
实现redis的主从复制
在主节点,修改配置文件 /etc/redis.conf
sed -Ei.bak 's/bind 127.0.0.1/bind 0.0.0.0/' /etc/redis.conf
requirepass 123456
在全部从节点,修改配置文件 /etc/redis.conf
sed -Ei.bak 's/bind 127.0.0.1/bind 0.0.0.0/' /etc/redis.conf
replicaof 10.0.0.81 6379
requirepass 123456
masterauth 123456
主,从节点设置服务的开机自启与服务启动
systemctl enable --now redis
设置哨兵环境
主节点修改配置文件 /etc/redis-sentinel.conf
sentinel monitor mymaster 10.0.0.81 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 3000
将修改好的主节点sentinel的配置文件传送到全部从节点
确保每个哨兵主机的muid不同
主从节点启动服务
systemctl enable --now redis-sentinel.conf
ss -ntl 查看26379端口是否打开
2、实现 redis cluster 得部署
实验环境:6台机器 81-86
每台机器安装redis
yum install -y redis
修改每台机器的配置文件,同时检查机器是否有数据,确保没有数据
sed -i.bak -e 's/bind 127.0.0.1/bind 0.0.0.0/' -e '/masterauth/a masterauth 123456' -e '/# requirepass/a requirepass 123456' -e '/# cluster-enabled yes/a cluster-enabled yes' -e '/# cluster-config-file nodes-6379.conf/a cluster-config-file nodes-6379.conf' -e '/cluster-require-full-coverage yes/c cluster-require-full-coverage no' /etc/redis.conf
每台机器启动服务
systemctl enable --now redis
类似meet的操作
redis-cli -a 123456 --cluster create 10.0.0.81:6379 10.0.0.82:6379 10.0.0.83:6379 10.0.0.84:6379 10.0.0.85:6379 10.0.0.86:6379 --cluster-replicas 1
输入 yes
查看主从状态
redis-cli -a 123456 -c INFO replication
redis-cli cluster nodes
3、部署一个 tomcat 服务
#!/bin/bash
. /etc/init.d/functions
dir=`pwd`
jdk_file="jdk-8u271-linux-x64.tar.gz"
tomcat_file="apache-tomcat-8.5.59.tar.gz"
jdk_dir="/usr/local"
tomcat_dir="/usr/local"
install_jdk() {
if ! [ -f "$dir/$jdk_file" ];then
action "$jdk_file文件不存在" false
exit;
elif [ -d $jdk_dir/jdk ];then
action "jdk 已经安装" false
exit;
else
[ -d "$jdk_dir" ] || mkdir -pv "$jdk_dir"
fi
tar xf $jdk_file -C $jdk_dir
cd $jdk_dir && ln -s jdk1.8.* jdk
cat > /etc/profile.d/jdk.sh <<EOF
export JAVA_HOME=$jdk_dir/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
EOF
. /etc/profile.d/jdk.sh
java -version && action "JDK 安装完成"
|| { action "JDK 安装失败" false ; exit; }
}
install_tomcat() {
if ! [ -f "$dir/$tomcat_file" ];then
action "$tomcat_file文件不存在" false
exit;
elif [ -d $tomcat_dir/tomcat ];then
action "tomcat 已经安装" false
exit;
else
[ -d "$tomcat_dir" ]||mkdir -pv "$tomcat_dir"
fi
tar xf $dir/$tomcat_file -C $tomcat_dir
cd $tomcat_dir && ln -s apache-tomcat-* tomcat
echo "PATH=$tomcat_dir/tomcat/bin:$PATH" > /etc/profile.d/tomcat
id tomcat &> /dev/null || useradd -r -s /sbin/nologin tomcat
cat > $tomcat_dir/tomcat/conf/tomcat.conf <<EOF
JAVA_HOME=$jdk_dir/jdk
EOF
chown -R tomcat.tomcat $tomcat_dir/tomcat/
cat > /lib/systemd/system/tomcat.service <<EOF
[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=$tomcat_dir/tomcat/conf/tomcat.conf
ExecStart=$tomcat_dir/tomcat/bin/startup.sh
ExecStop=$tomcat_dir/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now tomcat.service
systemctl is-active tomcat.service &> /dev/null && action "TOMCAT 安装完成"
|| { action "tomcat 安装失败" false ; exit; }
}
install_jdk
install_tomcat