SpringCloud之Feign集成Ribbon

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.mzph.cn/bicheng/3400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jmeter固定定时器,生效是在请求发送前还是发送后

一、结论 先说结果&#xff0c;是生效在请求发送前 二、背景 在压测流程的时候&#xff0c;生成订单后紧接着调订单查询接口&#xff0c;查询不到&#xff0c;报错率还挺高的,原因肯定是主从延迟&#xff0c;但是DBA非说延时1s内是正常的&#xff0c;在CPU耗用在40%以内的情…

IDM下载器_Internet Download Manager 6.42.7

网盘下载 IDM下载器是一款针对互联网所打造的下载管理器。IDM下载器能将下载速度提高5倍&#xff0c;恢复因丢失的连接&#xff0c;网络问题&#xff0c;计算机关闭或意外断电而重新启动中断或中断的下载。IDM下载器还可支持所有流行的浏览器&#xff0c;以使用独特的“高级浏…

【打工日常】云原生之部署私有化个人工作云盘

一、FileGator介绍1.FileGator简介FileGator是一个免费开源自托管的Web应用程序,用于管理文件和文件夹,部署在自己的服务器上,解放笔记本的压力,随时随地的能看到自己的文件,并且可以共享,方便团队的协作,更有利于个人工作的开展。2.FileGator功能管理本地存储库文件夹中…

视频改字祝福 豪车装X系统源码uniapp前端源码

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 uniapp视频改字祝福 豪车装X系统源码 全开源。 创意无限&#xff01;AI视频改字祝福&#xff0c;豪车装X系统源码开源&#xff0c;打造个性化祝福视频不再难&#xff01; 想要为你的…

RealSenseSR300工程环境配置说明

新建目录结构如下&#xff1a; output:存储可执行文件.exe等src:存储源码.cpp .h等3rdparty:存储第三方库 opencv等 其中将源码按照main及其相关文件分为以下三类 vs2015许可证到期后先激活&#xff0c;激活码很多网上有&#xff0c;如&#xff1a;HMGNV-WCYXV-X7G9W-YCX63…

开发Chrome插件入门

开发Chrome插件&#xff08;也称为Chrome扩展&#xff09;是一个相对直接的过程&#xff0c;尤其对于已经熟悉HTML、CSS、JavaScript的前端开发者而言。以下是开发Chrome插件的基本步骤和示例&#xff1a; 1. 准备工作 首先&#xff0c;确保你有一个适合开发的环境。通常这意…

2024.4.25

#include <iostream> #include <iomanip> using namespace std; class Person{const string name;int age;char sex; public:Person(const string name):name(name){cout << "第一个Person构造函数" << endl;}Person():name("zhangsan&…

java语言基础面试题(一)

面试题1&#xff1a;简述Java的主要特性。 回答&#xff1a;Java的主要特性包括面向对象、跨平台性&#xff08;通过JVM实现&#xff09;、自动内存管理&#xff08;垃圾回收机制&#xff09;、丰富的API和安全性高。 面试题2&#xff1a;解释Java中的多态性。 回答&#xf…

3.7设计模式——Observer 观察者模式(行为型)

意图 定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于他的对象都得到通知并被自动更新。 结构 Subject&#xff08;目标&#xff09;知道它的观察者&#xff0c;可以有任意多个观察者观察同一个目标&#xff0c;提供注册和删…

快速入门基础控制台API

目录 一、什么是win32API 二、API基础函数介绍 2.1控制台基础命令 2.1.1标题修改 2.1.2长宽修改 2.1.3坐标 2.2GetStdHandle 2.3GetConsoleCursorInfo 2.4SetConsoleCursorInfo 2.5SetConsoleCursorPosition 2.6GetAsyncKeyState 三、API函数综合应用 3.1设置光标…

C语言案例——输出 Fibonacci 数列(斐波那契数列)的前 40 项

目录 斐波那契数列待续、更新中 斐波那契数列 输出 Fibonacci 数列&#xff08;斐波那契数列&#xff09;的前 40 项 #include <stdio.h> void main() {int a[40] {1,1};int i;printf( "%12d%12d",a[0],a[1]);for(i2; i<40; i){a[i]a[i-1]a[i-2];printf( &q…

IDEA-关于idea在import类时,代码报红的解决方法,找不到包

关于idea在import类时&#xff0c;代码报红的解决方法_idea import报红-CSDN博客

软件企业质量保证的基石――QA,QC的良性协作

软件企业质量保证的基石――QA、QC的良性协作 国内的软件产业发展了20多年的时间&#xff0c;已经由个人英雄时代步入到中、小团队协作时代。相信不久的将来&#xff0c;国内一定会出现航母级的软件企业&#xff0c;那时候我们会迎来集团军作战的时代。不同的时代表明软件规模…

[svelte]组件怎么进行状态共享

前面提到的svelte stores是一种用于管理应用程序状态的机制&#xff0c;它可以在不同组件之间共享状态&#xff0c;但就可能会有这样子的疑问&#xff0c;难道一定要通过stores来传递属性的状态吗 Props&#xff08;属性&#xff09; 最简单的方法是通过将状态作为属性传递给子…

OceanBase 分布式数据库【信创/国产化】- OceanBase 概述

本心、输入输出、结果 文章目录 OceanBase 分布式数据库【信创/国产化】- OceanBase 概述前言OceanBase 数据更新架构高可用高兼容水平扩展低成本实时 HTAP安全可靠OceanBase 分布式数据库【信创/国产化】- OceanBase 概述 编辑 | 简简单单 Online zuozuo 地址 | https://blog.…

[C/C++] -- C++11相关内容

一&#xff1a;声明 auto: auto 是 C11 引入的一个关键字&#xff0c;用于自动推断变量的类型。通过使用 auto&#xff0c;编译器可以根据变量的初始化表达式推断其类型&#xff0c;从而减少代码中的重复冗长的类型声明。 简化模板声明&#xff1a; for(auto p vec.begin(…

Pandas 2.2 中文官方教程和指南(二十五·二)

新列 使用 DataFrame.map&#xff08;以前称为 applymap&#xff09;高效动态创建新列 In [53]: df pd.DataFrame({"AAA": [1, 2, 1, 3], "BBB": [1, 1, 2, 2], "CCC": [2, 1, 3, 1]})In [54]: df Out[54]: AAA BBB CCC 0 1 1 2 1…

用html写一个旋转菜单

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>旋转菜单</title><link relstylesheet href"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css"&…

【Nginx】(五) Nginx作为微服务API网关的配置与应用

在微服务架构中&#xff0c;API网关是一个至关重要的组件&#xff0c;它不仅负责路由请求到正确的服务&#xff0c;还提供负载均衡、认证授权、限流、监控和日志记录等功能。在本博客中&#xff0c;我们将探讨一个在线教育平台如何使用Nginx作为API网关来解决流量管理和安全问题…

Linux操作

一&#xff1a;各类操作快捷键 Ctrl c强制停止程序运行用于删除命令&#xff0c;执行出错时使用Ctrl d退出或者登出用于退出Linux账户 | 退出Linux自带的Python模式(命令框输入&#xff1a;python进入)history查看历史命令用于查看历史命令Ctrl r历史命令搜索进入后面在 内…