你现在还不会使用Ribbon嘛?5分钟带你快速了解

WPF Ribbon控件深度解析:命令组织范式与UI架构演进 Ribbon 是一种以用户任务为中心的命令组织范式,源于 Office 2007,后深度集成至 WPF 框架,其本质远超视觉控件,而是对传统 Menu/ToolBar 树状结构的范式重构。它依托 WPF 的 VisualTree、Composition 渲染与 ICommand 绑定机制,实现功能域(Contextual Tabs)、动态分组(RibbonGroup)与状态感知(CanExecute 自动重查)三位一体的 UI 架构。技术价值在于显著降低复杂软件的状态同步成本、提升可发现性(discover 阅读详情

Spring Cloud Ribbon

1 什么是负载均衡

当客户端访问后端服务时,我们可以将服务水平部署多台用以提高整个应用的吞吐量,但是单次请求具体应当访问哪一台服务这就是负载均衡所需要做的事情,它将前端的请求均匀的分布在后端的服务中,在真实场景下由于机器的性能和网络条件不同可以通过配置权重的方式使得请求的分布变得可控,这也是负载均衡所做的事

 

2 Ribbon简介

Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每一个Spring Cloud构建的微服务和基础设施中。因为微服务间的调用,API网关的请求转发等内容,实际上都是通过Ribbon来实现的,包括后续我们将要介绍的Feign,它也是基于Ribbon实现的工具。所以,对Spring Cloud Ribbon的理解和使用,对于我们使用Spring Cloud来构建微服务非常重要。

 

3 入门案例

我们需要注册至少2个以上的服务到注册中心中使得在进行服务调用时提供可负载均衡的实例

 

3.1 新增启动入口

为了可以看到调用情况我们修改/hello接口如下添加一行控制台打印

@GetMapping("/hello")
public String hello(){
    System.out.println("获得请求....");
    return "hello!";
}

 

image-20220313180908732

image-20220313180928533

image-20220313181123769

 

3.2 运行后查看实例

image-20220313181207841

image-20220313181241575

存在两个实例说明注册成功

 

3.3 消费者开启负载均衡

3.3.1 修改启动类
@SpringBootApplication
public class ServiceConsumerApplication {

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

    @Bean
    @LoadBalanced//开启负载均衡
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

代码说明:

1:在RestTemplate注册的bean上面添加 @LoadBalanced注解用以开启负载均衡

 

3.3.2 新增负载均衡方式的接口

在ConsumerController中新增如下接口

@GetMapping("/hello-loadbanlance")
public String hello2(){
    // 1.通过注册中心的服务名构建url
    String url = "http://service-provider/hello";
    // 2.发送请求
    return restTemplate.getForObject(url,String.class);
}

代码说明:

1:url中的service-provider是注册在注册中心的服务提供者的名称,通过这种方式构建的url在restTemplate调用时restTemplate开启的负载均衡才可以生效。

 

3.3.3 启动消费者实例并发起调用

连续请求3次

http://localhost:8002/consumer/hello-loadbanlance

观察两个服务提供者实例的日志情况,可以看到请求被负载均衡到了两个实例中

实例1:

image-20220313182428265

实例2:

image-20220313182448342

 

4 负载均衡策略

4.1 负载均衡策略介绍

Ribbon内置了多种负载均衡策略,内部负责负载均衡的顶级接口为:com.netflix.loadbalancer.IRule ,实现方式如下 :

image-20220313183557783

  • com.netflix.loadbalancer.RandomRule :随机策略
  • com.netflix.loadbalancer.RetryRule :重试策略
  • com.netflix.loadbalancer.RoundRobinRule :以轮询的方式进行负载均衡
  • com.netflix.loadbalancer.WeightedResponseTimeRule :权重策略,会计算每个服务的权
    重,越高的被调用的可能性越大
  • com.netflix.loadbalancer.BestAvailableRule :最佳策略,遍历所有的服务实例,过滤掉
    故障实例,并返回请求数最小的实例返回
  • com.netflix.loadbalancer.AvailabilityFilteringRule :可用过滤策略,过滤掉故障和请
    求数超过阈值的服务实例,再从剩下的实例中轮询调用(默认)

在服务消费者的application.yml配置文件中修改负载均衡策略,格式:

{服务提供者名称}.ribbon.NFLoadBalancerRuleClassName

 

4.2 负载均衡策略配置

在消费者服务端配置文件中添加如下配置

service-provider: # 服务提供者在注册中心的服务名
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #负载均衡策略,此处为随机

重启服务,并连续多次调用,可以看到此时两个提供者被调用的次数并不平衡,说明策略配置生效:

实例1:

image-20220313184254421

 

实例2:

.netflix.loadbalancer.RandomRule #负载均衡策略,此处为随机


重启服务,并连续多次调用,可以看到此时两个提供者被调用的次数并不平衡,说明策略配置生效:

实例1:

[外链图片转存中...(img-OvS3JDbA-1648308260872)]

 

实例2:

![image-20220313184318669](https://img-blog.csdnimg.cn/img_convert/c07b5ac3a41e4856eed4e9e865bb623d.png)
C# 量子级跨平台开发:用Uno Platform实现Windows、iOS、Android的“量子纠缠”UI同步 墨瑾轩推出编程学习平台,通过XAML的“量子纠缠”技术,实现跨平台开发的高效与一致性。传统方案中,多平台代码重复率高,UI差异大,而量子级方案则通过一套代码构建全平台应用,UI原子化同步,开发效率提升5倍。Uno Platform的“量子纠缠”架构解决了代码碎片化、性能瓶颈和调试难题,实现UI原子化同步、性能提升300%和跨平台数据无缝同步。核心架构包括XAML的跨平台渲染、MVVM的量子叠加态架构、平台差异的量子退相干处理以及性能优化的量子隧穿效应,为开发者提供高效、一致的跨平台开发体验。 阅读详情

相关推荐

process插件_利用SPSS 插件MLmed检验多水平中介的调节模型

本文介绍一个SPSS插件,用于检验多水平中介的调节,及该方法与Mplus的比较。1 Mlmed 简介及安装Mlmed 简介: Mlmed 由Rockwood 2017年开发,基于SPSS插件计算Multilevel moderated mediation. 可以提供multilevel mediation Monte Carlo 置信区间比如(模拟20000次),以及多水平调节的...

weixin_39976081的博客 5773

详解Ribbon

一文聊明白spring cloud Ribbon

BugMan的博客 3108

Unity3D安装:离线安装 Unity

Unity 下载助手 (Download Assistant) 支持离线部署。在这种部署方式中,可下载用于安装 Unity 的所有文件,然后生成脚本以便在未接入互联网的其他计算机上重复相同的安装。运行下载助手,并在一台计算机上正常安装 Unity。此计算机必须有足够的可用磁盘空间来下载所有文件。单击下拉选单并选择 __Custom__,然后选择要将文件下载到的位置。打开 PC 的文件管理器,导航到之前指定的自定义位置文件夹,然后在该文件夹内查找。整理翻译,转载请注明出处!

ygtu2018的博客 3255

探索清晰文档的奥秘:Robbin——强大文档图像二值化工具

探索清晰文档的奥秘:Robbin——强大文档图像二值化工具 robinRObust document image BINarization项目地址:https://gitcode.com/gh_mirrors/ro/robin 在数字化时代的浪潮中,文档处理无疑是信息交流的关键环节。而Robin,正是这一领域的新兴明星,一个以Python编写的健壮文档图像二值化工具,它不仅简化了文献和古籍的...

gitblog_00033的博客 518

Mediapipe手势识别实战——基于关节角度计算实现动态手势分类

本文详细介绍了如何利用Mediapipe进行手势识别,通过计算手指关节弯曲角度实现动态手势分类。文章从基础原理出发,讲解了关节角度计算的数学方法,并提供了Python实现代码。同时,还分享了数字手势和OK手势的识别实战经验,以及性能优化和工程实践中的关键技巧,帮助开发者快速掌握实时手势识别技术。

weixin_26891599的博客 403

无人自行车平衡控制:最小二乘法动态零点拟合实践

本文探讨了无人自行车平衡控制中动态零点的重要性及实现方法。通过最小二乘法拟合车头角度与ROL值的线性关系,解决了固定零点在转向时导致的稳定性问题。实践表明,动态零点拟合能显著提升系统平衡稳定性并降低能耗。

uran的专栏 660

Ribbon的入门使用总结

简介: Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。 通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。 Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每一个Spring Cloud构建的微服务和基础设施中。因为微服务间的调用,API网关的请求转发等内容,实际上都是通过R

weixin_38650898的博客 1640

OpenClaw 3.13 + Mac mini M4 集成 qmd 记忆存储:qmd embed 卡死 / 报错 sqlite-vec 不可用 终极解决教程

模型加速让 qmd 从国内镜像下载模型,避免网络超时;SQLite 扩展支持:修改 qmd 源码后,Bun 不再使用内置 SQLite,而是调用 Homebrew 安装的,该版本支持接口,可正常加载vec0.dylib向量扩展;OpenClaw 3.13 适配:核心逻辑与 OpenClaw 3.13 的 qmd 记忆调用逻辑完全兼容,无需额外调整;sqlite-vec 加载:qmd 自动通过sqlite-vec包获取vec0.dylib路径,调用完成向量扩展加载,实现高效向量搜索。

wuanxionglidui的博客 1304

Ribbon入门使用(跟B站周阳老师学习SpringCloud2.0笔记)

Ribbon入门使用(跟B站周阳老师学习SpringCloud2.0笔记)

weixin_47339733的博客 1589

别再死记硬背窗函数公式了!用MATLAB实战汉宁窗FIR滤波器,从频谱图看懂‘主瓣’和‘旁瓣’

本文通过MATLAB实战演示汉宁窗FIR滤波器的设计过程,帮助读者从频谱图直观理解主瓣与旁瓣的特性。文章详细对比了矩形窗与汉宁窗的频谱差异,并提供了高通滤波器设计的完整代码示例,适用于数字信号处理学习和工程应用。

weixin_30555125的博客 490

(南京观海微电子)——TCON介绍

TCON又称:逻辑板,控制板,在液晶电视里的作用和CRT中的视放板相当,但有本质的区别,逻辑板不是一个纯粹的信号放大器,它输入是LVDS格式信号,而不是RGB。逻辑板的作用是把数字板送来的LVDS或TTL图像数据信号,时钟信号进行处理移位寄存器存储将图像数据信号,时钟信号转换成屏能够识别的控制信号行列信号RSDS控制屏内的MOSFET管工作而控制液晶分子的扭曲度。目前国内主要的TCON板生产商有视显光电。传统TCON的布局主要分为以下两种:X+C分离式和X+C一体式。

m0_75095200的博客 3834

qtcanpool 知 07:Ribbon

Ribbon 是一种以面板及标签页为架构的用户界面(User Interface),原先出现在 Microsoft Office 2007 后续版本的 Word、Excel 和 PowerPoint 等组件中,后来也被运用到 Windows 7 的一些附加组件等其它软件中,如画图和写字板,以及 Windows 8/10 中的资源管理器。...

canpool 1351

【75】OpenCV C++实战篇——OpenCV 图像拼接、全景拼接(教程合集)

本文整理了OpenCV实现图像拼接的技术教程合集,涵盖C++和Python两种语言实现方案。图像拼接技术旨在将多张重叠图像融合为无缝全景图,既扩大视角又保持高分辨率。内容包含水平矫正等关键步骤(附对比效果图),提供多个实战案例的完整代码和详细讲解,涉及单应性矩阵、图像变换等核心技术。不同案例展示了从两张到多张图像的拼接效果,适合不同层次的学习者参考实践。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 528

5分钟带你快速了解微服务负载均衡之Ribbon

5分钟带你快速了解Ribbon Ribbon介绍 Spring Cloud Ribbon是基于Netflix Ribbon实现的—套客户端负载均衡的工具。 主要功能是提供客户端的软件负载均衡算法和服务调用。 Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。 简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助我们基于某种规则(如简单轮询,随机连接等)去连接这些机器。并且我们很容易使用Ribbon实现自定义的负载均衡算法。 负载均衡(Lo

qq_41389482的博客 753

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Ribbon - 快速上手:5 分钟在 Spring Boot 中集成 Ribbon

Ribbon是一个由Netflix开源的客户端负载均衡器,能帮助微服务架构实现高可用性和可扩展性。本文提供了5分钟快速在Spring Boot中集成Ribbon的指南,通过创建服务提供者和消费者两个模块,展示如何使用Ribbon实现客户端负载均衡。文章详细介绍了Ribbon的核心概念、优势,以及服务提供者和消费者的搭建过程,包括环境准备、项目结构、配置文件和代码实现。虽然Ribbon已被Spring官方推荐使用LoadBalancer替代,但学习其原理仍有助于理解客户端负载均衡机制。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

QRibbon:Qt开发者的终极Ribbon菜单栏解决方案,5分钟快速集成指南

QRibbon是一款基于Qt实现的Ribbon风格菜单栏组件,它通过定制QTabWidget并结合QSS样式表技术,帮助开发者快速为Qt应用程序打造现代化界面。其核心优势在于**不侵入业务逻辑**,只需在常规QMainWindow开发流程基础上添加一行代码即可完成集成,特别适合追求界面美观与开发效率的Qt开发者。 ## 🎨 为什么选择Ribbon风格界面? 传统的Qt菜单栏在功能日益复杂的应

gitblog_00487的博客 1084

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

5分钟学会Ribbon负载均衡

学习ribbon,一篇就够了

jc15274630894的博客 998

GitHub-fork-ribbon-css:5分钟快速为网站添加GitHub Fork丝带

想要为你的开源项目网站添加一个专业的GitHub Fork丝带吗?GitHub-fork-ribbon-css是一个纯CSS实现的解决方案,让你在短短5分钟内就能为网站添加精美的GitHub Fork丝带装饰。这个轻量级的CSS库无需JavaScript,完全响应式设计,为你的开源项目增添专业外观。 ## 🎯 为什么选择GitHub-fork-ribbon-css? GitHub-fork-

gitblog_00456的博客 954

Ribbon入门教程:5分钟快速搭建你的第一个负载均衡客户端

Ribbon是一个强大的**进程间通信库**,内置了智能的软件负载均衡器。无论你是构建微服务架构还是需要处理分布式系统调用,Ribbon都能提供可靠的支持。本文将手把手教你如何在5分钟内快速搭建第一个Ribbon负载均衡客户端,让你轻松掌握这一核心技术。 ## 什么是Ribbon负载均衡? Ribbon是Netflix开源的一款客户端负载均衡器,它能够在客户端实现服务发现和负载均衡功能。与传统

gitblog_00380的博客 344

如何快速集成SARibbon到Qt项目?5分钟上手教程

SARibbon是一款为Qt框架设计的Ribbon控件库,能够帮助开发者快速构建现代化的Office风格界面。本文将带你通过简单几步,在5分钟内完成SARibbon的集成与基础使用,让你的Qt应用瞬间提升专业质感! ## 1. 准备工作:获取SARibbon源码 首先需要将SARibbon仓库克隆到本地: ```bash git clone https://gitcode.com/gh_mir

gitblog_00855的博客 806

BowPad终极配置指南:5分钟快速上手Ribbon界面文本编辑器

BowPad轻量级文本编辑器是一款基于Windows平台的现代化编辑工具,以其简洁的Ribbon界面和强大的功能受到开发者青睐。本文将为你提供从安装到精通的完整指南,解决你在使用过程中可能遇到的各种问题。 ## 🎯 安装前检查清单 在开始安装BowPad之前,请确保你的系统满足以下要求: | 系统要求 | 最低配置 | 推荐配置 | |---------|---------|-------

gitblog_00547的博客 806

SpringCloud微服务实战:5分钟搞定Eureka注册中心与Ribbon负载均衡

本文提供了一套极简的SpringCloud微服务实战方案,旨在5分钟内快速搭建包含Eureka注册中心与Ribbon负载均衡的演示环境。通过详尽的步骤讲解,涵盖Eureka Server秒级配置、服务提供者动态注册与热部署技巧,以及Ribbon的透明化集成与负载均衡实践,帮助开发者高效验证核心组件并构建服务治理骨架。

coffee的博客 518

Obsidian Iconic快速上手:如何5分钟安装并完成你的第一次图标更换

Obsidian Iconic 是一款免费开源的 Obsidian 图标自定义插件,让你不用写一行 CSS,直接在界面里更换标签页、文件、文件夹、书签、标签、属性和 Ribbon 命令的图标与颜色。内置 1700+ Lucide 图标和 1900+ 表情符号,还能用规则手册按文件名、扩展名、标签等条件自动批量换图标。跟着本文,5 分钟完成安装并换上你的第一个图标! [![Obsidian Ico

gitblog_01175的博客 1046

Spring Cloud 5分钟搭建教程

1.前言: 1.1.以下内容是我通过阅读官方文档,并成功实践后的经验总结,希望能帮助你更快地理解和使用Spring Cloud. 1.2.默认读者已经熟练掌握Spring 全家桶,Spring Boot和注解开发. 1.3.陆续更新 2.开发环境: @Deprecated 2.1.开发工具:idea 2.2.开发环境:jdk1.7 2.3.Spring版...

weixin_33941350的博客 161

Excel-DNA快速上手:10分钟创建你的第一个Excel函数库

Excel-DNA是一个免费且简单的.NET库,让开发者能够轻松地为Excel创建自定义函数和插件。本文将带你快速入门,在短短10分钟内完成你的第一个Excel函数库开发。 ## 准备工作:环境搭建 要开始使用Excel-DNA,你需要准备以下环境: - Windows操作系统 - Excel 2007或更高版本 - .NET Framework 4.5.2或更高版本 - Visual Stu

gitblog_00069的博客 559

别再手动改后缀了!用UI编辑器5分钟搞定Excel Ribbon自定义(附中文界面教程)

本文介绍如何利用UI编辑器快速自定义Excel Ribbon功能区,告别繁琐的XML手动修改。通过可视化操作界面,5分钟即可完成功能区定制,特别适合VBA新手。教程涵盖工具安装、中文界面实现、高级功能实战及常见问题解决方案,显著提升工作效率。

weixin_30875157的博客 229
上一篇: 注册中心Consul
下一篇: 你必须会的微服务之Feign
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值