文章目录

  • 一、Feign简介
  • 二、 环境准备
  • 三、创建基于Feign服务
    • 定义启动类
    • pom文件配置
    • 配置文件application.yml
    • 定义一个feign接口
    • 定义一个controller

前言:上篇文章讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何使用Feign去消费服务

代码地址:github-spring-cloud地址

一、Feign简介

Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。在Spring Cloud中,使用Feign非常简单——创建一个接口,并在接口上添加一些注解,代码就完成了。Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。

总结:

  • Feign 采用的是基于接口的注解
  • Feign 整合了ribbon

二、 环境准备

使用上一章功能启动eureka-server 和eureka-hello

三、创建基于Feign服务

定义启动类

注解@EnableFeignClients表明通过feign方式调用服务

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

pom文件配置

<?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>spring-cloud-learn</artifactId><groupId>com.sl.learn.cloud</groupId><version>1.0-SNAPSHOT</version><relativePath>..</relativePath></parent><modelVersion>4.0.0</modelVersion><groupId>com.sl.learn.cloud</groupId><artifactId>eureka-feign</artifactId><version>1.0-SNAPSHOT</version><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><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency></dependencies></project>

注意SpringCloud版本为Finchley,feign版本用的是
spring-cloud-starter-openfeign

配置文件application.yml

server:port: 8086spring:application:name: eureka-feigneureka:client:serviceUrl:defaultZone: http://localhost:8080/eureka/management:endpoints:web:exposure:include: '*'endpoint:health:show-details: alwaysshutdown:enabled: true

定义一个feign接口

通过@ FeignClient(“服务名”),来指定调用哪个服务

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

定义一个controller

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

@RestController
public class FeignController {@AutowiredFeignService feignService;@RequestMapping(value = "/hi",method = RequestMethod.GET)public String feign(@RequestParam(value = "name") String name) {return feignService.sayHiFromClientOne(name);}
}

SpringCloud教程- 服务消费者(Feign)(SpringCloud版本Finchley)相关推荐

  1. SpringCloud教程- 服务消费者(rest+ribbon)(SpringCloud版本Finchley)

    文章目录 一.ribbon介绍 二.启动两个实例 三.建一个服务消费者(ribbon) 四. Ribbon调用总结 代码地址:github-spring-cloud地址 前言:在上一篇文章,讲了服务的 ...

  2. Spring Cloud(四)服务提供者 Eureka + 服务消费者 Feign

    上一篇文章,讲述了如何通过RestTemplate + Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务. Feign简介 Feign是一个声明式的伪Http客户端,它使得写Htt ...

  3. SpringCloud教程-服务的注册与发现Eureka(SpringCloud版本Finchley)

    文章目录 SpringCloud简介 创建注册中心(基于Eureka) 创建maven工程 创建maven子工程 eureka-server服务端pom文件 eureka-server服务端配置文件 ...

  4. SpringCloud教程- 服务链路追踪(Spring Cloud Sleuth)(SpringCloud版本Greenwich.SR4)

    文章目录 一.Sleuth简介 二.为何使用Sleuth 三.构建工程 server-zipkin zipkin-serivce-hi zipkin-server-hello 四. 启动工程演示 代码 ...

  5. SpringCloud微服务使用Feign如何暴露接口并整合SpringBoot测试

    文章目录 一. 问题背景 二. 解决方案 2.1 实现生产者中的接口 2.2 暴露接口 2.3 远程调用 2.4 SpringBoot整合测试 2.5 开始测试 三. 回调处理 四. 踩坑记录 一. ...

  6. SpringCloud教程- 路由网关Zuul (SpringCloud版本Greenwich.SR4)

    文章目录 Zuul简介 创建zuul-gateway工程 服务过滤 代码地址:github-spring-cloud地址 Zuul简介 Zuul是NetFlix开源的微服务网关,它可以和Eureka. ...

  7. SpringCloud教程-注册中心(Consul)(SpringCloud版本Greenwich.SR4)

    文章目录 consul简介 Consul 的优势: 创建工程consul-client 代码地址: github-spring-cloud地址 consul简介 Consul 是 HashiCorp ...

  8. 学习微服务服务消费者——Feign

    2019独角兽企业重金招聘Python工程师标准>>> 微服务之间的调用除了restTemplate+ribbon,还有一种方式就是Feign 1.新建一个feign服务 build ...

  9. Spring Cloud第三篇:服务消费者Feign

    上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务. 一.Feign简介 Feign是一个声明式的伪Http客户端,它使得写Htt ...

最新文章

  1. ubutu14.04无法使用sudo,也无法切换到root用户去解决问题怎么办?
  2. Linux下常用 60个命令
  3. 重启修复计算机怎么操作,如何以安全模式启动电脑,修复系统故障,这4个方法值得一试...
  4. MYSQL学习笔记 (三)JOIN用法
  5. 2020年中国互联网租车报告
  6. 把emacs的插件和配置文件备份到github上去了。
  7. 用户与组在Linux 菜单,linux 用户和组的管理
  8. 加/减/乘/除 下的取余
  9. Java-数据库连接池第一篇
  10. Obsidian V0.14.6版本下实时渲染总是出Bug,时常渲染不出来
  11. mouseenter和mouseleave与mouseover和mouseout的区别
  12. Codeforces407C Curious Array
  13. LVM逻辑卷快照的添加,删除逻辑卷!
  14. 音视频怎样入门?带你入门基础+学习思路
  15. springBoot+layui 压缩包 直接下载--或--直接压缩并下载方法
  16. win32api之虚拟键盘
  17. MATLAB连接USRP
  18. C语言实现存款利息计算
  19. 【一文弄懂】张正友标定法-完整学习笔记-从原理到实战
  20. Element UI设置文本输入框、选择框、数字、日期组件的背景色

热门文章

  1. fc oracle,使用 CLI 配置 FC
  2. Python实现kNN算法
  3. html5和前端精要(4)-头部信息
  4. python3精要(24)-函数内省、函数注释、函数属性
  5. 【深度学习】一种关注于重要样本的目标检测方法!
  6. 阿里大神的刷题笔记.pdf
  7. 【机器学习基础】一文详尽之支持向量机(SVM)算法!
  8. 两行代码完成特征工程-基于Python的特征自动化选择代码(提供下载)
  9. Python中zip()函数的解释和可视化
  10. 推荐:机器学习实战项目练手的平台