集群启动以及简单处理方法


摘要

  • 公司内部有一个模拟环境,验证启动过程中对Redis等的影响.
  • 这里需要写一个脚本进行简要验证, 提高工作效率.
  • 需要的实现也少, 这里进行一下简要总结.

部署方案

  • ESXi虚拟化部署,以及shell脚本进行运维.
公司内部使用四台服务器, 安装vCenter, 没台机器部署ESXi6.7+的版本.
Clone 一台基础Linux机器过来.
主控机器 ssh-keygen 生成自己的密钥对.
ssh-copy-id root@linux_ip 将自己的密钥
部署自己的app 过去. 比如复制到 模板机器的 /app 里面
可以创建一个基础目录, 比如 /deploy 便于存储脚本

运维方案

  • 计划使用shell脚本方式进行处理.
需要修改控制机的提示信息:
vim /etc/ssh/ssh_config
增加后者是修改内容为: StrictHostKeyChecking no

编写一个循环用来复制文件进去
for i in 10.24.200.{1..60};
do scp /deploy/redisson.yaml root@$i:/app/server/runtime/libs/ && scp /deploy/application.yaml.cluster root@$i:/app/server/runtime/application.yaml ;
done
注意 IP弟子的范围。

编写一个脚本批量启动服务

cd /app/
ps -ef |grep java |grep -v grep |awk '{print $2}' |xargs kill -9
date > /app/60.log
nohup ./startup-linux.sh >> /app/60.log &

写个for循环也放进去.

获取信息

  • 获取日志等
for i in 10.24.200.{1..60} ; do scp root@$i:/app/60.log /deploy/log/$i.log ; done
根据日志分析 成功的环境数量
grep -r /deploy/log/ "successfully in" |wc -l
失败的环境数量
grep -ir /deploy/log "Springboot系统启动失败" -A 3

如果机器时间不对, 可以进行一下简单处理
day=`date +%Y%m%d`
echo $day
time2=`date +%H:%M:%S`
echo $time2
for i in 10.24.200.{1..60}; do ssh root@$i "date -s $day && date -s $time2" ; done

Redis集群信息查看

  • 批量插入key值,验证性能.
for i in d{000001..999999};
do
echo $i && redis-cli -c -a Yourpassword -p 30002 -h 10.24.21.30 set caf_zhaobsh_TestLongkey$i zhaobshTestSomebigkeyinstringTestzjstartuptimeinfo ;
done
注意 可以使用 nohup 的方式进行插入.

查看key的数量
redis-cli -c -a Yourpassword -p 30002 -h 10.24.21.30
命令为 info keyspace
查看集群信息 cluster nodes