当前位置: 首页 > news >正文

吉林省建设信息网站教育网站设计欣赏

吉林省建设信息网站,教育网站设计欣赏,网页设计文案,企业网站建设方案价位eureka发布期间优雅上下线 1、编写eureka下线脚本 vim biz_out_of_service-eureka.pyimport sys import requests#服务名,脚本第一个参数 APP_NAMEsys.argv[1] # 需要置为OUT_OF_SERVICE的服务实例的ID,脚本第二个参数 INSTANCE_IDsys.argv[2]# Eureka…

eureka发布期间优雅上下线

1、编写eureka下线脚本

vim biz_out_of_service-eureka.pyimport sys
import requests#服务名,脚本第一个参数
APP_NAME=sys.argv[1]
# 需要置为OUT_OF_SERVICE的服务实例的ID,脚本第二个参数
INSTANCE_ID=sys.argv[2]# Eureka服务器的URL
eureka_url = "https://eureka_url/eureka/apps"# 构建Eureka中实例的置为OUT_OF_SERVICE的URL
instance_out_of_service_url = f"{eureka_url}/{APP_NAME}/{INSTANCE_ID}/status?value=OUT_OF_SERVICE"# 使用PUT请求将实例置为OUT_OF_SERVICE
response = requests.put(instance_out_of_service_url)
#使用delete请求将实例从eureka上删除
#response = requests.delete(instance_delete_url)
print(response.status_code)
# 检查响应状态码
if response.status_code == 200:print('服务实例成功下线')
else:print('服务实例下线失败,状态码:', response.status_code)
[root@continuous-deployment script]# 

2、编写eureka上线脚本

vim xlm-biz_up-eureka.pyimport sys
import requests#服务名,脚本第一个参数
APP_NAME=sys.argv[1]
# 需要置为OUT_OF_SERVICE的服务实例的ID,脚本第二个参数
INSTANCE_ID=sys.argv[2]# Eureka服务器的URL
eureka_url = "https://eureka_url/eureka/apps"# 构建Eureka中实例的置为OUT_OF_SERVICE的URL
instance_up_url = f"{eureka_url}/{APP_NAME}/{INSTANCE_ID}/status?value=UP"# 使用PUT请求将实例置为OUT_OF_SERVICE
response = requests.put(instance_up_url)
print(response.status_code)

3、配置nginx下线脚本

#upstram后端服务设置为down
vim nginx/nginx-biz-service-down.sh 
#!/bin/bashnginx_ip=$1
remote_ip=$2
port=$3
ssh -p 22 root@${nginx_ip} "sed -i 's/server ${remote_ip}:${port};/server ${remote_ip}:${port} down;/' /usr/local/nginx/conf/vhosts/upstream.conf"
#热加载nginx
vim  nginx/remote-nginx-reload.sh 
#!/bin/bashnginx_ip=$1
ssh  root@${nginx_ip} "/usr/local/nginx/sbin/nginx -s reload"

4、配置nginx上线脚本

#upstram后端服务设置为down
vim  nginx/nginx-biz-service-up.sh 
#!/bin/bashnginx_ip=$1
remote_ip=$2
port=$3
ssh -p 22 root@${nginx_ip} "sed -i 's/server ${remote_ip}:${port} down;/server ${remote_ip}:${port};/' /usr/local/nginx/conf/vhosts/upstream.conf"
#热加载nginx
vim  nginx/remote-nginx-reload.sh 
#!/bin/bashnginx_ip=$1
ssh  root@${nginx_ip} "/usr/local/nginx/sbin/nginx -s reload"

5、编写服务健康接口检查脚本

vim check-health.py 
import json
import sys
import requestsip=sys.argv[1]
port=sys.argv[2]
service_name=sys.argv[3]
# 目标URL
url = "http://"+ip+":"+port+"/actuator/health"
print(url)
response = requests.get(url)
print(response.text)data=json.loads(response.text)
health_status=data["status"]
if health_status != "UP":# 抛出一个常规的ValueError异常raise ValueError("发布异常")
else:print("服务:{} ip:{} 发布成功".format(service_name, ip))

6、配置jenkins发布脚本

