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

微生成网站企业网站使用不规范地图如何处罚

微生成网站,企业网站使用不规范地图如何处罚,品牌网站开发特点,客户管理系统在哪进入文章目录 场景解决下线请求效果如图贴一个可用的部署脚本 场景 在 Spring Cloud 项目的微服务实例关闭时#xff0c;需要首先从注册中心设置为下线#xff0c;避免该服务的消费者继续请求该服务实例#xff0c;导致请求失败如果我们在服务实例从注册中心取消注册后#xff… 文章目录 场景解决下线请求效果如图贴一个可用的部署脚本 场景 在 Spring Cloud 项目的微服务实例关闭时需要首先从注册中心设置为下线避免该服务的消费者继续请求该服务实例导致请求失败如果我们在服务实例从注册中心取消注册后立即销毁其它 Spring Bean 的话会导致当前在处理的请求又或者服务消费者因为注册中心延迟期间继续打进来的请求产生处理失败的情况在 Spring 容器关闭时Spring Cloud 内置的 AbstractAutoServiceRegistration 会将当前实例从注册中心取消注册但是并不能保证这个步骤最先执行在所有 Bean 的销毁之前。同时虽然当前服务实例已经从注册中心取消注册但是服务消费者从注册中心中拉取到最新的注册信息是存在延迟的只是长短的差别。 解决 通过actuator/service-registry/ 接口完成接口下线sleep 30秒之后 再进行微服务jar包的启停进行健康检查 下线请求效果如图 贴一个可用的部署脚本 #!/bin/bash set -e# 基础 # export JAVA_HOME/work/programs/jdk/jdk1.8.0_181 # export PATHPATH$PATH:$JAVA_HOME/bin # export CLASSPATH$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarDATE$(date %Y%m%d%H%M) # 基础路径 BASE_PATH/home/vagrant/data/workProjects/JenkinsSpringCloudDemo # 编译后 jar 的地址。部署时Jenkins 会上传 jar 包到该目录下 SOURCE_PATH$BASE_PATH/build # 服务名称。同时约定部署服务的 jar 包名字也为它。 SERVER_NAMEJenkinsSpringCloudDemo # 环境 PROFILES_ACTIVEprod # 健康检查 URL HEALTH_CHECK_URLhttp://127.0.0.1:8078/actuator/health/ # 修改状态 URL STATUS_URLhttp://127.0.0.1:8078/actuator/service-registry/# heapError 存放路径 HEAP_ERROR_PATH$BASE_PATH/heapError # JVM 参数 JAVA_OPS-Xms1024m -Xmx1024m -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath$HEAP_ERROR_PATH # JavaAgent 参数。可用于配置 SkyWalking 等链路追踪 JAVA_AGENT# 备份 function backup() {# 如果不存在则无需备份if [ ! -f $BASE_PATH/$SERVER_NAME.jar ]; thenecho [backup] $BASE_PATH/$SERVER_NAME.jar 不存在跳过备份# 如果存在则备份到 backup 目录下使用时间作为后缀elseecho [backup] 开始备份 $SERVER_NAME ...cp $BASE_PATH/$SERVER_NAME.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jarecho [backup] 备份 $SERVER_NAME 完成fi }# 最新构建代码 移动到项目环境 function transfer() {echo [transfer] 开始转移 $SERVER_NAME.jar# 删除原 jar 包if [ ! -f $BASE_PATH/$SERVER_NAME.jar ]; thenecho [transfer] $BASE_PATH/$SERVER_NAME.jar 不存在跳过删除elseecho [transfer] 移除 $BASE_PATH/$SERVER_NAME.jar 完成rm $BASE_PATH/$SERVER_NAME.jarfi# 复制新 jar 包echo [transfer] 从 $SOURCE_PATH 中获取 $SERVER_NAME.jar 并迁移至 $BASE_PATH ....cp $SOURCE_PATH/$SERVER_NAME.jar $BASE_PATHecho [transfer] 转移 $SERVER_NAME.jar 完成 }# 停止 function stop() {echo [stop] 开始停止 $BASE_PATH/$SERVER_NAMEPID$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v grep | awk {print $2})# 如果 Java 服务启动中则进行关闭if [ -n $PID ]; then# 从注册中心下线echo [stop] 从注册中心下线当前实例并 sleep 20 秒curl -X POST $STATUS_URL -d {status: DOWN} -H content-type: application/jsonsleep 20# 正常关闭echo [stop] $BASE_PATH/$SERVER_NAME 运行中开始 kill [$PID]kill -15 $PID# 等待最大 60 秒直到关闭完成。for ((i 0; i 60; i))dosleep 1PID$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v grep | awk {print $2})if [ -n $PID ]; thenecho -e .\celseecho [stop] 停止 $BASE_PATH/$SERVER_NAME 成功breakfidone# 如果正常关闭失败那么进行强制 kill -9 进行关闭if [ -n $PID ]; thenecho [stop] $BASE_PATH/$SERVER_NAME 失败强制 kill -9 $PIDkill -9 $PIDfi# 如果 Java 服务未启动则无需关闭elseecho [stop] $BASE_PATH/$SERVER_NAME 未启动无需停止fi }# 启动 function start() {# 开启启动前打印启动参数echo [start] 开始启动 $BASE_PATH/$SERVER_NAMEecho [start] JAVA_OPS: $JAVA_OPSecho [start] JAVA_AGENT: $JAVA_AGENTecho [start] PROFILES: $PROFILES_ACTIVE# 开始启动BUILD_IDdontKillMe nohup java -server $JAVA_OPS $JAVA_AGENT -jar $BASE_PATH/$SERVER_NAME.jar --spring.profiles.active$PROFILES_ACTIVE echo [start] 启动 $BASE_PATH/$SERVER_NAME 完成 }# 健康检查 function healthCheck() {# 如果配置健康检查则进行健康检查if [ -n $HEALTH_CHECK_URL ]; then# 健康检查最大 60 秒直到健康检查通过echo [healthCheck] 开始通过 $HEALTH_CHECK_URL 地址进行健康检查;for ((i 0; i 60; i))do# 请求健康检查地址只获取状态码。resultcurl -I -m 10 -o /dev/null -s -w %{http_code} $HEALTH_CHECK_URL || echo 000# 如果状态码为 200则说明健康检查通过if [ $result 200 ]; thenecho [healthCheck] 健康检查通过;break# 如果状态码非 200则说明未通过。sleep 1 秒后继续重试elseecho -e .\csleep 1fidone# 健康检查未通过则异常退出 shell 脚本不继续部署。if [ ! $result 200 ]; thenecho [healthCheck] 健康检查不通过可能部署失败。查看日志自行判断是否启动成功;tail -n 10 nohup.outexit 1;# 健康检查通过打印最后 10 行日志可能部署的人想看下日志。elsetail -n 10 nohup.outfi# 如果未配置健康检查则 slepp 60 秒人工看日志是否部署成功。elseecho [healthCheck] HEALTH_CHECK_URL 未配置开始 sleep 60 秒;sleep 60echo [healthCheck] sleep 60 秒完成查看日志自行判断是否启动成功;tail -n 50 nohup.outfi }# 部署 function deploy() {cd $BASE_PATH# 备份原 jarbackup# 停止 Java 服务stop# 部署新 jartransfer# 启动 Java 服务start# 健康检查healthCheck }deploy
http://www.hkea.cn/news/14473381/

