一、hystrix
Hystrix :
服务降级
服务熔断
服务限流
二、Jmeter
下载Jmeter压力测试工具(我是最新版5.3 对应jdk1.8及以上)
自测通过后添加
cloud-consumer端 ,消费者80去调用8001
此时8001压力较大时、多个80消费者去调用、延迟更明显
服务降级显得更有必要。
此处写一下8001服务端降级和80消费端降级的区别:
例如8001允许最长延迟5秒,那么延迟4秒的业务在8001端自测可通过、但消费端有消费端的标准,
比如消费端只允许2秒的延迟,那么消费者80去调用延迟4秒的8001端的服务,就会转向降级服务。
降级方法要写在服务层,以注解形式配置
此时只会等待2秒,如果调用没有结果或者运行出错就返回兜底服务
消费者80侧增加降级保护:
理论结果:
服务侧自测是可以通过的,但是order消费者侧调用无法通过。
注:HystrixCommand、HystrixProperty 两个注解既可以加在controller层也可以加在服务层
配置默认降级服务和特殊化的降级服务:
配置效果:
还有通过配置接口全局配置的方法:
当有多种配置时,(有接口配置、注解默认配置、注解特殊化配置)、返回哪种降级服务呢?
经过实验、我认为是返回响应时间比较短的那个。比如我个性化配置的timeout2允许延迟3s,而接口配置默认1s(这个我不确定)、那么当延时服务大于1s时,将会把接口配置的服务作为降级服务。
被调用服务器宕机也是和上面一样的计算方法。
服务熔断:服务层配置:
服务熔断与服务降级的区别在于 服务熔断后有一段时间“半开”,半开过后会自动关闭断路器。
即具备“自我修复的功能”。
三、服务监控hystrixDashboard
服务监控hystrixDashboard
具体配置略
四、gateway网关
另一种网关路由的配置方式:
网关路由调用的负载均衡:
需要注意的是uri的协议为lb,表示启用Gateway的负载均衡功能。
lb://serviceName是springCloud gateway在微服务中自动为我们创建的负载均衡uri、默认规则就是轮询
Predicate的使用:(即 对发来网关的请求做一些过滤)
Gateway的Filter过滤器:
五、SpringCloud Config 配置中心
建立客户端3355、通过3344来访问到远程仓库的内容
概念图:
实际操作:
使3355客户端能够动态刷新?:
3344总控可以动态刷新,因为是直接与gitee相连的,那3355怎么办?:
配置完成开始试验:
成功做到了不重启3355客户端微服务也可以实现动态刷新