0、客户端添加依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

1、eureka 客户端 添加配置

endpoints.pause.enabled=true
endpoints.pause.sensitive=false
#用pause了 shutdown 就可以不开启了   
management.security.enabled=false

# restart 必须要开启的,pause 必须要依赖 restart
endpoints.restart.enabled=true

2、注意配置

eureka.client.healthcheck.enabled=true

management.contextPath=/management

而当我们设置配置eureka.client.healthcheck.enabled=true的时候,即使调用/pause端点,Eureka上服务的状态也会是UP

注:当应用在Eureka Server上的状态已被标记为DOWN ,但是应用本身其实依然是可以正常对外服务的,并没有被关闭,而在Spring Cloud中,Ribbon做负载均衡时,只会负载到标记为UP的实例上。

3、服务启动时,控制台会打印出所有端口

参考:

https://blog.csdn.net/u010629610/article/details/88045980

4、请求 /pause 接口后,该服务在eureka  上显示  down  ,但是 30秒内rubbon 还是会分配请求给这个服务,30秒后该服务不可用,

eureka.client.fetch-registry=true
eureka.client.registry-fetch-interval-seconds=5

这两个配置 第一个默认是开启,第二个意思是每5秒从eureka拉取一次服务列表信息,但是测试时还是30秒才更新,

原因是:

Eureka Server 针对请求响应ResponseCache,采用了一个2级缓存:readWrite cache读写缓存(存在过期时间) 和 readonly cache只读缓存(没有过期时间)

eureka:
server:
use-read-only-response-cache: true # 是否使用只读缓存作为请求响应的缓存,默认启用
response-cache-update-interval-ms: 30000 # 用于一级响应缓存多久更新一次,默认30秒
initial-capacity-of-response-cache: 1000 # 用于定义二级响应缓存的容量大小,默认1000
response-cache-auto-expiration-in-seconds: 180 # 二级响应缓存自动失效时间,默认180秒

  

  • 一级二级缓存获取规则

  当开启使用一级缓存时,会从一级缓存获取信息,否则直接从二级缓存取

  当第一次获取缓存时(一级缓存为null),会从二级缓存获取并将信息存入一级缓存(只读缓存)中

缓存失效

  • 一级缓存不存在自动失效期和手动清除

  • 二级缓存存在默认180s自动清除以及当注册服务下线,过期,注册,状态变更,都会来清除里面的数据

另外当二级缓存数据被清除以后以后,只能依靠定时任务刷新一级缓存里面的数据,也就是说最快也要等默认的30s才能更新一级缓存

  • 一级缓存是默认开启的,如果不能忍受这30秒的响应缓存变更延迟,可以手动禁止使用一级缓存,然后把二级缓存改为你能忍受的时间

参考:https://www.jianshu.com/p/71a8bdbf03f4

