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时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, ...
随机推荐
- MNFTL: An Efficient Flash Translation Layer for MLC
1. we propose two approaches, namely, concentrated mapping and postponed reclamation, to effective r ...
- sd卡挂载方法:
cd mnt//Sdcard创建目录mkdir -m 777 Sdcard//节点挂载mount /dev/msa1 /mnt/Sdcard//抓包./tcpdump -i eth0 tcp por ...
- arm-linux的gdb移植
转载于:http://blog.chinaunix.net/uid-23381466-id-309369.html arm-linux的gdb移植分为两种情况.一种是交叉调试版.这一种模式是需要编译一 ...
- 【转帖】linux下的各个目录的含义
linux下的各个目录的含义 http://embeddedlinux.org.cn/emb-linux/entry-level/200809/22-85.html/bin/usr/local/bin ...
- GCD and LCM HDU - 4497(质因数分解)
Problem Description Given two positive integers G and L, could you tell me how many solutions of (x, ...
- dos2unix、diff命令
一.dos2unix:将DOS格式文件转化成UNIX格式文件 语法: dos2unix [选项] [文件...] [-n INFILE输出文件...] unix2dos [选项] ...
- 区间dp 括号匹配问题
这道题目能用区间dp来解决,是因为一个大区间的括号匹配数是可以由小区间最优化选取得到(也就是满足最优子结构) 然后构造dp 既然是区间类型的dp 一般用二维 我们定义dp[i][j] 表示i~j这个区 ...
- C# 使用Emit实现动态AOP框架 进阶篇之异常处理
目 录 C# 使用Emit实现动态AOP框架 (一) C# 使用Emit实现动态AOP框架 (二) C# 使用Emit实现动态AOP框架 (三) C# 使用Emit实现动态AOP框架 进阶篇之异常处 ...
- squoosh
谷歌在线压缩图片
- JavaScript例子2-使一个特定的表格隔行变色
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...