<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Feign 可以替代 RestTemplate 完成可程式化式介面呼叫,並且內部整合 Ribbon 實現了負載均衡
pom檔案增加 openfeign 依賴
<!-- feign --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
啟動類上增加 @EnableFeignClients 註解
@EnableFeignClients @SpringBootApplication public class OrderApplication { public static void main(String[] args) { SpringApplication.run(OrderApplication.class, args); } }
建立client包,包下放使用到的介面
package com.cxstar.client; import com.alibaba.fastjson.JSONObject; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @FeignClient("bookschina-service") @RequestMapping("/bookschina") public interface BookschinaClient { @GetMapping("/spiderBookList/{searchkey}/{pageno}") JSONObject searchBookschina( @PathVariable("searchkey") String searchKey, @PathVariable("pageno") Integer pageNo ); }
直接把你需要呼叫的微服務裡的controller類複製一份過來,修修改改就行了
ps:
1.@FeignClient(“bookschina-service”):存取 spring.application.name=bookschina-service 的微服務
2.@RequestMapping、@GetMapping、@PathVariable 用來對映地址,和controller中的用法一樣
3.上面這個介面對應的就是 bookschina-service 微服務下對映地址為 /bookschina/spiderBookList/{searchkey}/{pageno} 的controller類方法
測試類如下
package com.cxstar; import com.alibaba.fastjson.JSONObject; import com.cxstar.client.BookschinaClient; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @Slf4j @SpringBootTest class OrderApplicationTests { @Autowired private BookschinaClient bookschinaClient; void booksChinaTest() { // 引數 String searchKey = "東野圭吾"; Integer pageNo = 1; // 呼叫 JSONObject booksJB = bookschinaClient.searchBookschina(searchKey, pageNo); log.info(booksJB.toString()); } }
application 檔案中加入設定
feign: client: config: default: # default 全域性設定,區域性設定的話可以換成請求的服務名稱 loggerLevel: NONE # 紀錄檔級別 NONE BASIC HEADERS FULL
ps:
1.NONE:沒有紀錄檔
2.BASIC:記錄http請求傳送目標、傳送時間、返回時間、總耗時等資訊
3.HEADERS:在 BASIC 基礎上記錄 請求頭 和 響應頭 資訊
4.FULL:在 BASIC 和 HEADERS 的基礎上記錄 請求體 和 響應體 資訊
5.上線後為了優化效能 紀錄檔級別儘量用 NONE 或者 BASIC
Feign底層使用者端預設實現是 URLConnection,不支援連線池,每次http請求都要三次握手,斷開時四次揮手,有點浪費效能,可以用 Apache HttpClient 替代 URLConnection
<1>pom 引入依賴
<!-- feign 連線池 --> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-httpclient</artifactId> </dependency>
<2>application 檔案中加入設定
feign: httpclient: enabled: true # 開啟feign對 httpclient 的支援 max-connections: 200 # 最大連線數 max-connections-per-route: 50 # 每個請求介面的最大連線數
ps:
1.max-connections 和 max-connections-per-route 的值需要根據具體情況設定
到此這篇關於SpringCloud基於Feign的可程式化式介面呼叫實現的文章就介紹到這了,更多相關SpringCloud Feign可程式化式介面呼叫內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45