千家信息网

如何通过Feign去消费服务

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"如何通过Feign去消费服务",在日常操作中,相信很多人在如何通过Feign去消费服务问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何通过Feign
千家信息网最后更新 2026年11月02日如何通过Feign去消费服务

这篇文章主要介绍"如何通过Feign去消费服务",在日常操作中,相信很多人在如何通过Feign去消费服务问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何通过Feign去消费服务"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、Feign简介

Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。

它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成

了Ribbon,了解springcloud架构可以加求求:三五三六二四七二五九,并和Eureka结合,默认实现了负载均衡的效果。

简而言之:

Feign 采用的是基于接口的注解

Feign 整合了ribbon,具有负载均衡的能力

整合了Hystrix,具有熔断的能力

二、准备工作

继续用上一节的工程, 启动eureka-server,端口为8761; 启动service-hi 两次,端口分别为8762 、8773.

三、创建一个feign的服务

新建一个spring-boot工程,取名为serice-feign,在它的pom文件引入Feign的起步依赖spring-cloud-starter-feign、

Eureka的起步依赖spring-cloud-starter-netflix-eureka-client、Web的起步依赖spring-boot-starter-web,代码如下:

    4.0.0    com.forezp    service-feign    0.0.1-SNAPSHOT    jar    service-feign    Demo project for Spring Boot            com.forezp        sc-f-chapter3        0.0.1-SNAPSHOT                            org.springframework.cloud            spring-cloud-starter-netflix-eureka-client                            org.springframework.boot            spring-boot-starter-web                            org.springframework.cloud            spring-cloud-starter-openfeign                    

在工程的配置文件application.yml文件,指定程序名为service-feign,端口号为8765,服务注册地址为http://localhost:8761/eureka/ ,代码如下:

eureka:  client:    serviceUrl:      defaultZone: http://localhost:8761/eureka/server:  port: 8765spring:  application:    name: service-feign

在程序的启动类ServiceFeignApplication ,加上@EnableFeignClients注解开启Feign的功能:

@SpringBootApplication@EnableEurekaClient@EnableDiscoveryClient@EnableFeignClientspublic class ServiceFeignApplication {    public static void main(String[] args) {        SpringApplication.run( ServiceFeignApplication.class, args );    }}

定义一个feign接口,通过@ FeignClient("服务名"),来指定调用哪个服务。比如在代码中调用了service-hi服务的"/hi"接口,代码如下:

@FeignClient(value = "service-hi")public interface SchedualServiceHi {    @RequestMapping(value = "/hi",method = RequestMethod.GET)    String sayHiFromClientOne(@RequestParam(value = "name") String name);}

在Web层的controller层,对外暴露一个"/hi"的API接口,通过上面定义的Feign客户端SchedualServiceHi 来消费服务。代码如下:

@RestControllerpublic class HiController {    //编译器报错,无视。 因为这个Bean是在程序启动的时候注入的,编译器感知不到,所以报错。    @Autowired    SchedualServiceHi schedualServiceHi;    @GetMapping(value = "/hi")    public String sayHi(@RequestParam String name) {        return schedualServiceHi.sayHiFromClientOne( name );    }}

启动程序,多次访问http://localhost:8765/hi?name=forezp,浏览器交替显示:

hi forezp,i am from port:8762
hi forezp,i am from port:8763

到此,关于"如何通过Feign去消费服务"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

服务 注解 消费 代码 接口 程序 学习 客户 客户端 工程 文件 均衡 更多 端口 编译器 能力 帮助 整合 编译 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东猪兼强互联网科技有限公司 互联网通讯科技 互联网科技战争 广州互联网科技公司 赫美联合互联网科技 猫创互联网科技 互联网科技公司做什么 滨湖区互联网智能科技产品供应 中国的互联网科技企业的崛起 互联网科技中介 剑昆互联网络科技有限公司临桂 福建科技产业互联网发展 互联网科技人工智能实验室 中国互联网公司排名锤子科技 每天都有哪些好的互联网科技 美国互联网科技公司 互联网领先科技宣传片 下一代互联网重大应用科技园 杭州融税互联网科技有限公司 保山浩联互联网科技有限公司 苏州找大状互联网科技有限公司 上海万想互联网科技 青岛中康互联网医疗科技有限公司 福州新华互联网科技学校 知乎 佳云科技和互联网广告 港股科技和互联网 苏州五指互联网络科技有限 山东星卡互联网科技有限公司官网 互联网科技股为什么大涨 昆明中奇联合互联网科技
0