欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringCloud項(xiàng)目集成Feign、Hystrix過(guò)程解析

 更新時(shí)間:2019年11月30日 11:53:15   作者:差點(diǎn)點(diǎn)溫柔  
這篇文章主要介紹了SpringCloud項(xiàng)目集成Feign、Hystrix過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

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

Feign的功能:這是個(gè)消費(fèi)者,根據(jù)服務(wù)注冊(cè)在Eureka的ID去找到該服務(wù),并調(diào)用接口

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

項(xiàng)目結(jié)構(gòu)

[root@node01 cloud]# tree weather/
weather/
├── Application.java  #主程序啟動(dòng)入口
├── controller
│  ├── CityController.java  #控制路由,比如訪(fǎng)問(wèn)127.0.0.1:8080/cities, 這里調(diào)用cityClient方法
└── service
  └── CityClient.java    #具體方法的實(shí)現(xiàn),這里就具體實(shí)現(xiàn)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能發(fā)現(xiàn)自己
import org.springframework.cloud.netflix.feign.EnableFeignClients;   #引入feign

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients  #聲明這個(gè)程序引入FeignClient
@EnableCircuitBreaker #聲明這個(gè)程序引入熔斷器
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") #控制路由,比如訪(fǎng)問(wèn)127.0.0.1:8080/cities
    @HystrixCommand(fallbackMethod="defaultCities") #給另外一個(gè)服務(wù)設(shè)置hystrix熔斷器,并聲明fallbackMethod(回調(diào)方法)假如另外一個(gè)服務(wù)掛了,就調(diào)用defaultCities方法
    public String listCity() {
        // 通過(guò)Feign客戶(hù)端來(lái)查找
        String body = cityClient.listCity();  #調(diào)用service里CityClient.java的cityClient方法,獲取城市數(shù)據(jù)
        return body;              #返回,訪(fǎng)問(wèn)127.0.0.1:8080/cities就能返回城市數(shù)據(jù)
    }

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

service/CityClient.java(消費(fèi)者)

用Feign去另一個(gè)接口獲取數(shù)據(jù)

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服務(wù)注冊(cè)到eureka的ID,通過(guò)這個(gè)ID就能訪(fǎng)問(wèn)到msa-weather-city微服務(wù)
public interface CityClient {

    @GetMapping("/cities")  #調(diào)用msa-weather-city微服務(wù)里的/cities接口
    String listCity();    #調(diào)用msa-weather-city微服務(wù)里的/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

測(cè)試,條件為另一個(gè)服務(wù)可用時(shí),我們是能調(diào)用的

測(cè)試.條件為另一個(gè)服務(wù)不可以時(shí),我們是不能調(diào)用的,所以fallback

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用html css javascript打造自己的RIA圖文教程

    用html css javascript打造自己的RIA圖文教程

    用html&css&javascript打造自己的RIA之一,包括了配置等
    2009-07-07
  • Springboot使用@RefreshScope注解實(shí)現(xiàn)配置文件的動(dòng)態(tài)加載

    Springboot使用@RefreshScope注解實(shí)現(xiàn)配置文件的動(dòng)態(tài)加載

    本文主要介紹了Springboot使用@RefreshScope注解實(shí)現(xiàn)配置文件的動(dòng)態(tài)加載,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java中ThreadLocal的使用

    Java中ThreadLocal的使用

    這篇文章主要介紹了Java中ThreadLocal的使用,靜態(tài)內(nèi)部類(lèi)的加載是在程序中調(diào)用靜態(tài)內(nèi)部類(lèi)的時(shí)候加載的,和外部類(lèi)的加載沒(méi)有必然關(guān)系, 但是在加載靜態(tài)內(nèi)部類(lèi)的時(shí)候 發(fā)現(xiàn)外部類(lèi)還沒(méi)有加載,那么就會(huì)先加載外部類(lèi) ,加載完外部類(lèi)之后,再加載靜態(tài)內(nèi)部類(lèi),需要的朋友可以參考下
    2023-09-09
  • Spring MVC注解式開(kāi)發(fā)使用詳解

    Spring MVC注解式開(kāi)發(fā)使用詳解

    本篇文章主要介紹了Spring MVC注解式開(kāi)發(fā)使用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • SpringBoot動(dòng)態(tài)數(shù)據(jù)源連接測(cè)試的操作詳解

    SpringBoot動(dòng)態(tài)數(shù)據(jù)源連接測(cè)試的操作詳解

    這篇文章主要介紹了SpringBoot動(dòng)態(tài)數(shù)據(jù)源連接測(cè)試的操作步驟,文中通過(guò)代碼示例和圖文結(jié)合的方式給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • java實(shí)現(xiàn)簡(jiǎn)易飛機(jī)大戰(zhàn)

    java實(shí)現(xiàn)簡(jiǎn)易飛機(jī)大戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)易飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Springboot整合Netty實(shí)現(xiàn)RPC服務(wù)器的示例代碼

    Springboot整合Netty實(shí)現(xiàn)RPC服務(wù)器的示例代碼

    這篇文章主要介紹了Springboot整合Netty實(shí)現(xiàn)RPC服務(wù)器的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • java實(shí)現(xiàn)單鏈表之逆序

    java實(shí)現(xiàn)單鏈表之逆序

    這篇文章主要介紹了應(yīng)用java語(yǔ)言實(shí)現(xiàn)單鏈表逆序,,需要的朋友可以參考下
    2015-07-07
  • Java面試題之MD5加密的安全性詳解

    Java面試題之MD5加密的安全性詳解

    MD5 是 Message Digest Algorithm 的縮寫(xiě),譯為信息摘要算法,它是 Java 語(yǔ)言中使用很廣泛的一種加密算法。本文將通過(guò)示例討論下MD5的安全性,感興趣的可以了解一下
    2022-10-10
  • SpringCloud Config配置加密解密用法解析

    SpringCloud Config配置加密解密用法解析

    這篇文章主要介紹了SpringCloud Config配置加密解密用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論