您的位置:首页 > 房产 > 建筑 > 环球资源平台的优势_广西疫情最新消息环球网_seo教程下载_网上在线看视频为什么卡

环球资源平台的优势_广西疫情最新消息环球网_seo教程下载_网上在线看视频为什么卡

2025/2/26 22:32:25 来源:https://blog.csdn.net/LiuYQi/article/details/142892918  浏览:    关键词:环球资源平台的优势_广西疫情最新消息环球网_seo教程下载_网上在线看视频为什么卡
环球资源平台的优势_广西疫情最新消息环球网_seo教程下载_网上在线看视频为什么卡

偶尔一碗热鸡汤:一个人内耗,说明他活在过去;一个人焦虑,说明他活在未来。只有当一个人平静时,他才活在现在。

日常

1、6:00起床√

2、健身1.5h:练了背和胸,今天没跑步

3、LeetCode刷了2题

  1. 分割回文串:回溯、中
    1. 使用递归+回溯来解答,递归遍历整个字符串,在递归函数中先判断当前递归深度是否等于字符串长度,如果等于说明当前分割满足要求,则加入ans后恢复状态继续递归
    2. 先从当前字符串开始找到第一个回文串,然后加入output序列中,继续对下一个字符串进行递归,递归结束后恢复状态进行回溯,继续递归别的可能的情况
    3. 在Java传递引用类型数据时要判断是传递地址还是传递值,对于值传递要传入复制过的数据
  2. 最小栈:栈、中
    1. 用空间换时间,在维护栈的同时维护一个存放最小值的数组,其中min[i]是指栈中前i个元素的最小值,在每次入栈的时候同步维护其中的数据,将插入数据和前面的最小值插入栈中
    2. 在使用栈结构时,一定要注意入栈时top++,出栈时top–,栈结构用ArrayList数组+top进行实现,可以动态改变栈的长度,出栈时直接调用remove(–top)进行出栈,入栈时要栈顶+1,出栈时要栈顶-1

4、复盘22:30√

不复盘等于白学!!!

学习和感想

1、 SpringCloud学习:CircuitBreaker断路器:服务熔断和降级

  1. 为什么要有:禁止服务雪崩故障,对故障结点快速熔断或降级保险丝
    1. 分布式系统微服务之间有多种级联的调用关系,当某一个调用失败时,会导致雪崩(一个故障导致所有都不能正常运行),此时就需要对故障和延迟进行隔离和管理
    2. 之前是Hystrix豪猪,分布式容错,当一个出错时不会发生级联错误![[Pasted image 20241011185303.png]]![[Pasted image 20241011184815.png]]![[Pasted image 20241011184940.png]]

    1. 有什么作用:服务熔断、服务降级

      1. 服务熔断就相对于保险丝,当出现故障时直接熔断使服务不可用,并对服务降级(系统繁忙,请稍后再试)返回友好的兜底界面![[Pasted image 20241011185609.png]]
    2. CircuitBreaker实现原理:circuitbreak只是一套规范和接口

      1. 当某一个组件发生故障时会切换到OPEN状态,过一会会切换到HALF_OPEN状态来试探是否恢复,恢复了则切换到CLOSED状态
      2. 保护分布式系统免受故障和异常,当一个组件发生故障时,会切换到OPEN状态,阻止请求发送到该组件从而避免更多请求发送到该组件
    3. Resilience4J:轻量级的容错库,专门做服务熔断和服务降级

      1. 能干吗: 断路速率限制舱壁(隔离)

        1. 引入对应的POM依赖后,并修改resilience4j.xxx yml配置后,在controller对应的方法上加入要实现功能的注解以开启相应的功能
        2. 断路速率限制舱壁(隔离)
      2. resilience4j.Circuitbreaker:断路

        1. 断路器

          1. 三大状态之间的转换:刚开始默认是CLOSED关闭状态,此时任何请求均可以通过,当最近N次调用或者最近N秒内调用故障率过高时,则会判定服务提供者发生了故障,就会将状态切换为OPEN,此时会拒绝任何请求,过一段时间后会进入HALF_OPEN状态,此时会通过一些请求,然后根据这些请求的结果将状态切换为CLOSED或者OPEN
          2. 配置参数在这里插入图片描述
        2. 基于次数的实战演示:断路器配置在客户端的,指定对某个服务的熔断
          3. 先修改POM引入starter-circuitbreaker以及startrt-aop
          4. 然后写yml,引入 spring.cloud.openfeign.circuitbreaker.enable=true,断路器在客户端的openfeign配置中进行配置,默认不开启分组,开了分组之后就是精确优先,然后
          配置resilience4J的属性**(可以去官网查找,也可以在CircuitBreakerConfig类中查看)![[Pasted image 20241012132550.png]]

          1. 配置好yml文件后在服务调用者客户端的调用方法上使用@CircuitBreaker(name=“yml文件中配置的instance名称”, fallbackMethod=“服务降级函数”)来实现对该请求的熔断以及降级配置
          2. 服务熔断要达到配置的错误率时才会熔断但只要有错误均会服务降级fallback
        3. 基于时间的实战演示 ![[Pasted image 20241012135812.png]]![[Pasted image 20241012135921.png]]

      3. resilience4j.bulkhead舱壁隔离限制并发数量

        1. 就是将服务调用分割在不同的舱壁中,以防止出现牵连故障,可以限制并发执行的数量,有两种实现方式
        2. SemaphoreBulkHead信号量舱壁
          1. ![[Pasted image 20241012214026.png]]![[Pasted image 20241012214326.png]]
        3. 实战:先在客户端(Circuitbreaker是在客户端进行配置的)引入舱壁隔离的POM依赖resilience-bulkhead,再修改yml加入resilience4j.bulkhead的配置和实例,然后再修改业务类,在调用服务的方法上用@Bulkhead(name(指的是yml文件中配置的instance名称), fallbackMethod, type=‘Bulkhead.type.SEMAPHORE’)注解进行标注(当信号量已经满的时候,会等待设置的时间,如果结束后仍未有新的位置,则服务降级)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com