springCloud 中的熔断

熔断: 远程调用 服务端出现问题.要降级到调用本地方法的一种方式.

hystris 三种:

common 

@EnableHistrx注解

第一:构造 实现类 实现  当前FeignClient()修饰的接口

第二:构造工厂实现类.繁星为接口

class RedisCacheServiceFeignFallbackFactoryImpl  implements FallbackFactory<RedisCacheServiceFeignApi> 

第三:

方法层面的中断@HystrixCommand(threadPoolProperties = { @HystrixProperty(name = "coreSize", value = "10"), @HystrixProperty(name = "maximumSize", value = "200"), @HystrixProperty(name = "maxQueueSize", value = "200"), @HystrixProperty(name = "queueSizeRejectionThreshold", value = "150") }, commandProperties = { @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "3000") })

线程池总结 :

第一线程的基本参数:

 1核心线程数 (活跃线程数)  ---> 2 核心线程数 达到最大 --->任务进入到缓存队列中 maxQueueSize-----> 3 默认队列数是5 ---->手动设置阀值(queueSizeRejectionThreshold 150) --->开始继续增加线程数 直到 maxmunSize=200  

3.都是在不超时的时候.如果超时3000中断

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud Hystrix是一款优秀的服务容错和保护组件,它可以在服务之间进行通信时,通过控制服务的节点,从而防止出现级联故障,从而提高了整个分布式系统的可靠性。服务熔断是Hystrix的一个重要特性,它可以在服务出现故障时,快速地将请求转发到备用服务上,从而保证整个系统的稳定性。 以下是一个简单的Spring Cloud服务熔断的例子: 1.在pom.xml文件添加以下依赖: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency> ``` 2.在服务提供者的Controller添加一个服务熔断的方法: ```java @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/user/{id}") @HystrixCommand(fallbackMethod = "fallbackMethod") public User getUserById(@PathVariable Long id) { return userService.getUserById(id); } public User fallbackMethod(Long id) { User user = new User(); user.setId(-1L); user.setName("default user"); return user; } } ``` 在上面的代码,我们使用了@HystrixCommand注解来标记getUserById方法,fallbackMethod属性指定了服务熔断的备用方法。 3.在服务消费者,使用RestTemplate来调用服务提供者的接口: ```java @RestController public class UserController { @Autowired private RestTemplate restTemplate; @GetMapping("/user/{id}") public User getUserById(@PathVariable Long id) { return restTemplate.getForObject("http://localhost:8081/user/" + id, User.class); } } ``` 在上面的代码,我们使用了RestTemplate来调用服务提供者的接口,如果服务提供者出现故障,就会自动调用fallbackMethod方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值