#eureka实例APPNAME
app_name=SERVICE_NAME
#eureka实例ID
instance_id=serviceIP:9796
#服务器端口
port=9796
#服务器ip
remote_ip=172.19.38.133
#nginxIP
nginx_biz_1_ip=172.19.38.93
nginx_biz_2_ip=172.19.38.124
#jar包目录
project_path=service
#jar包名字
package=servicename-web.jar
#服务器上程序所在加目录
release_path=/usr/local/servicename/#编译打包
mvn clean package -DskipTests=true#同步jar包到远程服务器
rsync -av --progress ${project_path}/target/${package}  root@${remote_ip}:/data/jenkins/package/#nginx服务下线
echo "nginx_biz_1服务下线"
/data/script/nginx/nginx-service-down.sh ${nginx_biz_1_ip} ${remote_ip} ${port}
/data/script/nginx/nginx-remote-nginx-reload.sh ${nginx_biz_1_ip}
echo "nginx_biz_2服务下线"
/data/script/nginx/nginx-service-down.sh ${nginx_biz_2_ip} ${remote_ip} ${port}
/data/script/nginx/nginx-remote-nginx-reload.sh ${nginx_biz_2_ip}#eureka服务下线
echo "eureka服务下线"
python3 /data/script/eureka_biz_out_of_service-eureka.py ${app_name} ${instance_id}#eureka服务下线后等待30s
sleep 35s#重启服务
ssh root@${remote_ip} "source /etc/profile && /usr/bin/cp -p /data/jenkins/package/${package}  ${release_path}  && ${release_path}web.sh restart"#重启服务后等待40s
echo "正在重启服务,等待40s"
sleep 40s#服务健康检查
python3 /usr/local/script/check_http_code.py ${remote_ip} ${port} ${app_name}#eureka服务上线
echo "eureka服务上线"
python3 /usr/local/script/eureka_biz_up-eureka.py ${app_name} ${instance_id}#nginx服务上线
echo "nginx_biz_1服务上线"
/data/script/nginx/xlm-service-up.sh ${nginx_biz_1_ip} ${remote_ip} ${port}
/data/script/nginx/xlm-remote-nginx-reload.sh ${nginx_biz_1_ip}
echo "nginx_biz_2服务上线"
/data/script/nginx/xlm-service-up.sh ${nginx_biz_2_ip} ${remote_ip} ${port}
/data/script/nginx/xlm-remote-nginx-reload.sh ${nginx_biz_2_ip}

nacos发布期间优雅上下线

1、配置nacos上下线脚本

vim nacos-service-update.py 
import json
import requests
import sys# 目标URL
url = 'http://nacos地址:8848/nacos/v2/ns/instance'# PUT请求的数据
service_name=sys.argv[1]
ip=sys.argv[2]
port=sys.argv[3]
weight=sys.argv[4]
namespace_id=sys.argv[5]
data = {'serviceName': service_name,'ip':ip,'port':port,"weight":weight,"ephemeral":"true","namespaceId":namespace_id}# 发送PUT请求
response = requests.put(url, data=data)# 输出响应内容
print(response.text)
json_data=json.loads(response.text)
print(json_data)
response_code=json_data["code"]
if response_code != 0:# 抛出一个常规的ValueError异常raise ValueError("下线异常")
if weight=="0":print("服务:{} ip:{} 下线成功".format(service_name,ip))
else:print("服务:{} ip:{} 上线成功".format(service_name,ip))

2、配置jenkins发布上下线

mvn clean package -U -DskipTests=true
remote_ip=service-ip
service_name=service-name
port=8085
#设置下线权重0
down_weight=0
#设置上线权重1
up_weight=1
#设置namespaceID
namespaceId=namespaceId
rsync -av --progress  service-name/target/service-name.jar  root@${remote_ip}:/data/jenkins/package/
#nacos服务下线
python3 /usr/local/script/nacos-service-update.py ${service_name} ${remote_ip} ${port} ${down_weight} ${namespaceId}
sleep 35
ssh root@${remote_ip} "source /etc/profile && /data/service-name/service-name-release.sh"
echo "-------------等待启动-------------"
sleep 40
#check health
python3 /data/script/check-health.py ${remote_ip} ${port} ${service_name}
#nacos服务上线
python3 /data/script/nacos-service-update.py ${service_name} ${remote_ip} ${port} ${up_weight} ${namespaceId}
http://www.yayakq.cn/news/716405/

相关文章:

  • 网站建设论文选题常见网站结构有哪些
  • 为什么网站找不到了产品推广计划怎么写
  • 网站建设公司推荐北京华网在线免费源码资源源码站
  • 做网站品牌公司专科千万别学数字媒体应用技术
  • 企业网站开发中文摘要在线网站备份
  • 做企业的网站wordpress 不显示缩略图
  • 网站建设费用摊销多少年汕头站扩建后比哪个站大
  • 企业网站建设变相收取等级保护费企业网站模板观叫湖南岚鸿团队
  • 移动端网站如何优化一个网站需要几个人做
  • wordpress网站框架上海建筑建材业信息网
  • 普陀网站制作网站demo制作工具
  • 网站的域名技巧和空间选择个人网站制作方法
  • 中国水电建设集团港航建设有限公司网站爱字幕app制作视频软件下载
  • 做自动采集电影网站有什么处罚自助游网站开发分析报告
  • 陕西企业营销型网站建设搜狗推广登录平台官网
  • 建设门户网站费用深圳纯手工seo
  • 泗阳做网站的如何建立自已的网站
  • 同一素材 不同的布局网站设计导出wordpress用户
  • 百度地图api wordpress搜索引擎优化的基本手段
  • 免费企业网站建站做网站分辨率一般多少
  • 深圳招聘网站推荐室内设计平面图包括
  • 如何做电影网站挣钱室内装修设计下载什么软件
  • 石家庄网站设计建设百度广告怎么推广
  • 上海建筑建材业门户网站网页版微信怎么扫描二维码
  • 网站被镜像怎么做微信公众号免费开通
  • dede网站地图中山网站制作设计
  • 网站后台文章编辑器雨人网站建设
  • 上海交通大学网站建设海外运营工作内容
  • 软件开发模板seo的网站建设
  • 网站建设与运行的盈利收入服务器怎么放网站吗