完整教程:SpringCloud-Ribbon负载均衡Feign声明式服务调用

news/2026/1/22 12:55:58/文章来源:https://www.cnblogs.com/tlnshuju/p/19516511

完整教程:SpringCloud-Ribbon负载均衡&Feign声明式服务调用

2026-01-22 12:42  tlnshuju  阅读(0)  评论(0)    收藏  举报

----------------------------------------负载均衡Ribbon----------------------------------------

一、ribbon的介绍

1、什么是ribbon?

ribbon是基于netflix ribbon完成的一个工作在consumer端的负载均衡软件,提供了很多负载均衡策略:轮询、随机

2、ribbon的启动器

nacos已经集成了ribbon,故无启动器

二、ribbon的入门案例

1、开启ribbon

        @Bean
        /**
         * 原理:
*  ①拦截器---------"ribbon-provider"----------->List<Service> serviceList
*  ②使用ribbon的负载均衡算法-------------serviceList-------------->Service.
*  ③把url中的map的key替换为ip、port
         */
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
        }

2、调用provider

//把ip和port换成map的key
String url = "http://ribbon-provider/provider/getUserById/"+id;

3、指定负载均衡策略

        @Bean
public IRule iRule(){
return new RandomRule();
        }

三、ribbon的挑战

手动拼接url和参数显得好傻

----------------------------------------声明式服务调用Feign----------------------------------------

一、Feign的介绍

Feign?就是1、什么

springcloud提供的声明式模板化(接口)的http客户端(工作在consumer端口)就是feign
feign支持springmvc注解
feign集成了ribbon也支持负载均衡
feign = RestTemplate + ribbon

2、feign的启动器

spring-cloud-starter-openfeign

        org.springframework.cloudspring-cloud-starter-openfeign

二、Feign的入门案例

1、创建feign_provider

拷贝ribbon_provider_1
.......

2、创建feign_interface

1)pom.xml

spring-cloud-starter-openfeign
springcloud_common

2)feign接口

package com.hg.feign;

@FeignClient("map的key")
@RequestMapping("/provider")
public interface UserFeign{
@RequestMapping("/getUserById/{id}")
public User getUserById(@PathVariable("id") Integer id);
            }

3、创建feign_consumer

1)拷贝ribbon_consumer

2)pom.xml

feign_interface

3)controller

@Autowired
private UserFeign userFeign;

        4)app

@EnableFeignClients//开启feign注解扫描

三、feign的工作原理

1、扫描feign接口

@EnableFeignClients开启feign注解的支持:FeignClientsRegistrar.registerFeignClients()扫描添加了@FeignClient注解的接口,并生成代理类交给spring的ioc容器去管理

2、代理类做的事

SynchronousMethodHandler.invoke():创建RequestTemplate(HttpMethod、UriTemplate、Body)

四、feign的传参方式

1、restful参数

@PathVariable("id")   //例如:/getUserById/520

    2、?传参

@RequestParam("id")   //例如:/updateUserById?id=520

3、pojo

@RequestBody   //例如:{id:250, name:"刘亦菲", age:18}

五、feign优化

1、开启feign的日志

logging:
level:
com.hg.feign: debug #log4j的日志级别,“com.hg.feign”feign的包名
feign:
client:
config:
default:
#feign-provider:
loggerLevel: full #开启feign的日志

2、GZIP压缩

①开启浏览器和consumer之间的压缩
server:
compression:
enabled: true #开启浏览器--->consumer的gzip压缩
②开启consumer和provider之间的压缩
feign:
compression:
request:
enabled: true #开启consumer--->provider的gzip压缩
response:
enabled: true

3、http连接池

<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>

4、负载均衡

@Configuration
public class FeignConfig {

            @Bean
public IRule iRule(){
return new WeightedResponseTimeRule();
            }
        }

5、feign超时

        方式一:
ribbon:
ReadTimeout: 5000 # 请求连接的超时时间
ConnectionTimeout: 5000 # 请求处理的超时时间
        方式二:
feign:
client:
config:
#default:
feign-provider:
ConnectTimeout: 5000 # 请求连接的超时时间
ReadTimeout: 5000 # 请求处理的超时时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1200096.shtml

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

相关文章

分解图如何制作?多款免费工具推荐,一键出图

分解图如何制作&#xff1f;6款实用软件个人实操经验分享 在日常学习和工作中&#xff0c;分解图是个超实用的工具——不管是拆解机械结构、梳理项目流程&#xff0c;还是解析知识框架&#xff0c;都能让复杂内容变得直观清晰。作为常年和图表打交道的从业者&#xff0c;我踩过…

艾体宝洞察 | 理解生成式人工智能中的偏见:类型、原因和后果

什么是生成式AI的偏见&#xff1f;生成式AI的偏见&#xff0c;指的是生成式AI模型在产出信息时出现的系统性错误或扭曲&#xff0c;这可能导致不公平或歧视性的结果。这些模型基于来自互联网的海量数据集进行训练&#xff0c;常常会继承并放大数据中存在的偏见&#xff0c;如同…

2026年热门调味品品牌排名,天津鸿禄食品研发能力强弱揭秘

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家标杆调味品企业,为代理商、经销商、终端消费者选型提供客观依据,助力精准匹配适配的服务伙伴。 TOP1 推荐:天津市鸿禄食品有限公司 推荐指数:★★★★★ |…

