SpringCloud之Feign集成Ribbon

news/2024/9/22 21:29:40/

Feign定义【可跳过】

Spring Cloud Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。其英文表意为“假装,伪装,变形”,是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用。

Feign

属于接口编程调用。可以对比Rest方式来实现负载均衡=>这里!!!
修改普通的消费者,变成使用feign的消费者客户端

在这里插入图片描述

1、导入依赖

    <dependencies><!--        实体类 + Web--><dependency><groupId>com.jyl</groupId><artifactId>springcloud-api</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--        热部署--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency><!-- ribbon  & eureka       --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-ribbon</artifactId><version>1.4.6.RELEASE</version></dependency><!-- eureka       --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId><version>1.4.6.RELEASE</version></dependency><!-- feign       --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-feign</artifactId><version>1.4.6.RELEASE</version></dependency></dependencies>

2、创建服务层接口

在服务层接口上添加@FeignClient注解 name= “对应eureka服务界面Application的值”
注意:这里的映射路径要对应提供者控制层提供的访问路径

@FeignClient(name = "SPRINGCLOUD-PROVIDER-DEPT")
public interface DeptClientService {@GetMapping("/dept/get/{id}")public Dept get(@PathVariable("id") Long id);@GetMapping("/dept/list")public List<Dept> getAll();@PostMapping("/dept/add")public boolean add(Dept dept);
}

3、客户端配置文件类

返回的是负载均衡规则,此规则也可以自定义,自定义类需要实现IRule接口

@Configuration  
public class ConfigBean{  @Bean  public IRule randomRule() {  return return new RandomRule(); // 随机}  
}

4、feign实现客户端的控制层

直接自动注入服务层接口,就可以访问到提供者。

@RestController
public class DeptConsumerController {@Autowiredprivate DeptClientService clientService;@GetMapping("/consumer/dept/get/{id}")public Dept get(@PathVariable("id") Long id){return clientService.get(id);}@GetMapping("/consumer/dept/list")public List<Dept> getAll(){return clientService.getAll();}@PostMapping("/consumer/dept/add")public boolean add(Dept dept){return clientService.add(dept);}
}

5、feign客户端启动类

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages = {"com.jyl.springcloud"}) // 扫描到springcloud-api中的sercie包下的DeptClientService接口
public class DeptConsumer_Feign_80 {public static void main(String[] args) {SpringApplication.run(DeptConsumer_Feign_80.class,args);}
}

6、测试结果

启动3个eureka服务、3个提供者和一个feign消费者

在这里插入图片描述

启动类

访问 http://localhost/consumer/dept/list,测试负载均衡,默认是轮询方式。

在这里插入图片描述

获取dept的所有消息


http://www.ppmy.cn/news/1444366.html

相关文章

[Collection与数据结构] PriorityQueue与堆

1. 优先级队列 1.1 概念 前面介绍过队列&#xff0c;队列是一种先进先出(FIFO)的数据结构&#xff0c;但有些情况下&#xff0c;操作的数据可能带有优先级&#xff0c;一般出队列时&#xff0c;可能需要优先级高的元素先出队列&#xff0c;该中场景下&#xff0c;使用队列显然…

设计模式学习笔记 - 项目实战三:设计实现一个支持自定义规则的灰度发布组件(设计)

概述 上篇文章&#xff0c;我们介绍了灰度组件的一个需求场景&#xff0c;将公共服务平台的 RPC 接口&#xff0c;灰度替换为新的 RESTful 接口&#xff0c;通过灰度逐步放量&#xff0c;支持快速回滚等手段&#xff0c;来规避代码质量问题带来的不确定性风险。 跟前面两个框…

彻底理解Python相关的排序方法

左手编程&#xff0c;右手年华。大家好&#xff0c;我是一点&#xff0c;关注我&#xff0c;带你走入编程的世界。 公众号&#xff1a;一点sir&#xff0c;关注领取python编程资料 在Python中&#xff0c;列表排序是一项基础而重要的任务&#xff0c;它允许你对一系列元素进行有…

浏览器——Microsoft Edge

Microsoft Edge 浏览器具有诸多功能特点和使用技巧 核心知识点和实用心得摘要&#xff1a; 性能优化&#xff1a; 睡眠标签&#xff1a;Edge 浏览器引入了睡眠标签功能&#xff0c;旨在降低内存占用和CPU使用率。当标签页长时间未活动时&#xff0c;系统会自动将其置于睡眠状态…

图片懒加载vue

这里只能实现图片的懒加载&#xff0c;不能实现其他的懒加载。 加载插件&#xff1a; npm install vue-lazyload --save在main.js中写入插件 // 图片懒加载 import VueLazyload from "vue-lazyload"; const app createApp(App) app.use(VueLazyload,{preLoad: 1.…

Windows电脑的显存容量查看

要查看Windows电脑的显存容量&#xff0c;可以按照以下步骤进行&#xff1a; 1、通过系统信息查看&#xff1a; 在Windows操作系统中&#xff0c;您可以使用系统信息来查看显存容量。 按下Win键 R打开“运行”对话框&#xff0c;然后输入“msinfo32”并按回车键。 在打开的系…

注意力机制(四)(多头注意力机制)

​&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;《深度学习基础知识》 相关专栏&#xff1a; ⚽《机器学习基础知识》 &#x1f3d0;《机器学习项目实战》 &#x1f94e;《深度学习项目实…

「51媒体」文旅行业邀约媒体宣传应该注意哪些问题?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 在文旅行业邀请媒体做宣传时&#xff0c;要注意以下几点&#xff1a; 口碑很重要&#xff1a;好的评价和推荐能大大吸引游客。 内容要有趣&#xff1a;宣传内容得吸引人&#xff0c;让人…