FeignClient如何脫離eureka自定義URL
FeignClient脫離eureka自定義URL
需求
Spring Cloud環(huán)境中的FeignClient有時候需要調(diào)用特定主機的接口,但是默認(rèn)是從eureka上的注冊列表自動獲取到的負(fù)載均衡過后的URL,這時怎么辦呢?
方法一: FeignClient注解中添加URL屬性
如果本地可以編譯參照的FeignClient源碼,可以直接修改,如果參照的是jar包,則可以另外自己做一個FeignClient,主要是要指定url屬性:
@FeignClient(name = "test-service", path = "/test", url="http://localhost:8000")
public interface TestFeignClient{
?? ?@GetMapping(value = "/test1")
?? ?String test1();方法二: eureka禁用ribbon,并手動配置服務(wù)列表
設(shè)置 ribbon.eureka.enable = false
自定義接口的服務(wù)地址
ribbon: ? eureka: ? ? enabled: false test-service: ? ribbon: ? ? listOfServers: http://localhost:8000
注意
方法二的設(shè)置會導(dǎo)致所有FeignClient都需要在配置文件中自定義服務(wù)地址,
如果需要特定指定的服務(wù)URL并不多的話,推薦使用方法一。
另外,如果項目本身就不需要eureka,推薦方法二,因為url可以指定多個,來實現(xiàn)一定的負(fù)載均衡。
feign不使用eureka
main
@EnableFeignClients
@SpringBootApplication
public class FeignMain {
? ? public static void main(String[] args) {
? ? ? ? SpringApplication.run(FeignMain.class, args);
? ? }
}server端代碼
server端依舊是用randomInt
@RequestMapping(value = "/getNum", method = RequestMethod.GET)
? ? public int getRandomInt() {
? ? ? ? Random random = new Random();
? ? ? ? Integer num = random.nextInt(100);
? ? ? ? logger.info("getRandomInt:" + num);
? ? ? ? return num;
? ? }Client端代碼
@FeignClient(name = "thisOnlyName", url = "http://localhost:10102")
public interface RestFulService {
? ? /**
? ? ?* 默認(rèn)沒有參數(shù)會使用get方法
? ? ?*
? ? ?* @return
? ? ?*/
? ? @RequestMapping(value = "/getNum")
? ? int getRandomInt();
}此處通過url直接指定就好了。不需要配置eureka。ribbon也不會生效。單節(jié)點個人學(xué)習(xí)棒棒噠!
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
在Spring Boot中實現(xiàn)文件上傳與管理的操作
在 Spring Boot 中實現(xiàn)文件上傳與管理非常簡單,通過配置文件上傳、創(chuàng)建文件上傳、下載、列表和刪除接口,我們可以輕松地處理文件操作,結(jié)合前端頁面,可以提供一個完整的文件管理系統(tǒng),這篇文章主要介紹了在Spring Boot中實現(xiàn)文件上傳與管理,需要的朋友可以參考下2024-07-07
利用Java反射機制實現(xiàn)對象相同字段的復(fù)制操作
這篇文章主要介紹了利用Java反射機制實現(xiàn)對象相同字段的復(fù)制操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08

