溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用Eureka編寫服務(wù)消費者

發(fā)布時間:2021-09-29 15:01:29 來源:億速云 閱讀:124 作者:柒染 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)如何使用Eureka編寫服務(wù)消費者,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

1)直接調(diào)用接口

創(chuàng)建服務(wù)消費者,消費我們剛剛編寫的 user/hello 接口,同樣需要先創(chuàng)建一個 Maven 項目 eureka-client-article-service,然后添加依賴,依賴和服務(wù)提供者的一樣,這里就不貼代碼了。

創(chuàng)建啟動類 App,啟動代碼與前面所講也是一樣的。唯一不同的就是 application.properties 文件中的配置信息:

spring.application.name=eureka-client-article-serviceserver.port=8082

RestTemplate 是 Spring 提供的用于訪問 Rest 服務(wù)的客戶端,RestTemplate 提供了多種便捷訪問遠(yuǎn)程 Http 服務(wù)的方法,能夠大大提高客戶端的編寫效率。我們通過配置 RestTemplate 來調(diào)用接口,代碼如下所示。

@Configurationpublic class BeanConfiguration {@Beanpublic RestTemplate getRestTemplate() {return new RestTemplate();
    }
}

創(chuàng)建接口,在接口中調(diào)用 user/hello 接口,代碼如下所示。

@RestControllerpublic class ArticleController {@Autowiredprivate RestTemplate restTemplate;@GetMapping("/article /callHello")public String callHello() {return restTemplate.getForObject("http://localhost:8081/user/hello", String.class);}
}

執(zhí)行 App 啟動消費者服務(wù),訪問 /article/callHello 接口來看看有沒有返回 Hello 字符串,如果返回了就證明調(diào)用成功。訪問地址為 http://localhost:8082/article/callHello (http://localhost%EF%BC%9A8082/article/callHello)。

2)通過 Eureka 來消費接口

上面提到的方法是直接通過服務(wù)接口的地址來調(diào)用的,和我們之前的做法一樣,完全沒有用到 Eureka 帶給我們的便利。既然用了注冊中心,那么客戶端調(diào)用的時候肯定是不需要關(guān)心有多少個服務(wù)提供接口,下面我們來改造之前的調(diào)用代碼。

首先改造 RestTemplate 的配置,添加一個 @LoadBalanced 注解,這個注解會自動構(gòu)造 LoadBalancerClient 接口的實現(xiàn)類并注冊到 Spring 容器中,代碼如下所示。

@Configurationpublic class BeanConfiguration {@Bean@LoadBalancedpublic RestTemplate getRestTemplate() {return new RestTemplate();
    }
}

接下來就是改造調(diào)用代碼,我們不再直接寫固定地址,而是寫成服務(wù)的名稱,這個名稱就是我們注冊到 Eureka 中的名稱,是屬性文件中的 spring.application.name,相關(guān)代碼如下所示。

@GetMapping("/article/callHello2")public String callHello2() {return restTemplate.getForObject("http://eureka-client-user-service/user/hello", String.class);}

關(guān)于如何使用Eureka編寫服務(wù)消費者就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI