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

厦门网站建设推广哪家好/关键词代发排名首页

厦门网站建设推广哪家好,关键词代发排名首页,网站平台做期货,网上服装设计培训班目录 1.什么是Ribbo❤️❤️❤️ 2.eureka自带Ribbon ❤️❤️❤️ 3. RestTemplate❤️❤️❤️ 4.IRule❤️❤️❤️ 5.负载均衡算法❤️❤️❤️ 1.什么是Ribbo 1.Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,负载均衡的工具。2.主要功能是提供客户端的软件…

目录

1.什么是Ribbo❤️❤️❤️

2.eureka自带Ribbon ❤️❤️❤️

3. RestTemplate❤️❤️❤️

 4.IRule❤️❤️❤️

 5.负载均衡算法❤️❤️❤️


1.什么是Ribbo

  • 1.Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,负载均衡的工具。
  • 2.主要功能是提供客户端的软件负载均衡算法和服务调用
  • 3.Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。
  • 4.在配置文件中列出Load Balancer (简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。

2.eureka自带Ribbon 

之前没引入Ribbon为啥也能负载均衡?

因为我们引入eureka时,eureka自动引入了ribbon

3. RestTemplate

restTemplate有两种方式:

  • 1.restTempalte.getForObject
  • 2.restTemplate.getForEntity
  @GetMapping("/payment/get/{id}")public CommonResult<Payment> getPayment(@PathVariable("id") Integer id) {log.info("进入查询功能成功");return restTemplate.getForObject(PAYMENT_URL + "/payment/selectById/" + id, CommonResult.class);}@GetMapping("/payment/get2/{id}")public CommonResult<Payment> getPayment2(@PathVariable("id") Integer id) {log.info("进入查询功能成功");ResponseEntity<CommonResult> entity = restTemplate.getForEntity(PAYMENT_URL + "/payment/selectById/" + id, CommonResult.class);if (entity.getStatusCode().is2xxSuccessful()){log.info(entity.getStatusCode()+"\t"+entity.getHeaders());return entity.getBody();}else {return new CommonResult<>(404,"查询失败~");}}

 4.IRule

4.1轮询策略

  • 1.RoundRobinRule      --------轮询
  • 2.RandomRule            ---------随机
  • 3.RetryRule                 ---------重试  (先轮询,如果失败,在执行时间内重试

4.2如何替换 

1.创建配置类

注意:创建的配置类,不能被@ComponentSacn所扫描(不能与主启动类同包)

2.创建IRule对象 

使用@Bean创建对象,根据要求返回具体实现类

@Configuration
public class MySelfRule {@Beanpublic IRule myRule(){return new RandomRule();//定义为随机}
}

 3.添加@RibbonClient

name属性:表示要访问服务的名称。(必须与Eureka中的名称一致,包括大小写

configuration属性:表示要访问的自定义IRUle配置类

@SpringBootApplication
@EnableDiscoveryClient
@RibbonClient(name = "COULD-PAYMENT-SERVICE",configuration = MySelfRule.class)
public class OrderMain80 {public static void main(String[] args) {SpringApplication.run(OrderMain80.class);}
}

 5.负载均衡算法

5.1原理

  • 算法:rest接口第几次请求数 % 服务器集群总数量 = 实际调用服务器位置下标,每次服务重启动后rest接口计数从1开始。 

例如:

List<ServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");

获取实例:

List [0] instances = 127.0.0.1:8002

List [1] instances = 127.0.0.1:8001

8001和8002组成集群,共两台机器:

当总请求数为1时: 1%2=1对应下标位置为1 ,则获得服务地址为127.0.0.1:8001

当总请求数位2时: 2%2=0对应下标位置为0,则获得服务地址为127.0.0.1:8002

当总请求数位3时: 3%2=1对应下标位置为1 ,则获得服务地址为127.0.0.1:8001

当总请求数位4时: 4%2=0对应下标位置为0,则获得服务地址为127.0.0.1:8002

 5.2手写轮询

  • 自定义轮询算法
@Component
public class MyLb implements LoadBalance {private AtomicInteger atomicInteger = new AtomicInteger(0);public final int getAndIncrement() {int current;int next;do {current = this.atomicInteger.get();next = current >= Integer.MAX_VALUE ? 0 : current + 1;} while (!this.atomicInteger.compareAndSet(current, next));System.out.println("next:" + next);return next;}@Overridepublic ServiceInstance instances(List<ServiceInstance> serviceInstance) {int index = getAndIncrement() % serviceInstance.size();return serviceInstance.get(index);}
}
  • 80服务使用自定义轮询
    //自己的负载均衡算法@Autowiredprivate LoadBalance loadBalance;@Autowiredprivate DiscoveryClient discoveryClient;@GetMapping("/payment/lb")public String getPaymentLb() {List<ServiceInstance> instances = discoveryClient.getInstances("COULD-PAYMENT-SERVICE");if (instances == null || instances.size() < 0) {return null;}ServiceInstance serviceInstance=loadBalance.instances(instances);URI uri = serviceInstance.getUri();return restTemplate.getForObject(uri+"/payment/lb",String.class);}

相关文章:

springCould中的Ribbon-从小白开始【5】

目录 1.什么是Ribbo❤️❤️❤️ 2.eureka自带Ribbon ❤️❤️❤️ 3. RestTemplate❤️❤️❤️ 4.IRule❤️❤️❤️ 5.负载均衡算法❤️❤️❤️ 1.什么是Ribbo 1.Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,负载均衡的工具。2.主要功能是提供客户端的软件…...

持续集成交付CICD:Jira 发布流水线

目录 一、实验 1.环境 2.GitLab 查看项目 3.Jira 远程触发 Jenkins 实现合并 GitLab 分支 4.K8S master节点操作 5.Jira 发布流水线 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 主机架构版本IP备注master1K8S master节点1.20.6192.168.204.180 jenkins…...

JuiceSSH结合内网穿透实现公网远程访问本地Linux虚拟机

文章目录 1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? cpolarJuiceSSH 实现手机端远程连接Linux虚拟机(内网穿透,手机端连接Linux虚拟机) …...

使用 pytest.ini 文件控制输出 log 日志

一、前置说明 pytest.ini 文件中可以配置参数来控制 pytest 的运行行为,其存放路径要求与 conftest.py 一样。 项目根目录project_root/ ├── pytest.ini ├── tests/ │ └── test_demo.py以test开头的测试子目录project_root/ ├── tests/ │ ├── pytest.in…...

【Spring】SpringBoot 配置文件

文章目录 什么是配置文件SpringBoot配置文件配置文件快速入手配置文件的格式properties 配置文件说明properties 基本语法读取配置文件信息properties 配置格式缺点 yml 配置文件说明yml 基本语法使用 yml 连接数据库 yml 使用进阶yml 配置不同数据类型配置对象配置集合配置Map…...

Koordinator 支持 K8s 与 YARN 混部,小红书在离线混部实践分享

作者&#xff1a;索增增&#xff08;小红书&#xff09;、宋泽辉&#xff08;小红书&#xff09;、张佐玮&#xff08;阿里云&#xff09; 背景介绍 Koordinator 是一个开源项目&#xff0c;基于阿里巴巴在容器调度领域多年累积的经验孵化诞生&#xff0c;目前已经支持了 K8s…...

网游逆向分析与插件开发-游戏反调试功能的实现-项目需求与需求拆解

上一个专栏结束位置&#xff1a;网游逆向分析与插件开发-代码保护壳的优化-修改随机基址为固定基址-CSDN博客 上一个专栏是做了一个壳有了一定的保护&#xff0c;但是保护还是不够&#xff0c;最大的保护是根上把问题解决了&#xff0c;就是我不允许你对我进行调试&#xff0c…...

阶段七-GitEE

Git&#xff1a;版本控制软件 Git的优点 1.1 协同修改 多人并行不悖的修改服务器端的同一个文件。 1.2 数据备份 不仅保存目录和文件的当前状态&#xff0c;还能够保存每一个提交过的历史状态。 1.3 版本管理 在保存每一个版本的文件信息的时候要做到不保存重复数据&…...

Redis小记(1)

目录 1.Redis和Mysql的区别 2.Redis常用命令 1.Redis和Mysql的区别 a:mysql和redis的存储方式不同 mysql是关系型数据库&#xff0c;用表来进行存储数据。 redis是通过键值对来存储数据&#xff0c;key使用string来标识&#xff0c;value可以是各种不同的数据结构。 b:mys…...

Flutter windows 环境配置

Flutter windows 环境配置 从零开始&#xff0c;演示flutter环境配置到启动项目&#xff0c;同时支持 vscode 和 android studio 目录 Flutter windows 环境配置一、环境配置1. Flutter SDK2. Android Studio3. JDK4. 拓展安装5. Visual Studio 2022二、项目创建和启动1. vsco…...

odoo17核心概念view5——ir_ui_view.py

这是view系列的第5篇文章&#xff0c;介绍一下view对应的后端文件ir_ui_view.py&#xff0c;它是base模块下的一个文件 位置&#xff1a;odoo\addons\base\models\ir_ui_view.py 该文件一共定义了三个模型 1.1 ir.ui.view.custom 查询数据库这个表是空的&#xff0c;从名字看…...

截断整型提升算数转换

文章目录 &#x1f680;前言&#x1f680;截断&#x1f680;整型提升✈️整型提升是怎样的 &#x1f680;算术转换 &#x1f680;前言 大家好啊&#xff01;这里阿辉补一下前面操作符遗漏的地方——截断、整型提升和算数转换 看这一篇要先会前面阿辉讲的数据的存储否则可能看不…...

阿里云 ECS Docker、Docker Compose安装

https://help.aliyun.com/document_detail/51853.html https://docs.docker.com/compose/install/ Centos https://blog.csdn.net/Alen_xiaoxin/article/details/104850553 systemctl enable dockerdocker-compose安装 https://blog.csdn.net/qq465084127/article/details/…...

LeetCode——1276. 不浪费原料的汉堡制作方案

通过万岁&#xff01;&#xff01;&#xff01; 题目&#xff0c;给你两个数tomatoSlices和cheeseSlices&#xff0c;然后每制作一个巨无霸汉堡则消耗4个tomatoSlices和1和cheeseSlices&#xff0c;每制作一个小皇堡则需要消耗2个tomatoSlices和1和cheeseSlices。问给你这两个…...

隆道吴树贵:生成式人工智能在招标采购中的应用

12月22日&#xff0c;由中国招标投标协会主办的招标采购数字发展大会在北京召开&#xff0c;北京隆道网络科技有限公司总裁吴树贵受邀出席大会&#xff0c;并在“招标采购数字化交易创新成果”专题会议上发言&#xff0c;探讨生成式人工智能如何在招标采购业务中落地应用。 本次…...

docker搭建kali及安装oneforall

前期docker的安装这里就不用多说了&#xff0c;直接看后面的代码 安装oneforall 1.安装git和pip3 sudo apt update sudo apt install git python3-pip -y2.克隆项目 git clone https://gitee.com/shmilylty/OneForAll.git3.安装相关依赖 cd OneForAll/ sudo apt install pyt…...

【MySQL】数据库之事务

目录 一、什么是事务 二、事务的ACID是什么&#xff1f; 三、有哪些典型的不一致性问题&#xff1f; 第一种&#xff1a;脏读 第二种&#xff1a;不可重复读 第三种&#xff1a;幻读 第四种&#xff1a;丢失更新 四、隔离级别有哪些&#xff1f; &#xff08;1&#xf…...

AGV|RGV小车RFID传感器CNS-RFID-01/1S的RS232通讯联机方法

CNS-RFID-01/1S广泛应用于AGV小车&#xff0c;搬运机器人&#xff0c;无人叉车等领域&#xff0c;用于定位&#xff0c;驻车等应用&#xff0c;可通过多种通讯方式进行读写操作&#xff0c;支持上位机控制&#xff0c;支持伺服电机&#xff0c;PLC等控制设备联机&#xff0c;本…...

【Python可视化系列】一文教会你绘制美观的热力图(理论+源码)

一、问题 前文相关回顾&#xff1a; 【Python可视化系列】一文彻底教会你绘制美观的折线图&#xff08;理论源码&#xff09; 【Python可视化系列】一文教会你绘制美观的柱状图&#xff08;理论源码&#xff09; 【Python可视化系列】一文教会你绘制美观的直方图&#xff08;理…...

百度Apollo五步入门自动驾驶:Dreamview与离线数据包分析(文末赠送apollo周边)

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 粉丝福利活动 ✅参与方式&#xff1a;通过连接报名观看课程&#xff0c;即可免费获取精美周边 ⛳️活动链接&#xf…...

为什么IPv6 可以作为低功耗蓝牙的物联网体系结构?

蓝牙40规范引人了低功耗蓝牙(Bluetooth Low Energy,BLE)技术。低牙是一种低能低延成本的无线通信技术。 与传统蓝牙相比&#xff0c;低功耗蓝牙同样使用24GHz频段,但其将信道重新划分为 40个&#xff0c;包含37 个数据信道和3个广播信道(传统蓝牙共使用 79 个信道)低功蓝牙的协…...

GPT每预测一个token就要调用一次模型

问题&#xff1a;下图调用了多少次模型&#xff1f; 不久以前我以为是调用一次 通过看代码是输出多少个token就调用多少次&#xff0c;如图所示&#xff1a; 我理解为分类模型 预测下一个token可以理解为分类模型&#xff0c;类别是vocab的所有token&#xff0c;每一次调用都…...

运维工程师的出路到底在哪里?

1.35岁被称为运维半衰期&#xff0c;主要是因为运维工作的技术栈和工作方式在不断更新和演进。随着新技术的出现和发展&#xff0c;老旧的技术逐渐被淘汰&#xff0c;运维工作也需要不断学习和适应新技术&#xff0c;否则就容易被市场淘汰。 2.要顺利过渡半衰期&#xff0c;运…...

2312clang,基于访问者的前端动作

原文 基于RecursiveASTVisitor的ASTFrontendActions. 创建用RecursiveASTVisitor查找特定名字的CXXRecordDeclAST节点的FrontendAction. 创建FrontendAction 编写基于clang的工具(如Clang插件或基于LibTooling的独立工具)时,常见入口是允许在编译过程中执行用户特定操作的F…...

怎么搭建实时渲染云传输服务器

实时渲染云传输技术方案&#xff0c;在数字孪生、虚拟仿真领域使用越来越多&#xff0c;可能很多想使用该技术方案项目还不知道具体该怎么搭建云传输服务器&#xff0c;具体怎么使用实时云渲染平台系统。点量云小芹将对这两个问题做集中分享。 一、实时渲染服务器怎么搭建&…...

如何在生产环境正确使用Redis

一、在生产环境使用Redis 如果在生产环境使用Redis&#xff0c;需要遵守一定的使用规范&#xff0c;以保障服务稳定、高效。。 1.1、明确Redis集群的服务定位 1、仅适用于缓存场景&#xff1a;Redis定位于高性能缓存服务&#xff0c;强调快速读写和低延迟的特性&#xff0c;…...

LeetCode-环形链表问题

1.环形链表&#xff08;141&#xff09; 题目描述&#xff1a; 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统…...

C# 读取Word表格到DataSet

目录 功能需求 Office 数据源的一些映射关系 范例运行环境 配置Office DCOM 关键代码 组件库引入 ​核心代码 杀掉进程 总结 功能需求 在应用项目里&#xff0c;多数情况下我们会遇到导入 Excel 文件数据到数据库的功能需求&#xff0c;但某些情况下&#xff0c;也存…...

构建外卖系统:从技术到实战

在当今高度数字化的社会中&#xff0c;外卖系统的开发变得愈发重要。本文将从技术角度出发&#xff0c;带领读者一步步构建一个基础的外卖系统&#xff0c;并涵盖关键技术和实际代码。 1. 技术选型 1.1 后端开发 选择Node.js和Express框架进行后端开发&#xff0c;搭建一个灵…...

城市之眼:数据可视化在智慧城市的角色

作为智慧城市建设的核心组成部分&#xff0c;数据可视化扮演着至关重要的角色。在城市中&#xff0c;数据源源不断地产生&#xff0c;涵盖了从交通流量、环境质量到市民需求等各个方面。而数据可视化作为将这些数据呈现出来的手段&#xff0c;对智慧城市的发展起着关键性的作用…...