微服务集群环境零停机发布脚本


#通知负载均衡haproxy器将我下线,负载均衡有3个管理端口,分别管理3个内核进程。
curl -u admin:123456 -d "s=app_198_1&action=drain&b=#12" -o /dev/null   "http://10.0.0.1:19100/admin_status"
curl -u admin:123456 -d "s=app_198_1&action=drain&b=#12" -o /dev/null   "http://10.0.0.1:19101/admin_status"
curl -u admin:123456 -d "s=app_198_1&action=drain&b=#12" -o /dev/null   "http://10.0.0.1:19102/admin_status"


#等待前端接口超时时间过去
echo "等待负载均衡排干请求 ......"
sleep 15s

#给JVM发送shutdown指令,触发优雅停机
SERVERPID1=`netstat -ntlp  | grep 15000 | awk -F [/]  '{print $1}'|awk -F ' '  '{print $NF}'`

if [ "$SERVERPID1" != "" ]
  then    kill $SERVERPID1
fi

#等待优雅停机结束,发现端口占用消失。
waitShutDownTimes=0
shutDownTimeOut=10
while true
do
 SERVERPID1=`netstat -ntlp  | grep 15000 | awk -F [/]  '{print $1}'|awk -F ' '  '{print $NF}'`
 if [ "$SERVERPID1" = "" ]
 then
   echo "端口占用进程消失....."
   b

你可能感兴趣的:(linux)