当前位置: 首页 > news >正文

SpringCloud——Ribbon

请添加图片描述
个人名片:

博主:酒徒ᝰ.
个人简介沉醉在酒中,借着一股酒劲,去拼搏一个未来。
本篇励志国庆小长假,一起学Java

请添加图片描述
本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 点击观看

目录

  • 简介
  • 一、负载均衡策略
  • 二、饥饿加载
  • 三、知识点
    • 1.IRule
    • 2.优势

简介

Ribbon是一种以面板及标签页为架构的用户界面),原先出现在Microsoft Office 2007后续版本的Word、Excel和PowerPoint等组件中,后来也被运用到Windows 7的一些附加组件等其它软件中,如画图和写字板,以及Windows 8中的资源管理器。ESRI推出的ArcGIS Explorer 9.4也采用这种界面。它是一个收藏了命令按钮和图标的面板。它把命令组织成一组“标签”,每一组包含了相关的命令。每一个应用程序都有一个不同的标签组,展示了程序所提供的功能。在每个标签里,各种的相关的选项被组在一起。设计Ribbon的目的是为了使应用程序的功能更加易于发现和使用,减少了点击鼠标的次数。

有些标签,被称为“上下文相关标签”,只当特定的对象被选择时才显示。上下文相关标签只展示那些获得焦点的对象的特定功能,在对象没有被选定的时候是隐藏的。

一、负载均衡策略

  1. 在启动类中配置IRule,先配置随机方式
/**
 * 负载均衡配置IRule
 * @return
 */
@Bean
public IRule iRule(){
    //返回  随机
    return new RandomRule();
}
  1. 在application.yml添加
userservice:
 ribbon:
  NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则 随机

二、饥饿加载

Ribbon默认使用懒加载,这种情况在用户第一次访问的时候,耗时比较长。
建议使用懒加载,在项目启动的时候完成加载,降低第一次访问时耗。

ribbon:
  eager-load:
    enabled: true # 开启饥饿加载
      clients: 
      - userservice # 指定饥饿加载服务名称

三、知识点

1.IRule

接口,选择负载均衡算法
● RoundRobinRule:轮询(默认)
● RandomRule:随机
● RetryRule:重试(先按照轮询规则获取服务,如果获取服务失败则在指定时间内进行重试)

@Configuration
public class MyRuleConfig {
    
    @Bean //修改轮询规则为随机
    public IRule iRule(){
        return new RandomRule();//随机
    }
}

2.优势

跟传统的菜单式用户界面相比较,Ribbon界面的优势主要体现如下几个方面:

1、所有功能有组织地集中存放,不再需要查找级联菜单、工具栏等等 ;
2、更好地在每个应用程序中组织命令;
3、提供足够显示更多命令的空间;
4、丰富的命令布局可以帮助用户更容易地找到重要的,常用的功能;
5、可以显示图示,对命令的效果进行预览,例如改变文本的格式等;
6、更加适合触摸屏操作。

虽然从菜单式界面到Ribbon界面有一个漫长的熟悉的过程,但是一个不争的事实是,Ribbon界面正在被越来越多的人接受,相应的,越来越多的软件开发商开始抛弃传统的菜单式界面,转而采用Ribbon界面。

相关文章:

  • 2022 华为杯数学建模研赛思路分享
  • MySql经典50道SQL练习题
  • 基于紧凑度和调度处理的粒子群优化算法-附代码
  • Keras深度学习实战——使用循环神经网络构建情感分析模型
  • 【中国大学生计算机大赛二等奖】智能中医-中e诊简介(一)
  • 【Linux】挂载硬盘、镜像文件、rpm软件包管理器、yum软件包管理器、软件安装jdk、tomcat、mysql
  • 【IDEA主题极致优化】全面优提升你的编码体验
  • 【论文阅读】Finetuned Language Models Are Zero-Shot Learners
  • Node.js基础常用知识点全总结
  • 大数据必学Java基础(七十):不要用字符流去操作非文本文件
  • 单片机控制LED数码管的显示
  • leetcode每日刷题
  • 秒杀系统设计详解
  • Java多线程进阶——JUC常见类和死锁
  • 【不存在的人】用Python获取生成随机头像,还不侵权
  • [ JavaScript ] 数据结构与算法 —— 链表
  • Brief introduction of how to 'Call, Apply and Bind'
  • Docker入门(二) - Dockerfile
  • Hexo+码云+git快速搭建免费的静态Blog
  • leetcode-27. Remove Element
  • mongo索引构建
  • mysql 数据库四种事务隔离级别
  • mysql中InnoDB引擎中页的概念
  • node和express搭建代理服务器(源码)
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • React16时代,该用什么姿势写 React ?
  • vue数据传递--我有特殊的实现技巧
  • 产品三维模型在线预览
  • - 概述 - 《设计模式(极简c++版)》
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 面试遇到的一些题
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​2020 年大前端技术趋势解读
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • #QT(串口助手-界面)
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • ${factoryList }后面有空格不影响
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (九)c52学习之旅-定时器
  • (实战篇)如何缓存数据
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)菜鸟学数据库(三)——存储过程
  • (转)负载均衡,回话保持,cookie
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET 材料检测系统崩溃分析
  • .Net程序帮助文档制作
  • .net打印*三角形
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .NET是什么