个性化阅读
专注于IT技术分析

使用Feign REST客户端进行服务调用

本文概述

在本节中, 我们将从流行的流行云组件之一Feign开始。

假装

Feign是由Netflix开发的声明性Web服务(HTTP客户端)。其目的是简化HTTP API客户端。它是Java到HTTP客户端绑定程序。如果要使用Feign, 请创建一个接口并对其进行注释。它提供了可插入注释支持, 包括Feign注释和JAX-RS注释。

它是用于创建REST API客户端的库。它使Web服务客户端更容易。开发人员可以使用声明性注释来调用REST服务, 而不必编写代表性的样板代码。

Spring Cloud OpenFeign

Spring Cloud OpenFeign通过自动配置并绑定到Spring Environment为Spring Boot应用程序提供OpenFeign集成。没有Feign, 在Spring Boot应用程序中, 我们使用RestTemplate调用User服务。要使用Feign, 我们需要在pom.xml文件中添加spring-cloud-starter-openfeign依赖项。

让我们使用Spring Cloud OpenFeign简化先前开发的代码。

在上一节中, 我们已经遇到的事情之一就是我们在开发货币转换服务时。调用REST服务有多困难。我们需要做很多手册来调用非常简单的服务。但是我们仍然为此编写了很多代码。

当我们使用微服务时, 将有很多其他服务的电话。我们不必像上一个那样编写代码。伪装是解决此问题的组件。 Feign使调用其他微服务变得很容易。

Feign提供的另一项附加功能是:与功能区(客户端负载平衡框架)集成。

让我们在项目中实现Feign并使用Feign调用其他微服务。

步骤1:选择”货币转换服务”项目。

步骤2:打开pom.xml并添加Feign依赖项。 Feign继承自Netflix。

<dependency>
<groupId>org.springframework.cloud</groupId>  
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.4.RELEASE</version>
</dependency>

步骤3:添加依赖项后, 通过在CurrencyConversionServiceApplication.java文件中添加注释@EnableFeignClients, 启用Feign扫描客户端。

步骤4:在@EnableFeignClients批注中定义一个属性。该属性是我们要扫描的软件包的名称。

CurrencyConversionServiceApplication.java

package com.srcmini.microservices.currencyconversionservice;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableFeignClients("com.srcmini.microservices.currencyconversionservice")
public class CurrencyConversionServiceApplication 
{
public static void main(String[] args) 
{
SpringApplication.run(CurrencyConversionServiceApplication.class, args);
}
}

我们在项目中启用了Feign。现在, 我们将使用Feign来调用服务。

步骤5:创建一个Feign代理, 使我们能够与外部微服务进行对话。让我们创建一个名为CurrencyExchangeServiceProxy的接口。

步骤6:添加注释@FeignClient。传递属性名称和URL。

在名称属性中, 写下我们将要使用的服务的名称。在我们的例子中, 我们将使用货币兑换服务。在URL属性中, 编写运行currency-exchange-service的端口。

@FeignClient(name="currency-exchange-service", url="localhost:8000")

步骤7:现在, 我们需要定义一个与Currency-exchange-controller对话的方法。打开Currency-ConverterController.java文件。复制货币转换器的映射并将其粘贴到同一文件中。

步骤8:将映射名称更改为/ currency-converter-feign / from / {from} / to / {to} / quantity / {quantity}, 并将方法名称更改为convertCurrencyFeign。

步骤9:使用CurrencyExchangeServiceProxy并将其自动连线。

@Autowired
private CurrencyExchangeServiceProxy proxy;

步骤10:首先, 通过调用URL http:// localhost:8000 / currency-exchange / from / USD / to / INR来运行货币兑换服务, 然后使用URL http:运行货币兑换服务。 // localhost:8100 / currency-converter / from / USD / to / INR / quantity / 1000。

如果我们未按顺序运行服务, 则currency-conversion-service将显示Whitelabel Error Page。这是因为货币转换服务使用了货币交换服务的conversionMultiple。

步骤11:通过使用URL http:// localhost:8100 / currency-converter-feign / from / USD / to / INR / quantity / 1000执行伪装服务。它返回与currency-converter-service相同的响应。

使用Feign REST客户端进行服务调用

在上面的URL中将货币USD更改为EUR, 然后再次调用相同的URL。它从货币兑换服务中获取变量” from”, 并返回totalCalculated Amount。

使用Feign REST客户端进行服务调用

我们发送的请求使用Feign。 Feign是REST服务客户端。 Feign可以轻松调用RESTful Web服务。当我们使用RestTemplate调用RESTful服务时, 它会创建与RESTful服务对话的代码重复。

当我们定义Feign时, 我们只需要定义一个代理并在其中定义一个方法即可。 Feign帮助我们简化了与RESTful Web服务对话的客户端代码。

考虑一种方案, 其中货币兑换服务提供15种不同的服务。与这些服务有关的所有详细信息必须在一个位置定义, 即CurrencyExchangeServiceProxy接口。


赞(0) 打赏
未经允许不得转载:srcmini » 使用Feign REST客户端进行服务调用
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