微服務系列之-Feign服務集成

一.介紹

feign是聲明式的web service客戶端,它讓微服務之間的調用變得更簡單了,類似controller調用service。Spring Cloud集成了Ribbon和Eureka,可在使用Feign時提供負載均衡的http客戶端。原理可能很多,但是用起來其實並不是那麼複雜。

二.集成操作

  1. 依賴添加
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
  1. 關鍵註解添加
    在這裏插入圖片描述

  2. 調用接口添加
    在這裏插入圖片描述被調用方代碼:

@Slf4j
@RestController
@RequestMapping(value = "/eureka-client/feign")
public class FeignEurekaController
{
    /**
     * feign調用信息獲取
     *
     * @return
     * @exception
     * @date        2020/5/7 10:17
     */
    @GetMapping(value = "/info")
    public ResultVO<?> feignInfo()
    {
        log.info("FeignController|feignInfo|通過FEIGN調用方式獲取數據");
        return new ResultVO<>("200", "SUCCESS");
    }
}

調用方代碼:

public ResultVO<?> feignInfo()
    {
        log.info("EurekaClientService|feignInfo|信息獲取");
        ResultVO<?> resultVO = this.eurekaClientFeign.feignInfo();
        log.info("EurekaClientService|feignInfo|信息獲取|請求出參:={}", resultVO);
        return resultVO;
    }
  1. 調用結果
    在這裏插入圖片描述
    成功調用到被調用方服務!!!

三.補充

如何查看調用接口具體響應時長、路徑、請求頭等信息,好協助自己優化接口,看下面代碼有詳細說明:

@Configuration
public class FeignClientConfiguration
{
    /**
     *   Logger.Level 的具體級別如下:
     *          NONE:不記錄任何信息
     *          BASIC:僅記錄請求方法、URL以及響應狀態碼和執行時間
     *          HEADERS:除了記錄 BASIC級別的信息外,還會記錄請求和響應的頭信息
     *          FULL:記錄所有請求與響應的明細,包括頭信息、請求體、元數據
     */
    @Bean
    feign.Logger.Level feignLoggerLevel()
    {
        return feign.Logger.Level.FULL;
    }
}

Feign的調用方式我目前用到兩種:

  • 一種是“服務名調用”
@FeignClient(value="qyeurekaclient", fallbackFactory = EurekaClientFallback.class, configuration = {FeignClientConfiguration.class})
  • 第二種“Url路徑調用”
@FeignClient(name = "github-client", url = "https://ip:port", allbackFactory = EurekaClientFallback.class, configuration = {FeignClientConfiguration.class})

至此,Feign服務集成完畢!!!

微服務項目:微服務集成項目

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章