SpringCloudの遮断器監視(Hystrix Dashboard)(九)
4056 ワード
しゃだんき
遮断器モードはMartin FowlerのCircuit Breakerの一文に由来する.「遮断器」自体はスイッチ装置であり、回路上で線路の過負荷を保護するために用いられ、線路中に電気製品が短絡した場合、「遮断器」は故障回路をタイムリーに遮断し、過負荷、発熱、甚だしきに至っては発火などの深刻な結果を防止することができる.
分散アーキテクチャでは、遮断器モードの役割も同様であり、あるサービスユニットが故障した(電気器具が短絡したようなもの)後、遮断器の故障監視(ヒューズのようなもの)を通じて、長時間の待機ではなく、呼び出し側にエラー応答を返す.これにより、スレッドが呼び出し障害サービスによって長時間にわたって解放されず、分散システムにおける障害の蔓延を回避することができる.
ブレーカモニタ
マイクロサービスアーキテクチャでは、プログラムの可用性を保証し、プログラムエラーによるネットワークのブロックを防止し、遮断器モデルが現れた.遮断器の状況はプログラムの可用性と丈夫性を反映し,重要な指標である.Hystrix Dashboardはブレーカ状態のコンポーネントとして、データモニタリングと友好的なグラフィックスインタフェースを提供しています.
改造プロジェクト
項目
HDオン
修正
プログラムの入り口の
ブレークポイントの宣言
宣言ブレークポイント
ソースの詳細:http://minglisoft.cn/honghu/technology.html
遮断器モードは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,
を開いて、みんなが一緒に関連技術を勉強してソースコードを理解したい友达を歓迎して直接交流の分かち合いの技術を求めます:2147775633package 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