消費服務Eureka

2021-09-27 07:55:35 字數 2327 閱讀 7849

在消費者**中對任何服務例項的url進行硬編碼是錯誤的。這不僅將消費者耦合到服務的特定例項,而且如果服務的主機和/或埠要改變,也可能導致消費者中斷。

eureka的兩種消費服務方式包括:

使用resttemplate消費服務

一旦將應用程式作為eureka客戶端啟用,則可以選擇宣告負載平衡resttemplate的bean。您所需要做的就是宣告乙個常規resttemplate 的bean,但用​​以下@bean方法注釋該方法@loadbalanced:

@bean

@loadbalanced

public resttemplate resttemplate()

@component

public class ingredientserviceclient

...}

public ingredient getingredientbyid(string ingredientid) ",

ingredient.class, ingredientid);

}

賦予的url getforobject()不使用任何特定的主機名或埠。使用服務名稱成分服務來代替主機名和埠。

使用webclient消費服務

首先要做的是宣告乙個webclient.builder帶有@loadbalanced以下注釋的bean方法:

@bean

@loadbalanced

public webclient.builder webclientbuilder()

webclient.builder宣告乙個bean之後,您現在可以將負載均衡webclient.builder注入任何需要它的bean中。

@component

public class ingredientserviceclient

...}

最後,當您準備使用它時,可以使用webclient.builder構建乙個webclient,然後使用該服務的名稱(在eureka中進行註冊的服務名稱)來發出請求:

public monogetingredientbyid(string ingredientid) ", ingredientid)

.retrieve().bodytomono(ingredient.class);

}

與負載平衡一樣resttemplate,發出請求時無需顯式指定主機或埠。服務名稱將從給定的url中提取,並用於從eureka查詢服務。然後,ribbon將選擇服務的乙個例項,並在發出請求之前,用所選例項的主機和埠重寫url。

使用feign的第一步是將依賴項新增到專案構建中。在pom.xml中,以下操作可以解決問題:

org.springframework.cloud

spring-cloud-starter-openfeign

啟用feign。您需要將@enablefeignclients注釋新增到配置類之一中:

@configuration

@enablefeignclients

public restclientconfiguration

通過定義介面呼叫微服務

package tacos.ingredientclient.feign;

import org.springframework.cloud.openfeign.feignclient;

import org.springframework.web.bind.annotation.pathvariable;

import tacos.ingredientclient.ingredient;

@feignclient("ingredient-service")

public inte***ce ingredientclient

這是乙個簡單的介面,沒有實現。但是在執行時,只要feign掌握了它,feign就自動建立乙個實現,並在spring應用程式上下文中將其公開為bean。

注入feign實現的介面並開始使用它

@controller

public class ingredientcontroller

public string ingredientdetailpage(@pathvariable("id") string id,

model model)

}

10 使用Eureka編寫服務消費者

1 直接呼叫介面 server.port 8082 resttemplate 是 spring 提供的用於訪問 rest 服務的客戶端,resttemplate 提供了多種便捷訪問遠端 http 服務的方法,能夠大大提高客戶端的編寫效率。我們通過配置 resttemplate 來呼叫介面,如下所示。...

Eureka服務提供者和消費者

建立專案eureka client user service,作為服務提供者註冊到euraka中。org.springframework.boot groupid spring boot starter web artifactid dependency org.springframework.cl...

Eureka的服務提供者 服務消費者和註冊中心詳解

一 架構圖 二 服務提供者 1 服務註冊 服務提供者 在啟動的時候會通過rest請求的方式將自己註冊到eureka server上,同時帶上自身服務的一些元資料資訊。eureka server接收到這個rest請求之後,將元資料資訊儲存在乙個雙層結構map中,其中第一層的key是服務名,第二層的ke...