基于springcloud搭建项目-Feign篇(四)

上一篇已经写过ribbon客户端负载均衡的用法了,这篇主要是介绍feign的用法,首先我们必须了解feign是什么?能干嘛?怎么用?

这里简单介绍一下,然后进行代码测试

1、概述

Feign是一个声明式的web服务客户端,使得编写Web服务客户端变得非常容易,只需要创建一个接口,然后在上面添加注解即可。

2、能干嘛

前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模板化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多出调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以,Feifn在此基础上做了进一步封装,有他来帮助我们定义和实现依赖服务接口的定义。在Feign的实现下,我们只需创建一个接口并使用注解的方式来配置它(以前是Dao接口上标注Mapper注解,现在是一个微服务接口上面注解一个Feign注解即可),即可完成对服务提供方的接口绑定,简化了使用Spring cloud Ribbon时,自动封装服务调用客户端的开发量

3、怎么用

(1)、首先,添加pom.xml中的依赖,在study-web和study-ms中同时都加入Feign的依赖

  注:stusy-web和study-ms都是沿用上几篇搭建的项目,不知道的往上几篇翻翻

(2)、 在study-ms的服务里添加查询方法

controller层

 service层

mapper层

有关sql的配置

(3)、在study-api服务中添加接口,加上@FeignClient的注解,name 的是服务名

(4)、在study-web中添加测试方法

在study-web的启动类上添加注解@EnableFeignClients

4、测试

启动study-eureka(8001)、study-ms(8003)、study-web(8002)

通过postman测试接口,结果为:

 总结-feign和ribbon

Feign集成了Ribbon
利用Ribbon维护了MicroServiceCloud-Dept的服务列表信息,并且通过轮询实现了客户端的负载均衡,而与Ribbon不同的是,通过Feign只需要定义服务绑定接口且以声明式的方法,优雅而简单的实现了服务调用

Feign通过接口的方法调用Rest服务(之前是Ribbon+RestTemplate),
该请求发送给Eureka服务器(http://MICROSERVICECLOUD-DEPT/dept/list),
通过Feign直接找到服务接口,由于在进行服务调用的时候融合了Ribbon技术,所以也支持负载均衡作用。

原文地址:https://www.cnblogs.com/jing5464/p/12222416.html

时间: 2024-08-30 15:03:00

基于springcloud搭建项目-Feign篇(四)的相关文章

基于springcloud搭建项目-ribbon篇(三)

这篇文章主要是介绍一下ribbon的用法,我们都知道ribbon是负载均衡,但是却不知道他是怎么样的负载均衡,怎么用,能干嘛? ● 其实,简单的说,Spring Cloud Ribbon是基于Netfilx Ribbon实现的一套客户端 负载均衡的工具 Ribbon是Netfilx发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netfilx的中间层服务连接在一起,Ribbon客户端组件提供一系列完善的配置如连接超时,重试等,简单的说,就是在配置文件中列出Load Balander(简

基于springcloud搭建项目-Hystrix篇(五)

1.概述 (1).首先要知道分布式系统面临的问题复杂分布式体系结构中应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败 (2).服务雪崩 多个服务之间相互调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这既是所谓的“扇出”.如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的嗲用就会占用原来越多的系统资源,今儿引起系统崩溃,所谓的“雪崩效应”. (3).对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒

Springboot 手动搭建项目 --初始篇

最近一直在学springboot和Cloud,互联网公司现在也更倾向于微服务这一块,前景是一篇光明的,特别是在springboot上开发的Cloud的部分,是一套分布式的整体解决方案,学好这一块至少这几年都很吃香: 既然学习很久,落地实践一下为好: 项目git网址:https://github.com/David-BIQI/manage.git 参照的代码规范:https://github.com/xwjie/PLMCodeTemplate.git (这个是一套能够落地的代码规范,跟着风哥学习很

【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇四:关于OneNote入库处理以及审核

篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblogs.com/baiboy/p/wpf1.html 篇三:批量处理后的txt文件入库处理:http://www.cnblogs.com/baiboy/p/wpf2.html 篇四:关于OneNote入库处理以及审核:http://www.cnblogs.com/baiboy/p/wpf3.html [

基于Maven搭建SpringMVC+Mybatis项目(3)

| 从高考,到程序员      CSDN日报20170620--<找一个好工作,谈一份好薪水>      6 月书讯 | 最受欢迎的 SQL 入门书重磅升级 从头开始基于Maven搭建SpringMVC+Mybatis项目(3) 标签:               JAVAmavenspring mvcmybatis 2016-07-26 10:06             42087人阅读             评论(2)             收藏              举报 本文

业余草 SpringCloud教程 | 第三篇: 服务消费者(Feign)(Finchley版本)

上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务. 一.Feign简介 Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单.使用Feign,只需要创建一个接口并注解.它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解.Feign支持可插拔的编码器和解码器.Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果. 简而言之: Feign 采用的是基于接口的注解 F

基于rhel7.2的Zabbix平台搭建和部署(四)

基于rhel7.2的Zabbix平台搭建和部署(四) 一.实现zabbix添加监测项,添加对Linux主机的监控. 说明:先在"配置"-"主机"里添加主机监控,监控os资源:内存,cpu,io,负载,带宽等. (1)登录zabbix,先在"配置"-"主机"里单击"创建主机": (2)在"主机"标签,填写相关信息 注:这个主机名字必须和hostname的一模一样,这里用的ip就是被监控主机

基于Maven搭建SpringMVC+Mybatis项目(4)

从高考,到程序员      CSDN日报20170620--<找一个好工作,谈一份好薪水>      6 月书讯 | 最受欢迎的 SQL 入门书重磅升级 从头开始基于Maven搭建SpringMVC+Mybatis项目(4) 标签:               mavenmybatisspring mvc分页JAVA 2016-07-27 16:53             4598人阅读             评论(0)             收藏              举报 本文章

基于Maven搭建SpringMVC+Mybatis项目(2)

从头开始基于Maven搭建SpringMVC+Mybatis项目(2) 标签:               JAVAmavenmybatisspring mvc 版权声明:欢迎转载, 转载请保留原文链接. 接上文内容,本节介绍Maven的聚合和继承. 从头阅读传送门 互联网时代,软件正在变得越来越复杂,开发人员通常会对软件划分模块,以获得清晰的设计.良好的分工及更高的可重用性.Maven的聚合特性能把多个模块聚合在一起构建,并促进各子模块通过继承父模块的pom配置来保持配置的一致.为了演示这些特