SpringCloud學(xué)習(xí)(三)之Feign

Feign簡(jiǎn)介

Feign是一個(gè)聲明式的偽Http客戶端章母,它使得寫Http客戶端變得更簡(jiǎn)單而线。使用Feign氛驮,只需要?jiǎng)?chuàng)建一個(gè)接口并注解。它具有可插拔的注解特性寿羞,可使用Feign 注解和JAX-RS注解猖凛。Feign支持可插拔的編碼器和解碼器。Feign默認(rèn)集成了Ribbon绪穆,并和Eureka結(jié)合辨泳,默認(rèn)實(shí)現(xiàn)了負(fù)載均衡的效果。

特點(diǎn)如下:

  • Feign 采用的是基于接口的注解
  • Feign 整合了ribbon玖院,具有負(fù)載均衡的能力
  • 整合了Hystrix(下一篇講到)菠红,具有熔斷的能力
  1. 引入依賴:
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
  1. 配置文件:
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 8765
spring:
  application:
    name: service-feign
  1. 添加注解:
    在程序的啟動(dòng)類加上注解@EnableFeignClients
@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
@EnableFeignClients
public class ServiceFeignApplication {

    public static void main(String[] args) {
        SpringApplication.run( ServiceFeignApplication.class, args);
    }
}
  1. 測(cè)試:
    定義一個(gè)Feign接口,通過@FeignClient(“服務(wù)名”)难菌,來指定調(diào)用哪個(gè)服務(wù)试溯。比如在代碼中調(diào)用了service-1服務(wù)的“/hello”接口,代碼如下:
@FeignClient(value = "service-1")
public interface SchedualServiceHello {
    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    String sayHelloFromClientOne(@RequestParam(value = "name") String name);
}

在Controller層郊酒,對(duì)外暴露一個(gè)”/hello”的API接口遇绞,通過上面定義的Feign客戶端SchedualServiceHello去消費(fèi)服務(wù)键袱。代碼如下:

@RestController
public class HelloController {

    @Autowired
    SchedualServiceHello schedualServiceHello;

    @GetMapping(value = "/hello")
    public String sayHello(@RequestParam String name) {
        return schedualServiceHello.sayHiFromClientOne(name);
    }
}

依次啟動(dòng)端口為8761、8762摹闽、8763杠纵、8765的微服務(wù),多次訪問http://localhost:8765/hello?name=tom钩骇,兩個(gè)service-1實(shí)例會(huì)被輪流調(diào)用比藻,這就說明進(jìn)行了負(fù)載均衡,訪問了不同的端口的服務(wù)實(shí)例倘屹。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末银亲,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子纽匙,更是在濱河造成了極大的恐慌务蝠,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件烛缔,死亡現(xiàn)場(chǎng)離奇詭異馏段,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)践瓷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門院喜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人晕翠,你說我怎么就攤上這事喷舀。” “怎么了淋肾?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵硫麻,是天一觀的道長。 經(jīng)常有香客問我樊卓,道長拿愧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任碌尔,我火速辦了婚禮浇辜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘七扰。我一直安慰自己奢赂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布颈走。 她就那樣靜靜地躺著膳灶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轧钓,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天序厉,我揣著相機(jī)與錄音,去河邊找鬼毕箍。 笑死弛房,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的而柑。 我是一名探鬼主播文捶,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼媒咳!你這毒婦竟也來了粹排?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤涩澡,失蹤者是張志新(化名)和其女友劉穎顽耳,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妙同,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡射富,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了粥帚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胰耗。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖茎辐,靈堂內(nèi)的尸體忽然破棺而出宪郊,到底是詐尸還是另有隱情掂恕,我是刑警寧澤拖陆,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站懊亡,受9級(jí)特大地震影響依啰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜店枣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一速警、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸯两,春花似錦闷旧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春该园,著一層夾襖步出監(jiān)牢的瞬間酸舍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工里初, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啃勉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓双妨,卻偏偏與公主長得像淮阐,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刁品,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354