作者回复: 是的,源码里带上了这行配置
作者回复: FeignClient注解里面有个玄机,决定了让框架注入哪个类。同学点进去这个注解的源代码,会发现一个神奇的boolean变量,好了我点到为止了哈,等同学自己摸索出来之后来分享下答案吧
作者回复: feign本质是spring mvc模式的封装,如果项目需要大量使用non blocking功能建议用webflux之类的方案。也有民间热心群众开源的ReactiveFeign版本可以作为一个选择
作者回复: 在专栏里使用的这个spring cloud版本中已经不推荐使用hystrix作为熔断器了,hystrix依赖项已经从SC项目中全面剔除了,同学可以等后面介绍到sentinel的时候学习更强大的降级熔断组件。 这里介绍的feign降级是一个简化版的降级方案,配置文件里添加feign.circuitbreaker.enabled=true试试
作者回复: Bingo
作者回复: 各有利弊吧。比如Hystrix是client端降级,廉价好用省资源,只不过不能从全局视角做资源控制,只能在“单机”这个维度来做控制。Sentinel这种中心化的流控工具会增加部署成本和项目复杂度,但也提供了更加灵活+多维度的资源控制方式
作者回复: Q1:没错,完全可以搭配Resilience4j,后面还会介绍一个中心化容错组件sentinel Q2:06篇作为到微服务的过渡,我们设想这三个服务都变成了微服务之后,是如何发起调用的 Q3:后面会介绍Sentinel服务容错组件做限流+服务熔断,提供了一定的大盘监控能力。但这个不是专业的仪表监控系统,同学如果感兴趣的话可以了解下grafana,很多公司用这个监控k8s集群 Q4:CICD部分没有包含在专栏里面
作者回复: 单独把API抽离出来的目的是减少包污染,也是大部分RPC框架推荐的一种方式。 第三方API jar也是单独抽离出来的一个maven依赖项,和我们剥离API子模块供给其他业务方使用是一个道理
作者回复: 熔断器的设置会在sentinel相关章节讲到,熔断是指在一段时间内,服务调用直接走降级逻辑
作者回复: 我们会在后面章节里用sentinel来提供断路保护,同学在往后看一丢丢就到了