OpenFeign快速入门

前面我们讲 到 Ribbon 做 了 负 载 均 衡 , 用 Eureka-Client 来 做 服 务 发 现 , 通 过RestTemplate 来完成服务调用,但是这都不是我们的终极方案,终极方案是使用 OpenFeign。

2.OpenFeign 简介

https://docs.spring.io/spring-cloud-openfeign/docs/2.2.4.RELEASE/reference/html/#spring-cloud-feign

Feign 是声明性(注解)Web 服务客户端。它使编写 Web 服务客户端更加容易。要使用 Feign,请创建一个接口并对其进行注解。它具有可插入注解支持,包括 Feign 注解和 JAX-RS 注解。

Feign 还支持可插拔编码器和解码器。Spring Cloud 添加了对 Spring MVC 注解的支持,并支持使用 HttpMessageConverters,Spring Web 中默认使用的注解。Spring Cloud 集成了 Ribbon 和 Eureka 以及 Spring Cloud LoadBalancer,以在使用 Feign 时提供负载平衡的 http 客户端。

Feign 是一个远程调用的组件 (接口,注解) http 调用的

Feign 集成了 ribbon —> ribbon 里面集成了 eureka

3.OpenFeign 快速入门

3.1 本次调用的设计图

在这里插入图片描述

在这里插入图片描述
3.2 启动一个 eureka-server 服务,这里不重复演示,参考 eureka文档

3.3 先创建 provider-order-service(提供者),选择依赖

在这里插入图片描述

3.4 provider-order-service 修改配置文件

server:

port: 8081

spring:

application:

name:  provider-order-service

eureka:

client:

service-url:

defaultZone: http://localhost:8761/eureka

instance:

instance-id: ${spring.application.name}:${server.port}

prefer-ip-address: true

3.5 provider-order-service 修改启动类增加一个访问接口

@RestController

public class OrderController {

/**
* 订单服务下单接口

*
* @return
*/

@GetMapping("doOrder")

public String doOrder() {

System.out.println("有用户来下单了");

return "下单成功";
}
}

3 .7 再创建 consumer-user-service,选择依赖

在这里插入图片描述

3.8 consumer-user-service 修改配置文件

server:

port: 8081

spring:
application:

name: consumer-user-service

eureka:

client:

service-url:

defaultZone: http://localhost:8761/eureka

instance:

instance-id: ${spring.application.name}:${server.port}

prefer-ip-address: true

3.9 consumer-user-service 创建一个接口(重点)

/* 
@FeignClient 声明是 feign 的调用

 
 value = "provider-order-service" value 后面的值必须和提供者的服务名一致

*/

@FeignClient(value = "provider-order-service")
public interface UserOrderFeign {

/**
* 描述: 下单的方法 这里的路径必须和提供者的路径一致

*
* @param :
* @return java.lang.String
*/

	@GetMapping("doOrder")
	String doOrder();
}

3.10 consumer-user-service 创建 controller

@RestController
public class UserController {
@Autowired
private UserOrderFeign userOrderFeign;//注入UserOrderFeign的实现类对象(应该是@FeignClient底层实现了->
                                     //我们自定义接口UserOrderFeign的实现类)

/**
* 用户远程调用下单的接口
*/

@GetMapping("userDoOrder")

public String userDoOrder() {

	String result = userOrderFeign.doOrder();

	System.out.println(result);

	return result;
}
}

3.11 consumer-user-service 修改启动类

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients //标记 feign 的客户端

public class ConsumerUserServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerUserServiceApplication.class, args);
}
}

3.12 启动调用测试

在这里插入图片描述

3.13 本次调用总结

consumer-user-service—》 /userDoOrder —》通过 feign 调用 /doOrder —》provider-order-service 下单成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值