当使用nacos作为注册中心,并且服务需要优雅发布时,可用于对nacos接口进行调用处理。以下脚本可进行服务数量判断,并修改权重,权重调整为0后新连接请求将不会被接入指定服务器,但不会中断已有连接,当业务处理完成后可对该服务进行彻底下线处理(此处业务判断和处理需要自行考虑),然后进行发布新服务,从而实现优雅停机发布。
nacos检查判断当前在线服务器数量是否小于2
#!/bin/bash
IPADDR='http://10.10.5.15:8848'
NACOS_PATH='/nacos/v1/ns/instance/list'
PARAM='?serviceName=service_name&namespaceId=0dc76aa9-856a-4e44-ab7d-2117acf46ac7&groupName=default'
URL=$IPADDR$NACOS_PATH$PARAM
RESULT=$(curl -X GET $URL)
COUNT=$(echo $RESULT | sed 's/,/\n/g' | grep -c healthy)
if(($COUNT<2))
then
echo "正常服务数量小于2,停止当前发布,请先检查服务!!!!!!!!!!!"
exit 1
fi
echo "第"$i"次检测"$COUNT"台服务器在线,curl结果为"$RESULT
echo "-------------------开始服务发布---------------"
修改nacos指定服务器权重为0
#!/bin/bash
PARAM1=$1
PARAM2=$2
PARAM3=$3
PARAM4=$4
PARAM5=$5
IPADDR='10.10.4.15:8848'
NACOS_PATH='/nacos/v1/ns/instance?'
PARAM6='namespaceId=0dc76ca9-836f-4e14-ab7d-2115acf46ac7'
URL=10.10.4.15:8848/nacos/v1/ns/instance?serviceName=$PARAM1\&ip=$PARAM2\&port=$PARAM3\&enabled=true\&namespaceId=$PARAM6\&groupName=DEFAULT_GROUP\&weight=0
echo $URL > offline_url.log
curl -X PUT $URL >> offline_url.log
if(($?==0))
then
echo "sucess" > offline_sucess.log
exit 0
else
echo "fail" > offline_fail.log
exit 500
fi
其他api接口调用参考官网:Open API 指南