一直rpc呼叫都是使用dubbo介面,近來微服務比較火?開始使用springcloud的介面,使用@feignclient的呼叫方式。
註冊中心eureka,用於服務註冊和發現。介面呼叫的實質就是restful介面,通過spring內部封裝的httpclient方式請求呼叫。 資料傳遞使用json格式,所以提供方和呼叫方的實體引數只要保證欄位名稱和型別相同即可。
服務提供方,api介面(web controller抽象),引數要使用引數註解@requestparam,@requestbody;要指定請求的型別get,post等;服務的實現就是@controller的介面,要implements api介面。
服務呼叫方的呼叫方式有三種:
1. 在啟動類的註解上標記提供方的package名稱,支援配置多個提供方,如下,就可以直接呼叫介面了
@enablefeignclients(basepackages = )
2. 在呼叫方新建介面,extends api介面,並標記為feign介面,如下,name和path與提供方一致
@feignclient(name = "yx-test-business", path = "/business/config")
public inte***ce businessconfigapi extends businessconfigrest
3. 在呼叫方copy提供方api**,因為前面說過,使用json格式傳遞,只要保證字段一致即不影響
@feignclient(name = "yx-product-test", path = "/api/product")
public inte***ce baseproductapirepo
1. 服務提供方介面
@feignclient(name = "yx-test-business", path = "/business/config")
public inte***ce businessconfigrest
2. 服務提供實現
@restcontroller
@slf4j
public class businessconfigcontroller extends abstractbasecontroller implements businessconfigrest
3. 呼叫方使用如開始提到的【二、理論 3. 服務呼叫方的呼叫方式有三種】
需要注意的是:
1. 啟動類要加如下註解
@enablediscoveryclient
@enablefeignclients
2. 要配置註冊中心eureka【深入學習後再總結】
3. 三種呼叫方式其實都是在解決乙個問題,介面的@autowired
四、總結
使用下來,你會發現,所謂的feign介面,本質上就是http呼叫,只不過是把以往web層形式的介面,用在了api層,並且封裝了httpclient方法,不用自己去呼叫,而通過配置約定的@feign註解的方式實現呼叫。
程式設計演算法之試探法
試探法也稱為回溯法,它是一種系統的搜尋問題解的方法,該演算法設計思想適用範圍相當廣發,例如 棋手思考下一步走 就是採用試探法。常見的彩票組合號碼都是由一些數字組成的,生產彩票號碼其實就是將所有數字進行不同的組合。程式設計演算法之試探法.cpp 定義控制台應用程式的入口點。include stdafx...
SpringCloud之Dashboard 流監控
新建springcloud consumer hystrix dashboard模組 新增依賴 org.springframework.cloudgroupid spring cloud starter hystrixartifactid 1.4.6.releaseversion dependenc...
SpringCloud之Hystrix應用實踐
使用springcloud的hystrix功能,有幾種方式 1 單應用監聽,也可以用於測試 引用包 org.springframework.boot spring boot starter actuator org.springframework.cloud spring cloud starter...