SpringCloudの遮断器監視(Hystrix Dashboard)(九)

4056 ワード

しゃだんき
遮断器モードはMartin FowlerのCircuit Breakerの一文に由来する.「遮断器」自体はスイッチ装置であり、回路上で線路の過負荷を保護するために用いられ、線路中に電気製品が短絡した場合、「遮断器」は故障回路をタイムリーに遮断し、過負荷、発熱、甚だしきに至っては発火などの深刻な結果を防止することができる.
分散アーキテクチャでは、遮断器モードの役割も同様であり、あるサービスユニットが故障した(電気器具が短絡したようなもの)後、遮断器の故障監視(ヒューズのようなもの)を通じて、長時間の待機ではなく、呼び出し側にエラー応答を返す.これにより、スレッドが呼び出し障害サービスによって長時間にわたって解放されず、分散システムにおける障害の蔓延を回避することができる.
ブレーカモニタ
マイクロサービスアーキテクチャでは、プログラムの可用性を保証し、プログラムエラーによるネットワークのブロックを防止し、遮断器モデルが現れた.遮断器の状況はプログラムの可用性と丈夫性を反映し,重要な指標である.Hystrix Dashboardはブレーカ状態のコンポーネントとして、データモニタリングと友好的なグラフィックスインタフェースを提供しています.
改造プロジェクト
項目spring-cloud-ribbon-consumer-hystrixを複製し、名称spring-cloud-ribbon-consumer-hystrix-dashboardを修正した上で改造する.Feignの改造はこれと同じです.pomのエンジニアリングファイルに対応する依存性を導入します.
    

org.springframework.cloud
    

spring-cloud-starter-hystrix


 

org.springframework.boot
    

spring-boot-starter-actuator


 
   

org.springframework.cloud
    

spring-cloud-starter-hystrix-dashboard



HDオン
修正RibbonConsumerApplication.javaクラス
プログラムの入り口のRibbonConsumerApplication種類で、@EnableHystrix注記を加えて遮断器を開くことが必要で、これは必要で、しかもプログラムの中で遮断点の@HystrixCommand;@EnableHystrixDashboard注記を宣言する必要があります.HystrixDashboard,を開いて、みんなが一緒に関連技術を勉強してソースコードを理解したい友达を歓迎して直接交流の分かち合いの技術を求めます:2147775633
package io.ymq.example.ribbon.consumer.hystrix;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;import org.springframework.cloud.client.loadbalancer.LoadBalanced;import org.springframework.cloud.netflix.hystrix.EnableHystrix;import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;import org.springframework.context.annotation.Bean;..import org.springframework.web.client.RestTemplate;@EnableHystrix@EnableDiscoveryClient@EnableHystrixDashboard@SpringBootApplicationpublic class RibbonConsumerApplication {   @LoadBalanced   @Bean   RestTemplate restTemplate() {       return new RestTemplate();   public static void main(String[] args) {       SpringApplication.run(RibbonConsumerApplication.class, args);                                         

ブレークポイントの宣言
宣言ブレークポイント@HystrixCommand(fallbackMethod="defaultStores")
package io.ymq.example.ribbon.consumer.hystrix;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
*   :       `home`   
* @author yanpenglei
@RestController
public class ConsumerController {
   @Autowired
   private RestTemplate restTemplate;
   @HystrixCommand(fallbackMethod = "defaultStores")
   @GetMapping(value = "/hello")
   public String hello() {
       return restTemplate.getForEntity("http://eureka-provider/", String.class).getBody();
   public String defaultStores() {
   return "feign + hystrix Dashboard ,       ";
   }
@HystrixCommandはこの方法がhystrix小包であることを示しており、依存サービスを隔離、降格、迅速な失敗、迅速な再試行などのhystrix関連機能を行うことができる.fallbackMethod降格方法commandProperties一般的な構成属性は、HystrixCommandに対応する属性を構成することができ、例えば、スレッドプールを採用するか、信号量分離を採用するか、ヒューズ溶断規則などを構成することができる.ignoreExceptions無視された例外、デフォルトHystrixBadRequestExceptionは失敗に計上されませんgroupKey()グループ名、デフォルトではクラス名が使用されますcommandKeyコマンド名、デフォルトの使用方法名
ソースの詳細:http://minglisoft.cn/honghu/technology.html