构建基于 Feign 的微服务:从 Eureka 到负载均衡的实践 --day05

Feign,由Netflix打造的声明式HTTP客户端,提供了一种简便的方式来进行服务调用。

结合Eureka和Ribbon,Feign不仅具备了服务发现的机制,还实现了负载均衡功能。

通过Feign,开发者仅需定义接口并利用注解配置,便可轻松实现对服务接口的绑定。

这极大地简化了使用Ribbon封装服务调用的过程。

因此,Feign可被视为Spring Cloud中的一种框架工具,旨在减少编码量,同时提升与远程服务的兼容性和交互效率。

第一个Feign程序
步骤:

1.搭建Eureka Server

2.创建服务提供者

3.创建Feign客户端

4.测试运行

步骤1:创建父工程feign-1

将搭建的Eureka基本应用中的3个子项目都复制到feign-1父工程中,并依次添加为Maven项目。
在这里插入图片描述

步骤2:改造服务提供者

在服务提供者eureka-provider中创建controller包,并在该包下创建HelloController类,该类定义了一个sayHello ()方法,用于处理路径为/hello的请求。

HelloController类的内容如下:

在这里插入图片描述

@RestController
public class HelloController {
   
    @RequestMapping(value = "/hello",method = RequestMethod.GET)
    public String say(){
   
        return "feign!";
    }
}

在Spring Framework中,@GetMapping实际上是@RequestMapping的一个专门化子注解,主要用于处理HTTP的GET请求。

这一注解是在Spring Framework的4.3版本中引入的,目的在于提升代码的语义清晰度和可读性。

接下来,我们来对比一下这两个注解的使用:

使用 @RequestMapping

@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String say() {
   
    return "feign!";
}

这里,@RequestMapping 注解指定了 URL 路径 /hello 并且限定了只有 GET 请求才会触发此方法。

使用 @GetMapping

@GetMapping("/hello")
public String say() {
   
    return "feign!";
}

@GetMapping作为@RequestMapping针对GET请求的特定版本,它默认只处理GET请求,因此无需显式设置method属性。

这样不仅使代码更加简洁,也使得其意图更为明显和直接。

两者在功能上是等价的,但是 @GetMapping 提供了更好的语义表达力。

步骤3:改造服务消费者为Feign客户端

(1)添加Feign依赖

在eureka-consumer项目的pom文件中,我们需要添加Feign依赖。

  <dependency>

      
评论 49
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布说在见

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值