6-1 SpringCloud快速开发入门:声明式服务消费 Feign实现消费者
创始人
2025-05-28 05:21:36
0

接上一章节服务消费者构建Hystrix Dashboard监控端点,这里讲讲声明式服务消费 Feign实现消费者

声明式服务消费 Feign是什么

Feign是 Netflix公司开发的一个声明式的 REST调用客户端;

Ribbon负载均衡、Hystrix服务熔断是我们 Spring Cloud中进行微服务开发非常基础的组件,在使用的过程中我们也发现它们一般都是同时出现的,而且配置也都非常相似,每次开发都有很多相同的代码,因此 Spring Cloud基于 Netflix Feign整合了 Ribbon和 Hystrix两个组件,让我们的开发工作变得更加简单,就像 Spring Boot是对 Spring+SpringMVC的简化一样,Spring Cloud Feign对 Ribbon负载均衡、Hystrix服务熔断进行简化,在其基础上进行了进一步的封装,不仅在配置上大大简化了开发工作,同时还提供了一种声明式的 Web服务客户端定义方式;

声明式服务消费 Feign实现消费者

使用 Feign实现消费者,我们通过下面步骤进行:

第一步:创建普通 Spring Boot工程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二步:添加依赖

	org.springframework.cloudspring-cloud-starter-netflix-eureka-clientorg.springframework.cloudspring-cloud-starter-netflix-hystrix2.2.10.RELEASEorg.springframework.cloudspring-cloud-starter-openfeign3.1.3org.springframework.cloudspring-cloud-dependencies2021.0.3pomimportspring-milestonesSpring Milestoneshttps://repo.spring.io/libs-milestonefalse

在这里插入图片描述

在这里插入图片描述

第三步:添加注解

在项目入口类上添加@EnableFeignClients注解表示开启 Spring Cloud Feign的支持功能;

@EnableFeignClients//开启 Spring Cloud Feign的支持功能;

在这里插入图片描述

第四步:声明服务

定义一个 FeignService接口,通过@FeignClient注解来指定服务名称,进而绑定服务,然后再通过 SpringMVC中提供的注解来绑定服务提供者提供的接口,如下:

/*** 使用feign的客户端注解绑定远程服务的名称* 远程服务的名称可大小写*/
@FeignClient("springcloud-service-provider")
public interface FeignService {/*** 声明一个方法,这个方法就是远程的服务提供者提供的方法* @return*/@RequestMapping("/service/provide")public String hello();}

这相当于绑定了一个名叫 springcloud-service-provider (这里springcloud-service-provider大小写 SPRINGCLOUD-SERVICE-PROVIDER 都可以 ) 的服务提供者提供的/service/provide接口;

在这里插入图片描述

在这里插入图片描述
第五步:使用 Controller中调用服务

  • 接着来创建一个 Controller来调用上面的服务,如下:
@RestController
public class FeignController {@AutowiredFeignService helloService;@RequestMapping("/web/hello")public String hello() {//调用声明式的接口方法,实现对远程服务的调用return helloService.hello();}
}

在这里插入图片描述
第六步:属性配置

  • 在 application.properties中指定服务注册中心、端口号等信息,如下:
server.port=8083
# 配置服务的名称 
spring.application.name=springcloud-service-feign
# 配置 eureka注册中心地址
eureka.client.service-url.defaultZone=http://eureka8761:8761/eureka/,http://eureka8762:8762/eureka/

在这里插入图片描述
第七步:测试

  • 依次启动注册中心、服务提供者和 feign实现服务消费者,然后访问如下地址:

http://localhost:8082/web/hello

在这里插入图片描述

相关内容

热门资讯

做一个有道德的人手抄报内容 做一个有道德的人手抄报内容导语:人们常说:道德是石,敲出希望之火;道德是火,点燃希望之灯;道德是灯,...
小学生清明节手抄报画 小学生清明节手抄报画  每逢清明节(当然其它日子亦可),我们应前往先人的长眠处祭奠,献上一束鲜花,献...
交通规则手抄报 交通规则手抄报大全  交通规则记得牢,一路平安大家好。做交通安全手抄报可以提高学生的交通安全意识。下...
文明进校园手抄报内容   文明,是历史以来沉淀下来的,有益增强人类对客观世界的适应和认知、符合人类精神追求、能被绝大多数人...
剪纸爱心喜字剪法步骤 剪纸爱心喜字剪法步骤  想必上一辈老人都会用剪刀剪个大大的`喜字,尤其是在一些节日中,为了迎一个喜气...
科学优秀手抄报内容 科学优秀手抄报内容  无论在学习或是工作中,大家一定没少看到经典的手抄报吧,手抄报需要巧妙设计,精心...
我的中国梦手抄报 关于我的中国梦手抄报  梦想需要实践,实践需要指标,只有竖起标杆,定下指标才能在太阳下更好的实现梦想...
重阳节孝亲敬老手抄报内容   夕阳无限好,人间重晚情。  扶老养老传家久,  尊老敬老世泽长。  孝敬父母以情为上。  尊生老...
交通与安全手抄报大全   随着社会经济的发展,交通越来越发达的今天,交通安全俨然成为影响人们生命安全的重要因素之一。以下是...
旋转图形剪纸图解 旋转图形剪纸图解  中国剪纸是一种用剪刀或刻刀在纸上剪刻花纹,用于装点生活或配合其他民俗活动的民间艺...
小学生四年级交通安全手抄报图... 车辆自身的安全性能和车况对于安全出行也极为重要。对此,搭乘人可以通过了解车辆年检验车或定期保养的情况...
教师节手抄报内容资料 教师节手抄报内容资料大全  在各领域中,大家总少不了要接触手抄报吧,手抄报版面编排和美化设计也要围绕...
学生读书小报的图片 学生读书小报的图片  读书永远是我们提升我们自己最重要的一个方法,我们需要用读书来充实自己的人生,让...
节能减排手抄报图片 节能减排手抄报图片  能源来自大自然,节能保护大自然;能源属于大家,呵护需要你我。  (Y代表正确,...
立秋黑板报素材内容   立秋的介绍  立秋,是二十四节气中的第13个节气,更是干支历未月的结束以及申月的起始;时间在农历...
五年级语文小报图片 五年级语文小报图片大全  语文是基础教育课程体系中的一门教学科目,其教学的内容是语言文化,其运行的形...
清明节精美的手抄报图片 2020年清明节精美的手抄报图片  导语:清明节是我国的传统节日,你在清明节都有什么感想呢?接下来小...
冬至的手抄报 关于冬至的手抄报  每年农历冬至这天,不论贫富,饺子是必不可少的节日饭,关于冬至的手抄报。谚云:“十...
国庆节手抄报文字内容   手抄报是一种可传阅、可观赏、也可张贴的报纸的另一种形式。手抄报也是一种群众性的宣传工具。它就相当...
儿童数学手抄报 儿童数学手抄报大全  导语:数学改变人类的生活轨迹,数学改变了人类的居住的环境,数学对人类发展有着深...