SpringCloud学习(六)--消费者基于Feign实现声明式REST调用

Feign,空耳"费因(轻声)".是Netfix开发的声明式的HTTP客户端.可以帮助我们更加方便快捷的调用HTTP API.

在SpringCloud中,使用Feign非常简单--引入Feign依赖,创建Feign接口,并在接口上添加对应的注解即可进行接口的调用.

【SpringCloud的openfeign依赖对Feign进行了增强,使得Feign支持了Spring MVC注解,并整合了Eureka和Ribbon】

创建一个基于module的Springboot项目.

在springcloud-demo项目上右键"New"--"Module"

在New Module窗口选择Spring Initializr项,表示创建一个SpringBoot项目

输入自己心仪的项目信息

 在依赖选择中,选择"Web"--"Spring Web",以及"Spring Cloud Discovery"--"Eureka Discovery Client"

创建成功后,项目的结构如下 

consumer-feign项目创建好后,第一步需要引入Feign依赖.

        <dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-openfeign</artifactId>
		</dependency>

第二步,配置application.yml和启动类

application.yml

spring:
  application:
    name: springcloud-consumer-feign
  security:
    user:
      name: shanghai
      password: 111
server:
  port: 8182
eureka:
  instance:
    hostname: localhost
    prefer-ip-address: true
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@localhost:8761/eureka/

ConsumerFeignApplication启动类

第三步,创建Feign接口并指定该接口远程调用的服务虚拟主机名以及接口服务

provider项目根据Id获取用户信息接口如下.

根据provider项目接口编写Feign

至此.UserFeign编写好了,可以直接基于接口进行调用了.

在consumer-feign项目中,创建UserController,并通过UserFeign远程调用provider.

由于Feign默认整合了Ribbon,为了验证consumer-feign是否具备负载均衡的能力,所以provider开启两个实例占用不同的端口.

分别启动eureka,provider,consumer-feign项目,然后进入服务发现中心查看.

输入设置好的basic账号密码

 feign启动了一个实例,占用8182端口.

provider启动了两个实例,分别占用8081和8082端口.

在浏览器上输入 http://localhost:8182/user/{id},多次刷新页面,查看consumer-feign的调用情况

多次刷新页面会发现,consumer-feign是有选择性地调用provider项目的实例.说明Feign是默认整合了Ribbon的.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值