91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringCloud項目集成Feign、Hystrix過程解析

發布時間:2020-08-31 18:31:10 來源:腳本之家 閱讀:201 作者:差點點溫柔 欄目:編程語言

這篇文章主要介紹了SpringCloud項目集成Feign、Hystrix過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

Feign的功能:這是個消費者,根據服務注冊在Eureka的ID去找到該服務,并調用接口

Hystrix的功能:熔斷器,假如A服務需要調用B服務的/cities接口獲取數據,那就在A服務的controller里聲明@HystrixCommand,如果B服務的/cities接口掛了,就返回一個自定義的值

項目結構

[root@node01 cloud]# tree weather/
weather/
├── Application.java  #主程序啟動入口
├── controller
│  ├── CityController.java  #控制路由,比如訪問127.0.0.1:8080/cities, 這里調用cityClient方法
└── service
  └── CityClient.java    #具體方法的實現,這里就具體實現cityClient方法(interface)

Application.java

package com.waylau.spring.cloud.weather;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; #引入熔斷器
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;  #讓eureka能發現自己
import org.springframework.cloud.netflix.feign.EnableFeignClients;   #引入feign

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients  #聲明這個程序引入FeignClient
@EnableCircuitBreaker #聲明這個程序引入熔斷器
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

controller/CityController.java

package com.waylau.spring.cloud.weather.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import com.waylau.spring.cloud.weather.service.CityClient; #引用service/CityClient.java

@RestController
public class CityController {
    @Autowired
    private CityClient cityClient;

    @GetMapping("/cities") #控制路由,比如訪問127.0.0.1:8080/cities
    @HystrixCommand(fallbackMethod="defaultCities") #給另外一個服務設置hystrix熔斷器,并聲明fallbackMethod(回調方法)假如另外一個服務掛了,就調用defaultCities方法
    public String listCity() {
        // 通過Feign客戶端來查找
        String body = cityClient.listCity();  #調用service里CityClient.java的cityClient方法,獲取城市數據
        return body;              #返回,訪問127.0.0.1:8080/cities就能返回城市數據
    }

    public String defaultCities() {        
        return "City Data Server is down!";
    }
}

service/CityClient.java(消費者)

用Feign去另一個接口獲取數據

package com.waylau.spring.cloud.weather.service;

import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient("msa-weather-city") #msa-weather-city是msa-weather-city服務注冊到eureka的ID,通過這個ID就能訪問到msa-weather-city微服務
public interface CityClient {

    @GetMapping("/cities")  #調用msa-weather-city微服務里的/cities接口
    String listCity();    #調用msa-weather-city微服務里的/cities接口里的listCity()方法
}

application.properties

spring.application.name: micro-weather-eureka-client-feign-hystrix

eureka.client.serviceUrl.defaultZone: http://localhost:8761/eureka/

feign.client.config.feignName.connectTimeout: 5000
feign.client.config.feignName.readTimeout: 5000

測試,條件為另一個服務可用時,我們是能調用的

SpringCloud項目集成Feign、Hystrix過程解析

測試.條件為另一個服務不可以時,我們是不能調用的,所以fallback

SpringCloud項目集成Feign、Hystrix過程解析

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嘉兴市| 瓦房店市| 胶州市| 塔河县| 濮阳县| 来宾市| 大理市| 奉新县| 沿河| 白玉县| 石城县| 浮梁县| 浏阳市| 印江| 禄劝| 锡林浩特市| 蒙阴县| 常山县| 曲水县| 阜阳市| 临颍县| 潍坊市| 理塘县| 蕉岭县| 五指山市| 丰原市| 连云港市| 成安县| 融水| 西乌珠穆沁旗| 沂水县| 迭部县| 栾川县| 丘北县| 河池市| 方正县| 炎陵县| 和田县| 铁岭市| 和政县| 阿拉尔市|