spring-cloud /pause 平滑升级 踩坑记录的更多相关文章

  1. spring boot +dubbo 踩坑记录

    今天初次搭建spring boot +duboo的demo.记录一下踩坑记录. 首先搭建3个小demo,一个maven项目,两个spring boot (服务提供者和服务消费者)项目. 两 sprin ...

  2. SpringBoot + Shiro + shiro.ini 的踩坑记录

    0.写在前面的话 好久没写博客了,诶,好多时候偷懒直接就抓网上的资料丢笔记里了,也就没有自己提炼,偷懒偷懒.然后最近参加了一个网络课程,要交作业的那种,为了能方便看下其他同学的作业,就写了个爬虫把作业 ...

  3. 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密

    你真的了解字典(Dictionary)吗?   从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...

  4. SpringBoot+SpringSecurity+Thymeleaf认证失败返回错误信息踩坑记录

    Spring boot +Spring Security + Thymeleaf认证失败返回错误信息踩坑记录 步入8102年,现在企业开发追求快速,Springboot以多种优秀特性引领潮流,在众多使 ...

  5. python发布包到pypi的踩坑记录

    前言 突然想玩玩python了^_^ 这篇博文记录了我打算发布包到pypi的踩坑经历.python更新太快了,甚至连这种发布上传机制都在不断的更新,这导致网上的一些关于python发布上传到pypi的 ...

  6. manjaro xfce 18.0 踩坑记录

    manjaro xfce 18.0 踩坑记录 1 简介1.1 Manjaro Linux1.2 开发桌面环境2 自动打开 NumLock3 系统快照3.1 安装timeshift3.2 使用times ...

  7. jQuery升级踩坑大全

    jQuery升级踩坑大全 背景 jQuery想必各个web工程师都再熟悉不过了,不过现如今很多网站还采用了很古老的jQuery版本.其实如果早期版本使用不当,可能会有DOMXSS漏洞,非常建议升级到j ...

  8. unionId突然不能获取的踩坑记录

    昨天(2016-2-2日),突然发现系统的一个微信接口使用不了了.后来经查发现,是在网页授权获取用户基本信息的时候,unionid获取失败导致的. 在网页授权获取用户基本信息的介绍中(http://m ...

  9. CentOS7.4安装MySQL踩坑记录

    CentOS7.4安装MySQL踩坑记录 time: 2018.3.19 CentOS7.4安装MySQL时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, ...

随机推荐

  1. [转帖]公钥基础设施(PKI)/CFSSL证书生成工具的使用

    公钥基础设施(PKI)/CFSSL证书生成工具的使用 weilovepan520关注1人评论84344人阅读2018-05-26 12:22:20 https://blog.51cto.com/liu ...

  2. URI解析

    这里主要参考 RFC3986 文档. URI可以分为URL,URN或同时具备locators 和names特性的一个东西.URN作用就好像一个人的名字,URL就像一个人的地址.换句话说:URN确定了东 ...

  3. 最全最新java面试题系列全家桶(带答案)

    最全最新java面试题系列全家桶(带答案) 置顶 2019年04月06日 22:40:28 青春季风暴 阅读数 14082 文章标签: java面试题技术栈 更多 分类专栏: 面试   版权声明:本文 ...

  4. Java Web DNS域名解析

    一.什么是DNS DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串 ...

  5. 基于C#实现与JY61姿态角度传感器通信

    产品介绍:  此六轴模块采用高精度的陀螺加速度计 MPU6050,通过处理器读取 MPU6050 的测量数据 然后通过串口输出,免去了用户自己去开发 MPU6050 复杂的 IIC 协议,同时精心的 ...

  6. gflags 编译动态库

    gflags 编译动态库 这里涉及到gflags的安装,原来使用 sudo apt-get install libgflags-dev 但是后面有人在环境中下载安装了libgflags的安装包,解压后 ...

  7. ZROIDay4-比赛解题报告

    ZROIDay4-比赛解题报告 扯闲话 感觉这个出题人的题做起来全都没感觉啊,今天又凉了,T1完全不知道什么意思,T2只会暴力,T3现在还不懂什么意思,真的太菜了 A 题意半天没搞懂爆零GG了,讲了一 ...

  8. ThreadLocal的原理与使用

    前言 在java web项目中,经常会使用到单例对象,从服务器启动那一时刻就实例化全局对象.然后会对某些全局对象的属性进行修改之类的操作,但是我们知道项目一般都是部署到tomcat.Jboss之类的服 ...

  9. O033、Terminate Instance 操作详解

    参考https://www.cnblogs.com/CloudMan6/p/5486066.html   本节通过日志详细分析 Nova Terminate 操作.Terminate 操作就是删除 i ...

  10. 深入理解hadoop之排序

    MapReduce的排序是默认按照Key排序的,也就是说输出的时候,key会按照大小或字典顺序来输出,比如一个简单的wordcount,出现的结果也会是左侧的字母按照字典顺序排列.下面我们主要聊聊面试 ...