Feign詳解與例項

2021-09-24 02:11:28 字數 1938 閱讀 9537

feign是一種負載均衡的http客戶端, 使用feign呼叫api就像呼叫本地方法一樣,從避免了呼叫目標微服務時,需要不斷的解析/封裝json 資料的繁瑣。feign整合了ribbon。ribbon+eureka是面向微服務程式設計,而feign是面向介面程式設計。

fegin是乙個宣告似的web服務客戶端,它使得編寫web服務客戶端變得更加容易。使用fegin建立乙個介面並對它進行註解。它具有可插拔的註解支援包括feign註解與jax-rs註解,feign還支援可插拔的編碼器與解碼器,spring cloud 增加了對 spring mvc的註解,spring web 預設使用了httpmessageconverters, spring cloud 整合 ribbon 和 eureka 提供的負載均衡的http客戶端 feign。

feign整合了ribbon。利用ribbon維護了microservicecloud-dept的服務列表資訊,並且通過輪詢實現了客戶端的負載均衡。而與ribbon不同的是,通過feign只需要定義服務繫結介面且以宣告式的方法,優雅而簡單的實現了服務呼叫。

1、新增依賴以及主程式

org.springframework.cloud

spring-cloud-starter-feign

@enableeurekaclient

@enablefeignclients(basepackages= )

@componentscan("com.atguigu.springcloud")

public static void main(string args)}

2、介面+註解(一般在公共介面中定義,方面其他微服務呼叫)

@feignclient(value = "microservicecloud-dept")  //該介面對應於應用id為microservicecloud-dept的微服務

public inte***ce deptclientservice

應用id為microservicecloud-dept的微服務就實現該介面功能。

3、web層服務呼叫

以前使用ribbon+eureka時:

@restcontroller

public class deptcontroller_consumer

public dept get(@pathvariable("id") long id)

@suppresswarnings("unchecked")

public listlist()

}

現在使用feign,面向介面程式設計:

@restcontroller

public class deptcontroller_consumer

public listlist()

public object add(dept dept)

}

目前,在spring cloud 中服務之間通過restful方式呼叫有兩種方式 

- resttemplate+ribbon 

- feign

@feignclient(value = "yuncai-searchserver", fallback=servicehystrix.class)

public inte***ce schedualservicehi

@component

public class servicehystrix implements schedualservicehi

}

keyframes詳解與例項

文章 keyframes動畫是迴圈的,而transform只執行一遍.css3中新增的新屬性animation是用來為元素實現動畫效果的,但是animation無法單獨擔當起實現動畫的效果。承載動畫的另乙個屬性 keyframes。使用的時候為了相容可加上 webkit o ms moz khtml...

Ribbon詳解與例項

ribbon是乙個為客戶端提供負載均衡功能的服務,它內部提供了乙個叫做iloadbalance的介面代表負載均衡器的操作,比如有新增伺服器操作 選擇伺服器操作 獲取所有的伺服器列表 獲取可用的伺服器列表等等。需要解決的問題 如何在配置eureka client註冊中心時不去硬編碼eureka ser...

grep的詳解與例項

老樣子看看官方的解釋 功能說明 查詢檔案裡符合條件的字串。語 法 grep abcefghhillnqrsvvwxy a 顯示列數 b 顯示列數 c 顯示列數 d 進行動作 e 範本樣式 f 範本檔案 help 範本樣式 檔案或目錄.補充說明 grep指令用於查詢內容包含指定的範本樣式的檔案,如果發...