spring-cloud /pause 平滑升级 踩坑记录
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 平滑升级 踩坑记录的更多相关文章
- spring boot +dubbo 踩坑记录
今天初次搭建spring boot +duboo的demo.记录一下踩坑记录. 首先搭建3个小demo,一个maven项目,两个spring boot (服务提供者和服务消费者)项目. 两 sprin ...
- SpringBoot + Shiro + shiro.ini 的踩坑记录
0.写在前面的话 好久没写博客了,诶,好多时候偷懒直接就抓网上的资料丢笔记里了,也就没有自己提炼,偷懒偷懒.然后最近参加了一个网络课程,要交作业的那种,为了能方便看下其他同学的作业,就写了个爬虫把作业 ...
- 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密
你真的了解字典(Dictionary)吗? 从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...
- SpringBoot+SpringSecurity+Thymeleaf认证失败返回错误信息踩坑记录
Spring boot +Spring Security + Thymeleaf认证失败返回错误信息踩坑记录 步入8102年,现在企业开发追求快速,Springboot以多种优秀特性引领潮流,在众多使 ...
- python发布包到pypi的踩坑记录
前言 突然想玩玩python了^_^ 这篇博文记录了我打算发布包到pypi的踩坑经历.python更新太快了,甚至连这种发布上传机制都在不断的更新,这导致网上的一些关于python发布上传到pypi的 ...
- manjaro xfce 18.0 踩坑记录
manjaro xfce 18.0 踩坑记录 1 简介1.1 Manjaro Linux1.2 开发桌面环境2 自动打开 NumLock3 系统快照3.1 安装timeshift3.2 使用times ...
- jQuery升级踩坑大全
jQuery升级踩坑大全 背景 jQuery想必各个web工程师都再熟悉不过了,不过现如今很多网站还采用了很古老的jQuery版本.其实如果早期版本使用不当,可能会有DOMXSS漏洞,非常建议升级到j ...
- unionId突然不能获取的踩坑记录
昨天(2016-2-2日),突然发现系统的一个微信接口使用不了了.后来经查发现,是在网页授权获取用户基本信息的时候,unionid获取失败导致的. 在网页授权获取用户基本信息的介绍中(http://m ...
- CentOS7.4安装MySQL踩坑记录
CentOS7.4安装MySQL踩坑记录 time: 2018.3.19 CentOS7.4安装MySQL时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, ...
随机推荐
- Remainder Problem(分块) Educational Codeforces Round 71 (Rated for Div. 2)
引用:https://blog.csdn.net/qq_41879343/article/details/100565031 下面代码写错了,注意要上面这种.查:2 800 0,下面代码就错了. ...
- Java回调实现异步 (转)
出处: Java回调实现异步 在正常的业务中使用同步线程,如果服务器每处理一个请求,就创建一个线程的话,会对服务器的资源造成浪费.因为这些线程可能会浪费时间在等待网络传输,等待数据库连接等其他事情上, ...
- django 项目开发及部署遇到的坑
1.django 连接oracle数据库遇到的坑 需求:通过plsql建立的oracle数据表,想要django操作这几个表 python manage.py inspectdb table_name ...
- 怎样设置 MySQL 远程连接
允许用户 root 在 任何IP 上都可以远程连接 所有 mysql数据库 并具有操作数据库的 所有权限, 密码为: myPassword mysql -u root -p grant all PRI ...
- PLSQL Developer 12 汉化包下载
下载地址: https://www.allroundautomations.com/plsqldevlang/120/index.html
- vi/vim 编辑、搜索、查找、定位
介绍vi/vim 相关命令,主要涉及:编辑.搜索.查找.定位. 分为两个章节,即常用命令 及 键盘图 一.vi/vim常用命令 set nu 显示行号 gg 跳转到文件开头 / 向后搜索 ? 向前搜 ...
- javascript是否像php一样有isset和empty?
javascript是否像php一样有isset和empty? is set()在php中用于检测是否设置了变量木浴桶,函数返回布尔值true/false.在javascript中,您可以用替换它!( ...
- 浅谈WEB中的高并发
转载:https://www.cnblogs.com/guan-520/p/9575848.html 何谓高并发 高并发指的是:在同时或极短时间内,有大量的请求到达服务端,每个请求都需要服务端耗费资源 ...
- 阿里云环境中配置tomcat7可能出现的问题及解决方法
前提是安装好了tomcat,但是输入ip+端口无法访问,那么情况有一下几种 (1)可能防火墙没有关闭 systemctl stop firewalld.service #停止firewall syst ...
- JavaWeb【过滤器】
定义: 服务器端组件,可以截取用户端的请求和响应,并对这些信息做过滤. 课程概要: 1.工作原理 2.生命周期 1.web.xml配置 注意:url-pattern配置路径前面需要加"/&q ...