feign是依赖注册中心调用的其他服务。
如果A服务调用B服务,A就是在注册中心找B服务,找到了才知道地址,才能调用接口。(也可以不用注册中心访问到B服务,需要在@feignclient的注解后面配置url,下面第四大点详细讲)

一、项目结构

配置中心
注册中心
服务A:学生服务
服务B:课程成绩服务

下面我们要实现:
服务A:学生服务 调用 服务B:课程服务的接口

二、引入依赖

A服务是调用端,需要引入依赖
B服务是被调用端,可以不用引依赖

在引入依赖的时候发现,两个依赖:spring-cloud-starter-feign和spring-cloud-starter-openfeign,这里推荐使用openfeign。
下面是他俩的区别

openfeign 和 feign

openfeign 是 spring cloud 在 feign 的基础上支持 spring mvc注解 ,如 @RequestMapping 等等,OpenFeign 的@FeignClient 可以解析Spring MVC 的 @RequestMapping注解下的接口,并通过动态代理的方式生产实现类 ,实现类中做负载均衡并且 低耦合调用其他服务。


推荐使用openfeign

引入依赖

<!--feign客户端(调用端)-->
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>

这里没有写版本,是因为父工程引入了spring-cloud-dependencies依赖声明

三、调用端(A服务)写调用接口

3.1、编写远程调用接口:

接口FCourseService(习惯性大写F开头,表示这是Feign远程调用接口)

3.2、启动程序加注解

注解:@EnableFeignClients

3.3、使用远程调用接口

在需要使用的地方:
1、@Autowired注入FCourseService
2、使用fCourseService接口方法

到这里,远程调用环境全部准备好了。
启动A服务、B服务、注册中心、配置中心。
打开浏览器:http://localhost:8011/student/selectAllCourse
(我的A服务(学生服务)是运行在8011端口)
得到结果:

feign远程调用成功!!!!

四、扩展(不使用eureka注册中心来实现feign远程调用)

4.1、如果没有注册中心:

报错显示:Load balancer does not have available server for client: course-service(找不到服务)

4.3、实现

只需要在远程调用接口的@FeignClient后面的括号里面加上属性url就可以了:
@FeignClient(name = “course-service”,url = “http://localhost:8011/”)

(三)SpringCloud实战之openfeign服务调用相关推荐

  1. 【Springcloud】(06)中级搭建-OpenFeign服务调用

    [Springcloud](06)中级搭建-OpenFeign服务调用 [一]OpenFeign是什么 (1.1)Feign和OpenFeign (1.2)Feign能干什么? (1.3)Feign集 ...

  2. 最新版Spring Cloud Alibaba微服务架构-Openfeign服务调用篇

    文章目录 前言 一.OpenFeign配置使用 1.引入pom依赖 2.消费端开启Feign服务调用 3.消费端动态代理Service接口 3.消费端测试 二.OpenFeign日志配置 1.全局配置 ...

  3. SpringCloud Feign声明式服务调用

    SpringCloud Feign声明式服务调用 1. 加入pom依赖 2. Application.java上声明@EnableFeignClients 3. @FeignClient声明接口调用服 ...

  4. SpringCloud OpenFeign服务调用客户端介绍及配置使用

    一.OpenFeign介绍 OpenFeign是Netfix开发的一款声明式,模板化的Http服务调用客户端.使用在服务调用者工程端.OpenFeign的负载均衡也为客户端负载均衡.一下简称Feign ...

  5. SpringCloud之声明式服务调用 Feign(三)

    一 Feign简介 Feign是一种声明式.模板化的HTTP客户端,也是netflix公司组件.使用feign可以在远程调用另外服务的API,如果调用本地API一样. 我们知道,阿里巴巴的doubbo ...

  6. SpringCloud OpenFeign 服务调用传递 token

    业务场景 通常微服务对于用户认证信息解析有两种方案 在 gateway 就解析用户的 token 然后路由的时候把 userId 等相关信息添加到 header 中传递下去. 在 gateway 直接 ...

  7. springcloud使用restTemplate进行服务调用

    在springcloud的体系中,微服务之间的互相调用是其中比较重要的模块之一,也是微服务的rpc主要核心板块,我们熟知的用于微服务互相调用的组件像ribbon和feign便是其中之一,但在谈到这两个 ...

  8. 文件上传结合SpringCloud的Feign进行服务调用

    工作中一直使用的是SpringCloud,其中的多个组件的使用也已经有一段时间了,包括对组件的配置文件的编写,今天要讲的是SpringCloud中的一个远程服务调用的组件,使用Feign之后,我们调用 ...

  9. SpringCloud系列:分布式服务调用链跟踪整合Zipkin、RabbitMQ、Elasticsearch(二)

    2019独角兽企业重金招聘Python工程师标准>>> 一.概述 RabbitMQ用于的服务和Zipkin服务端的通信,代替服务和Zipkin服务端通过http协议的通信,实现了微服 ...

最新文章

  1. 超经典超好玩的光枪游戏,强烈推荐!
  2. [分享] 关于App Store下载到一半发生错误的问题 [复制链接]
  3. 即使用ADO.NET,也要轻量级实体映射,比Dapper和Ormlite均快
  4. 政府会给我们补贴吗?
  5. 442. 数组中重复的数据
  6. wampserver环境下,apache本地下设置多个域名
  7. C++笔记------模版
  8. 对我国超级计算机的应用,要加强我国超级计算机应用人才储备
  9. window.onload 函数不执行处理
  10. Ubuntu删除不干净导致的一系列后果
  11. 关闭蜂鸣最简单的方法
  12. 无人驾驶 ai算法_质疑AI是否具有意图以及这对无人驾驶汽车意味着什么
  13. AutoCAD2012从入门到精通中文视频教程 第41课 建筑绘图1(个人收藏)
  14. Android RecyclerView 子条目(item)嵌套 RecyclerView
  15. linux下while循环,Bash 中的 while 循环详解
  16. python向网页上传excle、text文件
  17. ElementUI Tree 树形结构展示
  18. Tableau中的表计算
  19. PPT怎么转换成Word文档?分享两种转换小妙招
  20. android双屏不同apk,android rk3288 rk3399 双屏双触 双屏异显 验证apk

热门文章

  1. 通达信板块监控指标_通达信辅助判断指标公式行业板块看盘幅图
  2. Vue el-table-column根据行数据添加button和修改对应数据and控制显示条件
  3. 使用Maven创建Web应用程序项目
  4. Java基础(顺序结构)学习笔记
  5. 说说short s = 1; s = s + 1;有没有问题?如果有怎么解决?
  6. 2016年8月7日 星期日 --出埃及记 Exodus 16:7
  7. 初始化string对象时,申请空间的秘密
  8. 【苹果家庭推】imessage群发苹果软件安装C / C ++功能库提供
  9. [数论][组合数学]微信群
  10. golang的http