1. 程式人生 > >學習springcloud的Hystrix(熔斷器)。記錄其中遇見的問題(參考純潔的微笑)

學習springcloud的Hystrix(熔斷器)。記錄其中遇見的問題(參考純潔的微笑)

開發十年,就只剩下這套架構體系了! >>>   

服務中心,註冊服務,呼叫服務完成以後。多個服務關聯性呼叫,有時候,出現服務鏈式呼叫,如果上層奔潰,大批量的請求整個下層全部奔潰。對於這種情況,springclud給我們提供了,熔斷器-Hystrix

1.application.properties配置檔案增加開啟熔斷配置

spring.application.name=spring-cloud-consumer
server.port=9001
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/

#######熔斷器開啟###########
feign.hystrix.enabled=true

2.新增介面的實現類,作用,服務失敗,熔斷器呼叫

package com.example.servicefeign.impleServer;

import com.example.servicefeign.interfaceServer.HelloRemote;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;

@Component//將實現通過bean注入
public class HelloRemoteHystrix implements HelloRemote {

    @Override
    public String hello(@RequestParam(value = "name") String name){
        return "熔斷器返回結果:" + name;
    }
}

@Component 通過註解,將其作為bean物件

3.FeignClient註解中,增加失敗返回類的引用

package com.example.servicefeign.interfaceServer;

import com.example.servicefeign.impleServer.HelloRemoteHystrix;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(name= "spring-cloud-producer",fallback = HelloRemoteHystrix.class)
//name:遠端服務名,及spring.application.name配置的名稱
//服務熔斷的時候返回fallback類中的內容
public interface HelloRemote {

    @RequestMapping(value = "/hello")
    String hello(@RequestParam(value = "name") String name);

}

FeignClient裡面,增加fallback,失敗回撥類。

測試,將註冊的服務程式,直接停止,進行訪問,返回成功

相關推薦

學習springcloud的Hystrix(熔斷器)記錄其中遇見的問題(參考純潔微笑)

開發十年,就只剩下這套架構體系了! >>>   

學習springcloud的SpringCloudConfig(配置中心-碼雲git)記錄其中遇見的問題(參考純潔微笑)

配置中心服務端處理 1.先建立配置檔案,將其上傳到git上面 2.新增配置中心的pom依賴 <!--Sprin

微信小程式的學習與坑的記錄

宣告 官方的api文件很全面,這裡只是簡單記錄。具體的請檢視官方api. 使用 微信小程式,快應用等都是為了方便,輕量級。 一,註冊微信小程式開發者,下載開發工具(同時需在電腦安裝node.js,否則

【songrenqing】部落格主要是為了記錄自己在學習python中遇到的問題,解決問題的方法有些問題早就存在,解決問題的方法也有很多,我只是把這些存在的問題和自己經過測試成功的方法,重新記錄下來,便於自己學習和重溫

部落格主要是為了記錄自己在學習python中遇到的問題,解決問題的方法。有些問題早就存在,解決問題的方法也有很多,我只是把這些存在的問題和自己經過測試成功的方法,重新記錄下來,便於自己學習和重溫。...

學習,思考,記錄,分享

Boost簡介 是什麼?Boost是一個功能強大、構造精巧、跨平臺、開源且完全免費的C++程式庫,有著“C++‘準’標準庫”的美譽。誰倡議?1998年,Beman G.Dawes(C++標準

Github push程式碼到遠端倉庫記錄自己學習的一小步

今天學習複習了Github push程式碼到遠端倉庫的步驟,因為自己之前push到新倉庫得時候出現了一個錯誤,老是push不上去,後來發現,是建立倉庫的時候,建立了ReadMe檔案,本地卻沒有,所以失敗,因為是初學,自己老是記不住push得步驟,所以今天特地總結

OpenCv關於灰度積分圖的SSE代碼學習和改進

row 關於 分代 移動 運用 別了 增加 字節數 需要   最近一直沈迷於SSE方面的優化,實在找不到想學習的參考資料了,就拿個筆記本放在腿上翻翻OpenCv的源代碼,無意中看到了OpenCv中關於積分圖的代碼,仔細研習了一番,覺得OpenCv對SSE的靈活運用真的做的很

Nginx初次學習三個知識點記錄

更多 讀取 單獨 基於 存儲 驗證 session 集群 使用 1.Nginx是用來解決負載均衡問題的,它可以將請求均衡的發放到集群的每一個節點,但是使用者又擁有極大的控制權,通俗來講就是你既可以讓請求均衡發放,也可以指定哪些服務器接收更多的請求。更多的時候是用在集群服務器

python 算法學習部分代碼記錄篇章1

quick while ret ear auth arc right 枚舉法 brin # -*- coding: utf-8 -*- # @Date : 2017-08-19 20:19:56 # @Author : lileilei ‘‘‘那麽算法和數據結構是

小白學習node.js的記錄

com技術 事件 事件驅動 oob 性能 小白 文件讀取 ref hat 本人對於node.js一無所知,純純的小白一枚,想學習的初衷是了解node.js是什麽,能用它幹點什麽,說白就是好奇心使然吧。接下來記錄自己的學習過程。 註:若有錯誤歡迎指出,

ES6的學習持續更新

作用域 用法 var 改變 TE color 閉包 什麽 模式 主內花點時間學習es6,廢話不多說直接開始吧。 function test() { for(let i=1;i<3;i++){ console.log(i); }

java學習過程的簡單記錄

pub list 9.png tar 學習過程 object stat 鏈表 java 1、LinkedList與ArrayList的區別 1)、LinkedList是基於鏈表的數據結構,ArrayList是實現了基於動態數組的數據結構; 2)、對於查詢(get),Arra

CCNA學習指南筆記(2)osi參考模型

通信 激活 機制 系統應用 數據交換 物理 mac 定向 同步 osi參考模型: 第7層:應用層: (1)該層用於向用戶的應用提供網絡服務 (2)該層與osi其他各層不同,它不向任何其他osi層提供服務,而是只為osi參考模型外的應用提供服務 (3)該應用層建立目標通信對

python學習的所有練習記錄

# set 集合 特點,無序,不重複,如果重複物件傳入只儲存一份,# 應用場景,比如記錄爬蟲訪問記錄,有重複的就直接不用新增,如果用列表就還需要判斷是不是存在,比如前面的購物車連結新增購物清單的時候# 具體方法看原始碼即可# se={"112","323"} # create# print(type(s

機器學習雜記,主要記錄學習過程中的一些疑問和理解

一、 最近看tensorflow,試著寫 cnn 程式碼,其中的一個介面 : def conv2d(input, filter, strides, padding, use_cudnn_on_gpu=True, data_format="NHWC", dilations=[1, 1, 1,

(備份)學習SLAM資源配置記錄

Ubuntu14.04 PCL1.8 OpenCV 3.1 & 2.4.8(ROS自帶) CMake 3.6.3 Qt 5.2.1 & 4.8.5 KDevelop4.6 參考: SLAM環境配置大全,O(∩_∩)O哈哈~ - CSDN部落格

vue的資料來源-json格式陣列新增一條資料並重新整理記錄一下

data () {     return {       arr: [{a:'111',b:'222',c:'333'},{a:'444',b:'555',c:'666'}],     }   }, method

輸入若干個整數,以-1標記輸入結束輸出其中的最大數

import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] a=new int[100]; int m

git學習之-----githug通關記錄(1-20關)

1.init 2.config 3.add 4.commit 5.clone 6.clone_to_folder 7.ignore 在提交檔案時可能會有一些配置檔案或是一些由軟體本身產生的一些附加的檔案,這些檔案對我們自己的