在Spring Cloud Netflix棧中,各個微服務都是以HTTP接口的形式暴露自身服務的,因此在調(diào)用遠程服務時就必須使用HTTP客戶端。我們可以使用JDK原生的URLConnection、Apache的Http Client、Netty的異步HTTP Client, Spring的RestTemplate。但是,用起來最方便、最優(yōu)雅的還是要屬Feign了。
創(chuàng)新互聯(lián)公司2013年至今,公司以做網(wǎng)站、成都網(wǎng)站設計、系統(tǒng)開發(fā)、網(wǎng)絡推廣、文化傳媒、企業(yè)宣傳、平面廣告設計等為主要業(yè)務,適用行業(yè)近百種。服務企業(yè)客戶近千家,涉及國內(nèi)多個省份客戶。擁有多年網(wǎng)站建設開發(fā)經(jīng)驗。為企業(yè)提供專業(yè)的網(wǎng)站建設、創(chuàng)意設計、宣傳推廣等服務。 通過專業(yè)的設計、獨特的風格,為不同客戶提供各種風格的特色服務。
Feign簡介
Feign是一個聲明式的Web服務客戶端,使用Feign可使得Web服務客戶端的寫入更加方便。
它具有可插拔注釋支持,包括Feign注解和JAX-RS注解、Feign還支持可插拔編碼器和解碼器、Spring Cloud增加了對Spring MVC注釋的支持,并HttpMessageConverters在Spring Web中使用了默認使用的相同方式。Spring Cloud集成了Ribbon和Eureka,在使用Feign時提供負載平衡的http客戶端。
Spring Cloud Feign簡介參考:https://www.jb51.net/article/133773.htm
根據(jù)專家學者提供的賬號密碼,要在用戶表注冊一個專家學者賬號(用戶和專家學者不同的數(shù)據(jù)庫)
在userContorller.java寫一個方法:注冊專家學者賬號
/** * 專家學者注冊 * * @param username * @param password * @return */ @ApiOperation(value = "專家學者注冊") @RequestMapping(value = "/registExpert", method = RequestMethod.POST) public long registExpert(@RequestParam("username") String username, @RequestParam("password") String password) { User user = new User(); user.setUsername(username); user.setPassword(password); userService.insertSelective(user); long userId = user.getUserId(); return userId; }
UserClient.java(這里的接口和要遠程調(diào)用的controller方法聲明一樣(此處是UserController.java),可直接復制過來,如下所示)
package com.lgsc.cjbd.expert.remote.client; import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import com.lgsc.cjbd.vo.Response; @FeignClient(name = "cjbd-user", fallback = UserClientFallback.class) public interface UserClient { /** * 注冊專家學者 */ @RequestMapping(value = "/user/user/registExpert", method = RequestMethod.POST) long registExpert(@RequestParam("username") String username, @RequestParam("password") String password); }
以及失敗回調(diào)用UserClientFallBack.java
package com.lgsc.cjbd.expert.remote.client; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.stereotype.Component; import com.lgsc.cjbd.vo.Response; /** * 失敗回調(diào) * * @author yeqj */ @Component public class UserClientFallback implements UserClient { private static Logger log = LogManager.getLogger(UserClientFallback.class); @Override public long registExpert(String username, String password, String realName) { log.error("遠程調(diào)用失敗,注冊專家學者失敗,參數(shù):[username=" + username + ",password=" + password + "]"); return 0; } }
之后再專家學者Service層傳遞專家學者用戶名和密碼過去,在用戶表新增專家學者注冊記錄
userClient.registExpert(username, password);
即可完成遠程調(diào)用
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
文章名稱:使用SpringCloudFeign遠程調(diào)用的方法示例
地址分享:http://aaarwkj.com/article24/pcdcje.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設、虛擬主機、企業(yè)建站、服務器托管、標簽優(yōu)化、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)