相关文章:

  • 阿里网站空间单位网站建设意见建议
  • 平台类网站做多久建设简易电子商务网站流程图
  • 网站建设的作用有哪些方面怎样卸载wordpress
  • 网站排行怎么做南京网站搭建公司
  • 咸阳学校网站建设联系电话查看公司信息的网站
  • 帝国和织梦哪个做网站好个人建站项目
  • 网站名称注册程序企业网络推广怎么做
  • 怎么做微帮网站河南建筑职业技术学院
  • 蚌埠专业制作网站的公司五种类型网站
  • 广州做网站找酷爱网络迎访问中国建设银行网站-
  • 做网站用宋体有版权问题吗如何做网站 写代码
  • 地产建站规划高端网站开发哪家好
  • 高端外贸网站建设秦皇岛市建设局网站关于装配式专家
  • 手机网站建站平台要怎样创造网站
  • 网站开发会员功能教程大型论坛网站建设
  • 市场营销网站建设开网店详细步骤流程
  • wordpress搬家后台还是老网站国外网站建设的研究现状
  • 东莞 网站建设收费福建福州最新情况
  • 什么是建站网站备案类型有哪些
  • p2p理财网站开发流程图广州编程培训机构
  • 做网站的股哥网站可以做315认证吗
  • 深圳建设局网站查询google云 wordpress
  • 河北省城乡住房建设厅网站app拉新渠道
  • 妇联加强网站平台建设北京朝阳区网站建设公司
  • 太仓网站设计早晨设计山西省城乡住房和建设厅网站首页
  • 水利工程建设信息网站东莞网站建设制作
  • 网站建设需要摊销吗百度关键词搜索排名
  • 有专门做网站的公司吗中国三线建设网站
  • 微网站的链接怎么做wordpress 链接分类
  • 品牌型网站建设的好处创可贴网站怎么做图片