成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SpringCloud系列之Hystrix熔斷器

開發 架構
熔斷器本身是一個開關設置,當某個服務單元發生故障之后,通過熔斷器的故障監控(類似保險絲),向調用方返回一個服務預期的,可處理的備選相應(fallBack)。

什么是熔斷器?

熔斷器本身是一個開關設置,當某個服務單元發生故障之后,通過熔斷器的故障監控(類似保險絲),向調用方返回一個服務預期的,可處理的備選相應(fallBack),而不是長時間的等待或者拋出調用方法無法處理的異常。這樣就保證了服務調用方的線程不會長時間,不必要的占用,從而避免了故障在分布式系統中的蔓延,乃至雪崩。

Hystrix的目標

  1. 通過第三方客戶端訪問的依賴項(通常是通過網絡)的延遲和故障進行保護和控制。
  2. 在復雜的分布式系統中防止級聯故障。
  3. 快速失敗,快速恢復。
  4. 回退,盡可能優雅地降級。
  5. 啟用實時監控、報警和操作控制。

Hystrix設計原理

  1. 防止任何單個依賴項耗盡整個容器用戶線程
  2. 甩掉包袱,快速失敗而不是排隊。
  3. 在任何可行的地方提供回退,以保護用戶不受失敗的影響。
  4. 使用隔離技術來限制任何一個依賴項的影響。
  5. 通過實時的度量、監視和報警來優化發現時間。
  6. 通過配置的低延遲傳播來優化恢復時間。
  7. 支持對Hystrix的大多數方面的動態屬性更改,允許使用低延遲反饋循環進行實時操作修改。
  8. 避免在整個客戶端執行中出現故障,而不僅僅是在網絡流量中。

Hystrix斷路器Demo

引入jar包;

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>

在啟動類上開啟斷路器。

@SpringBootApplication
@EnableEurekaClient // 表示是eureka的客戶端
@EnableFeignClients
@EnableDiscoveryClient // 提供服務發現
@EnableCircuitBreaker // 開啟hystrix斷路器
public class UserServiceApplication {
public static void main(String[] args) {
SpringApplication.run(UserServiceApplication.class, args);
}
/**
* 遠程調用
*/
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
/**
* feign的日志通過代碼的方式(也可以通過yml配置文件的方式)
*/
@Bean
public Logger.Level feignLogger() {
return Logger.Level.FULL;
}
}

單個回滾方法:

/**
* Hystrix實例:單個回滾
* @author Big.Hu
*/
@RestController
public class UserController {
/**
* 熔斷機制
* 異常后執行getFeignFallback()方法
*/
@HystrixCommand(fallbackMethod = "getFeignFallback")
@GetMapping("feign/{id}")
public String getFeign(@PathVariable("id") int id) {
int i = 1 / 0; // 異常
return userFeign.getOrder1(id);
}
private String getFeignFallback(@PathVariable("id") int id) {
System.out.println("斷路器生效。");
return "提示:網絡繁忙,請稍候再試。。" + id;
}
}

訪問請求:localhost:7001/feign/555。

斷路器生效

控制臺:

全局的回滾方法:

/**
* Hystrix實例:全局回滾
* @author Big.Hu
*/
@RestController
@DefaultProperties(defaultFallback = "defaultFallback")
public class UserController {

@GetMapping("feign/{id}")
public String getFeign(@PathVariable("id") int id) {
int i = 1 / 0; // 異常
return userFeign.getOrder1(id);
}

private String defaultFallback() {
System.out.println("全局斷路器生效。");
return "提示:服務器繁忙,請稍候再試。。";
}
}

訪問請求:localhost:7001/feign/555。

全局斷路器生效

控制臺:

控制臺

責任編輯:姜華
相關推薦

2021-11-25 09:55:47

Golang熔斷器語言

2023-08-28 08:00:45

2014-08-14 10:10:34

設計模式熔斷器

2021-07-02 08:20:53

SpringCloudHystrix Tur監控

2021-06-30 07:34:21

SpringCloudHystrix 監控

2021-09-06 11:34:47

架構微服務Hystrix

2023-02-03 15:16:42

SpringHystrix

2022-01-17 10:55:50

微服務API網關

2020-07-28 08:32:57

微服務API網關熔斷

2018-04-17 10:31:09

微服務架構Web

2022-05-13 08:23:07

Zuul微服務Zuul過濾器

2023-09-27 18:02:31

2017-04-03 21:52:30

隔離線程池分布式

2021-06-22 15:27:13

設計模式迭代器模式Java

2025-03-13 00:55:00

微服務架構系統

2021-08-26 11:52:32

FeignWeb服務

2025-04-03 10:04:53

服務降級分布式系統系統

2019-05-14 13:59:52

Flask服務器部署

2021-03-26 06:01:45

日志MongoDB存儲

2017-07-03 09:50:07

Spring Clou微服務架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91久色| 综合久久综合久久 | 天天射影院 | 日韩一区二区三区在线播放 | 欧美一区二区小视频 | 欧美精品国产精品 | 国产欧美精品一区二区 | 欧美日韩在线国产 | 盗摄精品av一区二区三区 | 日韩二区| xx视频在线观看 | 91成人免费观看 | 一区二区三区免费网站 | 雨宫琴音一区二区在线 | 国产精品久久国产精品 | 亚洲网站在线观看 | 日韩视频一区二区三区 | jizz视频| 成人国产一区二区三区精品麻豆 | 亚洲最新在线视频 | 91久久精品日日躁夜夜躁欧美 | 亚洲欧美自拍偷拍视频 | 成人性视频在线播放 | 国产精品久久久久久一级毛片 | 久久久久久久久久毛片 | 久久精品—区二区三区 | 91麻豆精品国产91久久久资源速度 | 欧美精品久久久久 | 欧美区精品| 亚洲精品久久久久久宅男 | 91av大全 | 久久久久久成人 | 成人在线精品 | 男女羞羞视频在线看 | 久久久精彩视频 | 日本精品一区二区三区视频 | 久久极品 | 最新黄色毛片 | 国产午夜精品一区二区三区 | 91精品国产91久久综合桃花 | a网站在线观看 |