计算机系统应用教程网站

网站首页 > 技术文章 正文

走进Spring Cloud之五 eureka Feign(服务调用者)

btikc 2024-09-10 12:02:14 技术文章 13 ℃ 0 评论

Feign

Feign是一个声明式、模板化的HTTP客户端。它使得写Http客户端变得更简单。使用Feign,只需要用JAX-RS或Spring MVC注解创建可以实现的动态接口。

微服务之间的调用本质还是http请求,如果对于每个请求都需要写请求代码,增加请求参数,同时对请求结果做处理,就会存在大量重复工作,而feign非常优雅的帮助我们解决了这个问题,只需要定义一个interface,fegin就知道http请求的时候参数应该如何设置。

同时,feign也集成了ribbon,只要在微服务中依赖了ribbon,feign默认会使用ribbon定义的负载均衡策略。

最重要的是,feign并不是仅仅只能使用在有eureka或者ribbon的微服务系统中,任何系统中,只要涉及到http调用第三方服务,都可以使用feign,帮我们解决http请求的代码重复编写。

service-consumer

moudle

新建消费者模块

new ->moudle ->service-consumer

pom.xml

修改pom.xml添加spring-cloud-starter-openfeign依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <parent>
 <artifactId>scexample</artifactId>
 <groupId>com.pubutech</groupId>
 <version>0.0.1-SNAPSHOT</version>
 </parent>
 <modelVersion>4.0.0</modelVersion>
 <artifactId>service-consumer</artifactId>
 <packaging>jar</packaging>
 <dependencies>
 <dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
 </dependency>
 <dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-openfeign</artifactId>
 </dependency>
 </dependencies>
 <dependencyManagement>
 <dependencies>
 <dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-dependencies</artifactId>
 <version>${spring-cloud.version}</version>
 <type>pom</type>
 <scope>import</scope>
 </dependency>
 </dependencies>
 </dependencyManagement>
 <build>
 <plugins>
 <plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 </plugin>
 </plugins>
 </build>
</project>

application.yml

resource目录下新建application.yml修改配置信息如下:

ConsumerExampleApplication.java

新建SpringBootApplication ConsumerExampleApplication.java

FeignExampleService.java

新建FeignClient进行远程服务调用

继续新建远程服务调用测试Controller

启动工程

再次访问 localhost:8761

访问页面http://localhost:8080/hello/jason

调用的结果如下:

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表