
Spring Cloud相关
文章平均质量分 91
Spring Cloud相关的一些分析和坑定位
hashcon
做自媒体技术分享很久了,大家的抬爱与支持让我很开心很感激,但是个人本来做这些也并不是为了收益,只是为了个人学习与传播知识帮助更多的人,所以我将全网所有账号全部收益,持续捐给各种公益项目,也算不辜负大家的抬爱,也是回报祖国对我的一番培养。
曾任职于顺丰,华为,网易等公司,从Java小白,成长为资深开发与项目组首席架构师。喜欢源码与开源,曾贡献 MyCat1.6 核心源码,贡献过druid,Spring Cloud,dubbox,Apache RocketMQ,Apache Bookeeper 等多开源项目。
展开
-
我为什么不建议使用框架默认的 DefaultMeterObservationHandler
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个另外,本文为了避免抄袭,会在不影响阅读的情况下,在文章的随机位置放入对于抄袭和洗稿的人的“亲切”的问候。如果是正常读者看到,笔者在这里说声对不起,。原创 2024-01-19 16:33:36 · 498 阅读 · 0 评论 -
Spring Cloud Gateway 不小心换了个 Web 容器就不能用了,我 TM 人傻了
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~本文是我 TM 人傻了的第多少期我忘了,每一期总结一个坑以及对于坑的一些发散性想法,往期精彩回顾:升级到Spring 5.3.x之后,GC次数急剧增加,我TM人傻了这个大表走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了获取异常信息里再出异常就找不到日志了,我TM人傻.原创 2022-03-12 08:35:02 · 1210 阅读 · 0 评论 -
如何在 Spring Boot 优雅关闭加入一些自定义机制
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~我们知道从 Spring Boot 2.3.x 这个版本开始,引入了优雅关闭的机制。我们也在线上部署了这个机制,来增加用户体验。虽然现在大家基本上都通过最终一致性,以及事务等机制,来保证了就算非优雅关闭,也可以保持业务正确。但是,这样总会带来短时间的数据不一致,影响用户体验。所以,引入.原创 2022-03-05 19:58:57 · 884 阅读 · 0 评论 -
实现微服务预热调用之后再开始服务(下)
继续分析其他接入点。其他需要初始化的接入点分析我们有时候还需要做一些自定义的初始化操作,但是如何在注册到注册中心状态为 UP 也就是开始处理请求之前做这些操作呢?为了更加与云环境兼容,Spring Boot 从 2.3.0 版本之后引入了一些云上部署相关的概念:LivenessState(存活状态):就应用程序而言,存活状态是指应用程序的状态是否正常。如果存活状态不正常,则意味着应用程序本身已损坏,无法恢复。在 k8s 中,如果存活检测失败,则 kubelet 将杀死 Container,并且根据原创 2022-01-02 10:46:21 · 648 阅读 · 0 评论 -
实现微服务预热调用之后再开始服务(上)
最近线上发现一个现象,应用实例刚刚启动的时候,开始接收请求之后发生了一小段时间的请求阻塞,从 HTTP Servlet 请求队列监控上可以看出(基于 spring-web 的普通阻塞的 HTTP 服务器是有 HTTP 线程池的,当线程是满了之后,请求在阻塞队列中等待处理。基于 spring-webflux 的没有这个现象,但是考虑的背压问题其实和这个场景类似):然后阻塞数量很快就下去了,通过 JFR 发现和 Spring 各种懒加载的 Bean,各种资源或者连接池初始化等有关。这些资源可以理解为是懒加载原创 2022-01-01 08:33:22 · 1199 阅读 · 0 评论 -
Spring-data-redis + Lettuce 如何使用 Pipeline
关于 spring-data-redis 和 lettuce,笔者写过不少文章:这个 Redis 连接池的新监控方式针不戳~我再加一点佐料spring-data-redis 连接泄漏,我 TM 人傻了spring-data-redis 动态切换数据源spring-data-redis 上百万的 QPS 压力太大连接失败,我 TM 人傻了最近,私信还有留言中,网友提到 spring-data-redis 和 lettuce 一起使用,pipeline 通过抓包一看,并没有生效,这个如何配置才能生原创 2021-10-17 09:57:13 · 3436 阅读 · 0 评论 -
SpringCloud升级之路2020.0.x版-27.OpenFeign的生命周期-创建代理
本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent接下来,我们开始分析 OpenFeign 的生命周期,结合 OpenFeign 本身的源代码。首先是从接口定义创建 OpenFeign 代理开始。我们这里只关心同步客户端,因为异步客户端目前还在实现中,并且在我们的项目中,异步响应式的客户端不用 OpenFeign,而是用的官方的 WebClient创建 OpenFeign 代理创建 OpenFeign 代理,主要分为以下几步:使用 C..原创 2021-10-16 09:44:01 · 376 阅读 · 0 评论 -
SpringCloud升级之路2020.0.x版-26.OpenFeign的组件
本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent首先,我们给出官方文档中的组件结构图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jrW9fLUy-1633609229588)(http://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/OpenFeign/feign/master/sr..原创 2021-10-07 20:20:46 · 374 阅读 · 0 评论 -
Spring Cloud Gateway 动态修改请求参数解决 # URL 编码错误传参问题
Spring Cloud Gateway 动态修改请求参数解决 # URL 编码错误传参问题继实现动态修改请求 Body 以及重试带 Body 的请求之后,我们又遇到了一个小问题。最近很多接口,收到了错误的参数,在接口层报的错是:class org.springframework.web.method.annotation.MethodArgumentTypeMismatchException, Failed to convert value of type 'java.lang.String' to原创 2021-10-05 15:25:19 · 3410 阅读 · 1 评论 -
spring-data-redis 上百万的 QPS 压力太大连接失败,我 TM 人傻了
大家好,我们最近业务量暴涨,导致我最近一直 TM 人傻了。前几天晚上,发现由于业务压力激增,某个核心微服务新扩容起来的几个实例,在不同程度上,出现了 Redis 连接失败的异常:org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to c.原创 2021-10-04 10:19:41 · 1050 阅读 · 0 评论 -
SpringCloud升级之路2020.0.x版-25.OpenFeign简介与使用
本系列代码地址:https://github.com/JoJoTec/spring-cloud-parentOpenFeign 的由来和实现思路在微服务系统中,我们经常会进行 RPC 调用。在 Spring Cloud 体系中,RPC 调用一般就是 HTTP 协议的调用。对于每次调用,基本都要经过如下步骤:找到微服务实例列表并选择一个实例调用参数序列化使用 Http 客户端将请求发送出去响应处理,反序列化等等除了这些公共逻辑,业务上只需要定义参数,HTTP 方法,HTTP URI,响应..原创 2021-10-03 20:22:50 · 422 阅读 · 0 评论 -
启用 Spring-Cloud-OpenFeign 配置可刷新,项目无法启动,我 TM 人傻了(下)
本篇文章涉及底层设计以及原理,以及问题定位,比较深入,篇幅较长,所以拆分成上下两篇:上:问题简单描述以及 Spring Cloud RefreshScope 的原理下:当前 spring-cloud-openfeign + spring-cloud-sleuth 带来的 bug 以及如何修复Spring Cloud 中的配置动态刷新其实在测试的程序中,我们已经实现了一个简单的 Bean 刷新的设计。Spring Cloud 的自动刷新中,包含两种元素的刷新,分别是:配置刷新,即 Envir.原创 2021-10-02 08:49:41 · 793 阅读 · 0 评论 -
启用 Spring-Cloud-OpenFeign 配置可刷新,项目无法启动,我 TM 人傻了(上)
本篇文章涉及底层设计以及原理,以及问题定位,比较深入,篇幅较长,所以拆分成上下两篇:上:问题简单描述以及 Spring Cloud RefreshScope 的原理下:当前 spring-cloud-openfeign + spring-cloud-sleuth 带来的 bug 以及如何修复最近在项目中想实现 OpenFeign 的配置可以动态刷新(主要是 Feign 的 Options 配置),例如:feign: client: config: default.原创 2021-10-01 13:22:58 · 636 阅读 · 0 评论 -
Spring Cloud Gateway 雪崩了,我 TM 人傻了
本系列是 我TM人傻了 系列第六期[捂脸],往期精彩回顾:升级到Spring 5.3.x之后,GC次数急剧增加,我TM人傻了这个大表走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了获取异常信息里再出异常就找不到日志了,我TM人傻了spring-data-redis 连接泄漏,我 TM 人傻了spring-data-redis 连接泄漏,我 TM 人傻了大家好,我又人傻了。这次的经验告诉我们,出来写代码偷的懒,迟早要还的。问题现象与背景昨晚我们的网关雪崩了一段时间,现.原创 2021-09-27 21:39:16 · 1708 阅读 · 4 评论 -
Spring Cloud Gateway 没有链路信息,我 TM 人傻了(下)
本系列是 我TM人傻了 系列第五期[捂脸],往期精彩回顾:升级到Spring 5.3.x之后,GC次数急剧增加,我TM人傻了这个大表走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了获取异常信息里再出异常就找不到日志了,我TM人傻了spring-data-redis 连接泄漏,我 TM 人傻了本篇文章涉及底层设计以及原理,以及问题定位和可能的问题点,非常深入,篇幅较长,所以拆分成上中下三篇:上:问题简单描述以及 Spring Cloud Gateway 基本结构和流程以及底层原.原创 2021-09-26 20:48:31 · 998 阅读 · 0 评论 -
Spring Cloud Gateway 没有链路信息,我 TM 人傻了(中)
本系列是 我TM人傻了 系列第五期[捂脸],往期精彩回顾:升级到Spring 5.3.x之后,GC次数急剧增加,我TM人傻了这个大表走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了获取异常信息里再出异常就找不到日志了,我TM人傻了spring-data-redis 连接泄漏,我 TM 人傻了本篇文章涉及底层设计以及原理,以及问题定位和可能的问题点,非常深入,篇幅较长,所以拆分成上中下三篇:上:问题简单描述以及 Spring Cloud Gateway 基本结构和流程以及底层原.原创 2021-09-25 16:34:31 · 695 阅读 · 0 评论 -
Spring Cloud Gateway 没有链路信息,我 TM 人傻了(上)
本系列是 我TM人傻了 系列第五期[捂脸],往期精彩回顾:升级到Spring 5.3.x之后,GC次数急剧增加,我TM人傻了这个大表走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了获取异常信息里再出异常就找不到日志了,我TM人傻了spring-data-redis 连接泄漏,我 TM 人傻了本篇文章涉及底层设计以及原理,以及问题定位和可能的问题点,非常深入,篇幅较长,所以拆分成上中下三篇:上:问题简单描述以及 Spring Cloud Gateway 基本结构和流程以及底层原.原创 2021-09-24 16:58:38 · 619 阅读 · 0 评论 -
Spring Cloud 升级之路 - 2020.0.x - 3. Undertow 的 accesslog 配置
上一节我们讲述了如何使用 Undertow 作为我们的 Web 服务容器,本小节我们来分析使用 Undertow 的另一个问题,也就是如何配置 accesslog,以及 accesslog 的各种占位符。accesslog 相关配置server: undertow: # access log相关配置 accesslog: # 存放目录,默认为 logs dir: ./log # 是否开启 enabled: true # 格式原创 2021-04-08 00:20:00 · 13306 阅读 · 0 评论 -
Spring Cloud 升级之路 - 2020.0.x - 2. 使用 Undertow 作为我们的 Web 服务容器
本项目代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford在我们的项目中,我们没有采用默认的 Tomcat 容器,而是使用了 UnderTow 作为我们的容器。其实性能上的差异并没有那么明显,但是使用 UnderTow 我们可以利用直接内存作为网络传输的 buffer,减少业务的 GC,优化业务的表现。Undertow 的官网:https://undertow.io/但是,Un.原创 2021-04-06 21:36:11 · 14230 阅读 · 1 评论 -
Spring Cloud 升级之路 - 2020.0.x - 1. 背景知识、需求描述与公共依赖
1. 背景知识、需求描述与公共依赖1.1. 背景知识 & 需求描述Spring Cloud 官方文档说了,它是一个完整的微服务体系,用户可以通过使用 Spring Cloud 快速搭建一个自己的微服务系统。那么 Spring Cloud 究竟是如何使用的呢?他到底有哪些组件?spring-cloud-commons组件里面,就有 Spring Cloud 默认提供的所有组件功能的抽象接口,有的还有默认实现。目前的 2020.0.x (按照之前的命名规则应该是 iiford),也就是spring原创 2021-04-04 08:32:27 · 13550 阅读 · 0 评论 -
Spring Cloud系列之Commons - 2. 服务发现 - 如何通过配置文件配置服务实例?
Spring Cloud Commons 主要包括如下模块的接口和默认实现:其中的限流策略以及重试策略是没有天然带的,但是其他模块的实现一般会带上这些功能。我们先从服务发现相关接口开始分析服务发现相关核心接口DiscoveryClientDiscoveryClientpublic interface DiscoveryClient extends Ordered { int DEFAULT_ORDER = 0; //描述 String description(); //通过原创 2021-01-27 08:58:49 · 17916 阅读 · 0 评论 -
Spring Cloud系列之Commons - 1. 背景与基础知识准备
本文基于 Spring Cloud 2020.0 发布版的依赖本系列会深入分析 Spring Cloud 的每一个组件,从Spring Cloud Commons这个 Spring Cloud 所有元素的抽象说起,深入设计思路与源码,并结合实际使用例子深入理解。本系列适合有一定 Spring 或者 Spring Boot 使用经验的人阅读。什么是Spring Cloud CommonsSpring Cloud框架包括如下功能:分布式多版本配置管理服务注册与发现路由微服务调用负载均衡断.原创 2021-01-18 10:30:26 · 19113 阅读 · 0 评论 -
Spring Cloud升级之路 - Hoxton - 8. 修改实例级别的熔断为实例+方法级别
实例级别的熔断带来的困扰如之前系列(Spring Cloud升级之路 - Hoxton - 4. 使用Resilience4j实现实例级别的隔离与熔断)所述,我们实现了实例级别的熔断。但是在生产中发现,并不是所有情况下都表现良好。首先如果发布了新接口,但是不小心回滚了,调用新接口就会报错,从而导致整个实例都不能访问。还有就是某些实例某个接口出现了问题,但是其他接口是好的,熔断掉整个实例有点浪费。于是乎,我们将实例级别的熔断改成 实例 + 方法级别。对于 OpenFeign 修改首先,我们只针对断路器进原创 2020-07-14 10:24:08 · 16906 阅读 · 0 评论 -
Spring Cloud升级之路 - Hoxton - 7. 后续更新(WebFlux等)
1. 修正实例列表乱序导致的负载均衡重试相同实例的问题虽然之前考虑了通过每个请求的traceId隔离负载均衡的position来实现重试不会重试相同实例的问题,但是没有考虑在负载均衡过程中,实例列表的更新。例如:请求第一次调用负载均衡,实例列表是:[实例1,实例2],position为1,对2取余=1,所以请求发送到实例2上面了请求失败,触发重试,实例列表缓存失效,更新后变成了:[实例2,实例1],position为2,对2取余=0,所以请求又发送到实例2上面了private Response原创 2020-06-15 15:21:57 · 15228 阅读 · 0 评论 -
Spring Cloud升级之路 - Hoxton - 6. 场景测试
准备工作首先拉取项目源码:git clone https://github.com/HashZhang/spring-cloud-scaffold.git打开其中的 spring-cloud-hoxton 项目。启动Eureka启动zone1-service-provider-instance1,zone1-service-provider-instance2,zone1-service-provider2-instance1,zone2-service-provider-instance1这原创 2020-06-05 17:39:26 · 10221 阅读 · 0 评论 -
Spring Cloud升级之路 - Hoxton - 5. 实现微服务调用重试
feign 实现重试我们继续使用resilience4j实现重试,根据上一篇Spring Cloud升级之路 - Hoxton - 4. 使用Resilience4j实现实例级别的隔离与熔断,我们已经加载了RetryReqistry这个核心配置Bean。Retry相关的配置:create-and-configure-retry配置项默认值说明maxAttempts3最大重试次数,不包括本身那次调用waitDuration500[ms]重试间隔时间interva原创 2020-06-05 17:38:52 · 19917 阅读 · 6 评论 -
Spring Cloud升级之路 - Hoxton - 4. 使用Resilience4j实现实例级别的隔离与熔断
如何不启用Hystrix由于我们的入口注解类从@SpringCloudApplication替换成了SpringBootApplication,这样不会启用Spring-Cloud-CircuitBreaker。引入的Hystrix依赖也就没有效果。请参考本系列第二节: Spring Cloud升级之路 - Hoxton - 2.入口类注解修改与OpenFeign的改造使用Resilience4j实现实例级别的隔离与熔断为什么需要实例级别的熔断呢?因为某个微服务可能某些实例暂时不可用,我们希望在重试的原创 2020-06-05 11:13:39 · 19506 阅读 · 4 评论 -
Spring Cloud升级之路 - Hoxton - 3. 负载均衡从ribbon替换成spring-cloud-loadbalancer
本系列示例与胶水代码地址: https://github.com/HashZhang/spring-cloud-scaffold负载均衡Ribbon替换成Spring Cloud Load BalancerSpring Cloud Load Balancer并不是一个独立的项目,而是spring-cloud-commons其中的一个模块。 项目中用了Eureka以及相关的 starter,想完全剔除Ribbon的相关依赖基本是不可能的,Spring 社区的人也是看到了这一点,通过配置去关闭Ribbo.原创 2020-06-04 11:14:18 · 34480 阅读 · 2 评论 -
Spring Cloud升级之路 - Hoxton - 2.入口类注解修改与OpenFeign的改造
本系列示例与胶水代码地址: https://github.com/HashZhang/spring-cloud-scaffold入口类注解修改之前的项目,我们也许会用@SpringCloudApplication作为我们入口类的注解。这个注解包括:@SpringBootApplication@EnableDiscoveryClient@EnableCircuitBreakerpublic @interface SpringCloudApplication {}其中的@EnableDis.原创 2020-05-28 18:43:28 · 11348 阅读 · 0 评论 -
Spring Cloud升级之路 - Hoxton - 1.背景介绍与要实现的功能
本系列示例与胶水代码地址: https://github.com/HashZhang/spring-cloud-scaffoldSpring Cloud还是比较活跃的,更新一直很快。我一般考虑最新版本SR2发布之后,再考虑升级(一般SR1还有SR2会有一些新老框架的兼容性升级)。而且由于需要我们线上稳定,结合我们的发布周期来看,跳一个大版本升级是一个更好的选择(也就是一年做一次大版本升级)。例如我们之前的升级路线就是:Brixton -> Daltson -> Finchley ->.原创 2020-05-28 18:42:05 · 21330 阅读 · 0 评论 -
Spring Cloud Hystrix ThreadPool的bug
BUG背景JDK: 11.0.4Spring Cloud Finchley.SR3相关配置:#开启hystrixfeign.hystrix.enabled=true#关闭断路器hystrix.command.default.circuitBreaker.enabled=false#禁用hystrix远程调用超时时间hystrix.command.default.executi...原创 2019-11-28 19:31:33 · 3207 阅读 · 0 评论 -
CompletableFuture与Spring的Sleuth结合工具类
本文基于JDK 11 and JDK 12按照上一篇内容的分析,我们想在异步代码保留原有的spanId和traceId需要在异步调用前,使用:Span span = tracer.currentSpan();try (Tracer.SpanInScope cleared = tracer.withSpanInScope(span)) { //执行异步代码}每次使用Compl...原创 2019-11-13 17:22:59 · 16058 阅读 · 1 评论 -
Spring WebFlux运用中的思考与对比
本文基于Spring Cloud Finchley SR4本文通过几个问题,解析下Spring WebFlux用法最佳实践,并与另一框架Vertx作对比1. 是否一定要用默认的Web容器,用自己的Web容器是否可以,同时是否可以有web和webflux是可以的,这样的依赖是可行的(容器用tomcat和undertow或者其他都可以,这里使用undertow):2. 怎样实现真正的异步背...原创 2019-11-12 17:55:57 · 19822 阅读 · 1 评论 -
Spring Cloud Finchley OpenFeign的重试配置相关的坑
如题,本文基于Spring Cloud Finchley.SR2OpenFeign的重试OpenFeign配置重试后,逻辑分析对比Daltson和Finchley的基本组件,发现Ribbon还有Hystrix的重试逻辑基本没变,feign编程openfeign之后,增加了个重试逻辑,我们用下面这个图来展示其中的逻辑:首先搞清楚调用链:可以总结如下:OpenFeign有自己的重试...原创 2019-04-24 12:30:53 · 12135 阅读 · 4 评论 -
Ribbon的AvailabilityFilteringRule的坑(Spring Cloud Finchley.SR2)
如题,本文基于Spring Cloud Finchley.SR2我们项目配置了AvailabilityFilteringRule作为所有Ribbon调用的负载均衡规则,它有那些坑呢(理解歧义和注意点)?首先来看源码,核心是choose方法:public Server choose(Object key) { int count = 0; //通过轮询选择一个server...原创 2019-04-24 12:04:12 · 20916 阅读 · 2 评论 -
Spring Cloud Eureka 全解 (1) - 总览篇
本文基于SpringCloud-Dalston.SR5Eureka作为服务注册中心对整个微服务架构起着最核心的整合作用,因此对Eureka还是有很大的必要进行深入研究。Eureka 1.x版本是纯基于servlet的应用。为了与spring cloud结合使用,除了本身eureka代码,还有个粘合模块spring-cloud-netflix-eureka-server。在我们启动Eurek原创 2017-11-15 19:39:39 · 44450 阅读 · 0 评论 -
Spring Cloud Eureka 全解 (3) - 核心流程-服务注册与取消详解
本文基于SpringCloud-Dalston.SR5关于服务注册 开启/关闭服务注册配置:eureka.client.register-with-eureka = true (默认)什么时候注册?应用第一次启动时,初始化EurekaClient时,应用状态改变:从STARTING变为UP会触发这个Listener,调用instanceInfoReplicator....原创 2017-11-29 18:54:34 · 30374 阅读 · 3 评论 -
Spring Cloud Eureka 全解 (4) - 核心流程-服务与实例列表获取详解
本文基于SpringCloud-Dalston.SR5关于服务与实例列表获取EurekaClient端我们从Ribbon说起:EurekaClient也存在缓存,应用服务实例列表信息在每个EurekaClient服务消费端都有缓存。一般的,Ribbon的LoadBalancer会读取这个缓存,来知道当前有哪些实例可以调用,从而进行负载均衡。这个loadbalancer同样也有缓原创 2018-01-24 16:29:58 · 34467 阅读 · 0 评论 -
Spring Cloud Eureka 全解 (5) - 自我保护机制
本文基于SpringCloud-Dalston.SR5自我保护机制 关闭自我保护机制(默认是打开的):eureka.server.enable-self-preservation=false自我保护机制:默认情况下,如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销该实例(默认90秒)。但是当网络分区故障发生时,微服务原创 2018-01-24 17:07:36 · 62577 阅读 · 6 评论 -
Spring Cloud Eureka 全解 (6) - 一些热门QA
本文基于SpringCloud-Dalston.SR5Eureka服务实例启动时,是否会立刻向EurekaServer注册?是的,立刻会。EurekaClient在每次实例状态发生改变时,有一个Listener:statusChangeListener = new ApplicationInfoManager.StatusChangeListener() { @Ov原创 2018-01-24 17:44:02 · 16111 阅读 · 2 评论