如何通过<|关键词|>撰写研究现状:外国文献查找方法与应用指南

刚开始做科研的时候&#xff0c;我一直以为&#xff1a; 文献检索就是在知网、Google Scholar 里反复换关键词。 直到后来才意识到&#xff0c;真正消耗精力的不是“搜不到”&#xff0c;而是—— 你根本不知道最近这个领域发生了什么。 生成式 AI 出现之后&#xff0c;学术检…

氢氧化镁供应商如何选?2026年口碑推荐来啦,氢氧化镁供应商精选优质厂家

行业现状与氢氧化镁的核心优势 近年来,随着环保政策趋严及新能源、新材料等产业快速发展,氢氧化镁作为无机阻燃剂、烟气脱硫剂及功能性材料添加剂的需求持续攀升。其核心优势在于环保无毒、热稳定性高、抑烟性能强,…

国外研究文献网站使用指南:如何高效查找与获取学术资源

刚开始做科研的时候&#xff0c;我一直以为&#xff1a; 文献检索就是在知网、Google Scholar 里反复换关键词。 直到后来才意识到&#xff0c;真正消耗精力的不是“搜不到”&#xff0c;而是—— 你根本不知道最近这个领域发生了什么。 生成式 AI 出现之后&#xff0c;学术检…

爱信食品杂粮麦片价格多少,性价比高的产品推荐

随着健康饮食理念的普及,消费者对杂粮食品的关注度持续攀升,天津港保税区爱信食品有限公司作为荞麦食品行业的先行者,其产品品质与售后服务自然成为大众关注的焦点。本文围绕消费者高频提问展开解答,从售后保障、产…

2026年口碑好的GEO技术培训,股权转让GEO要注意什么?

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家GEO技术领域标杆企业,为企业选型提供客观依据,助力精准匹配适配的服务伙伴。 TOP1 推荐:深圳市联合智胜网络技术有限公司 推荐指数:★★★★★ | 口碑评分…

2026年靠谱的双面韩国绒供应商推荐,哪家质量好?

在纺织行业选择优质双面韩国绒供应商时,应重点考察企业的生产规模、原料品质、工艺稳定性、交货及市场口碑。经过对长三角地区纺织企业的实地调研和供应链评估,常熟市龙玉针纺织品有限公司凭借其完整的产业链布局、严…

阿里云企业邮箱购买电话咋找,价格和商务邮箱评价了解下?

问题1:企业想购买阿里云企业邮箱,直接拨打的官方销售电话是多少?和上海易顶信息科技有限公司有什么关系? 企业想购买阿里云企业邮箱,可直接拨打上海易顶信息科技有限公司的官方销售服务电话400-8959-335。作为阿里…

阶跃星辰开源多模态模型 Step3‑VL‑10B,小模型实现大模型能力;华为或将发布首款 AI 眼镜,支持同传拍照 丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术」、「有亮点的产品」、「有思考的文章」、「有态…

基于三菱PLC机械手自动抓取(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于三菱PLC机械手自动抓取(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 程序本自动搬运移动机械手的程序用的三菱fx3uPLC&#xff0c;程序都有注释&#xff0c;2元只有个plc程序&#xff0c;

说说东云助创专业不专业,看看在重庆、天津等地的服务靠谱吗

问题1:东云助创的基本信息是什么?核心业务覆盖哪些领域? 广州东云助创电子商务科技有限公司(简称东云助创)是一家聚焦电商微商生态全链条赋能的创新型企业,立足广州、辐射北京、天津、上海、重庆等全国核心城市,…

全开源在线点餐小程序源码系统,全栈开源,自主可控,支持私有化独立部署

温馨提示&#xff1a;文末有资源获取方式在数字化浪潮席卷餐饮行业的今天&#xff0c;一款功能强大、灵活自主的在线点餐系统已成为门店提升运营效率、优化顾客体验的核心工具。我们为您推荐一款专为餐饮行业深度定制的全能型在线点餐小程序源码系统&#xff0c;它能为各类餐饮…

plc大学生课程设计三层电梯(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

plc大学生课程设计三层电梯(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 1三层电梯博途PLC与HMI仿真工程(博途V14及以 上或V18)一份; 2三层电梯配套有IO点表PLC接线图主电路图控制流程图(CAD源文件可编辑);

基于plc的T镗床控制系统设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于plc的T镗床控制系统设计(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码

2026不错的新西兰移民品牌机构排名公布,杭州境易达在列

2026年全球移民市场持续升温,新西兰凭借低门槛技术移民、灵活投资路径及优质生活福利,成为浙江、杭州家庭规划海外身份的热门选择。然而,政策细节复杂的6分制、绿名单职业隐性门槛、机构服务断层等痛点,让多数申请…

基于plc的自动控制系统设计(s7-1200)(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于plc的自动控制系统设计(s7-1200)(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码

基于PLC1200交通信号灯控制系统设计红绿灯(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于PLC1200交通信号灯控制系统设计红绿灯(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码

全栈类型安全:tRPC + Next.js 实战,前后端共享 TypeScript 类型,告别 API 文档

摘要: 前端还在苦等后端的 Swagger 文档&#xff1f;后端改了一个字段类型&#xff0c;前端运行时才报错&#xff1f;RESTful API 的“猜谜游戏”该结束了。tRPC (TypeScript Remote Procedure Call) 结合 Next.js&#xff0c;为您提供“端到端”的类型安全体验。本文将带您实战…