负载均衡——Ribbon

文章目录

    • Ribbon和Eureka配合使用
      • 项目引入Ribbon
      • RestTemplate添加@LoadBalanced注解
      • 注意
      • 自定义均衡方式
        • 代码注册方式
        • 配置方式
    • Ribbon脱离Eureka使用

Ribbon,Nexflix发布的负载均衡器,有助于控制HTTP和TCP客户端的行为。基于某种负载均衡算法(轮询、随机登),自动地帮助服务消费者去请求。

当Ribbon和Eureka配合使用时,Ribbot可自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法,请求其中一个服务提供者实例。

对Ribbon理解

Ribbon和Eureka配合使用

项目引入Ribbon

<dependency>
	<groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>

如果已经引入spring-cloud-starter-eureka,无需再次引人,里面已经包含该依赖

RestTemplate添加@LoadBalanced注解

只需添加@LoadBalanced就可为RestTemplate整合Ribbon,使其具备负载均衡能力

@Bean
@LoadBalanced
public RestTemplate restTemplate(){
    // 用于访问第三方网络接口
    return new RestTemplate();
}

注意

当Ribbon和Eureka配合使用时,会自动将虚拟主机名(可将其简单理解成为提供者的服务名)映射成微服务的网络地址,代码中记得替换
microservice-provider-user 替换 localhost:8000

@GetMapping("user/{id}")
public User findById(@PathVariable Long id){
    return restTemplate.getForObject("http://microservice-provider-user/" + id, User.class);
}

自定义均衡方式

在这里插入图片描述

代码注册方式

在这里插入图片描述

// 注意:该类不应该在主应用程序上下文的@ComponentScan 中,否则该类中的配置信息就被所有的@RibbonClient共享
// 注意:自定义算法不可以放在与注解 @ComponentScan 的同包或者子包下,否则不起作用
@Configuration
public class MySelfRule {
    @Bean
    public IRule ribbonRule(){
        System.out.println("hahahahah");
        // 负载均衡规则改为随机
        return new RandomRule();
    }
}

在主程序添加

@RibbonClient(name = "microservice-provider-user", configuration = MySelfRule.class)
// @ComponentScan忽略指定包
// @ComponentScan(excludeFilters={@ComponentScan.Filter(type = FilterType.REGEX,pattern = "com.cloud.config.*")})
配置方式
# 修改服务地址轮询策略,默认是轮询,可配置随机等
microservice-provider-user:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

Ribbon脱离Eureka使用

https://www.dandelioncloud.cn/article/details/1596843302127353857

报错:
Field loadBalancerClient in com.cloud.controller.MovieController required a bean of type ‘org.springframework.cloud.client.loadbalancer.LoadBalancerClient’ that could not be found.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

制作一个TikTok引流脚本需要懂哪些代码?

在数字营销领域&#xff0c;TikTok已经成为一个不可或缺的平台&#xff0c;许多品牌和商家都希望通过TikTok来吸引更多的潜在客户&#xff0c;提高品牌知名度和销售额。 为了实现这一目标&#xff0c;一些商家选择使用TikTok引流脚本&#xff0c;那么&#xff0c;制作一个TikT…

【三维重建】单目三维重建

[TOC]【三维重建】单目三维重建 1. 资料收集 基于marigold的深度恢复与三维重建 file link community repainting_3d_assets 2. 单目深度恢复 输入与效果恢复如下&#xff1a; 3. 单目三维重建 4. 纹理恢复方法&#xff08;这里是TEXT to 3D 的实现方法&#xff09; 输…

信号与线性系统翻转课堂笔记13——拉普拉斯(逆)变换及其性质

信号与线性系统翻转课堂笔记13——拉普拉斯&#xff08;逆&#xff09;变换及其性质 The Flipped Classroom13 of Signals and Linear Systems 对应教材&#xff1a;《信号与线性系统分析&#xff08;第五版&#xff09;》高等教育出版社&#xff0c;吴大正著 一、要点 &am…

CentOS7之开启ssh远程登录

参考&#xff1a;https://www.cnblogs.com/travis-li/p/12550370.html cd /etc/ssh/ # 修改配置 vim sshd_config# 开启服务 sudo service sshd start# 检查 ps -e | grep sshd# 开机自启 systemctl enable sshd.service# 查看(验证)开机自启服务 [rootlocalhost liangshijie]…

腾讯云优惠全站搜,你想要的优惠都在这!

腾讯云推出优惠全站搜页面 https://curl.qcloud.com/PPrF9NFe 在这个页面可以一键查询所需云服务器、轻量应用服务器、数据库、存储、CDN、网络、安全、大数据等云产品优惠活动大全&#xff0c;活动打开如下图&#xff1a; 腾讯云优惠全站搜 腾讯云优惠全站搜页面 txybk.com/go…

SpringBoot源码搭建

文章目录 源码下载搭建项目构建学习博客 源码下载 需要环境 &#xff1a; JDK 1.8Maven 3.5Spring Boot 1.x.x: Gradle 版本建议为2.9或更高版本。Spring Boot 2.x.x: Gradle 版本建议为4.x.x或更高版本。 GitHub 从v2.3.x开始&#xff0c;SpringBoot开始强制用Gradle构建项…

CNAS中兴新支点——软件兼容测试从哪些方面判断

软件的兼容性是衡量软件好坏的一个重要指标&#xff0c;在具体测试中可以从以下几个方面来判断&#xff1a; 1、操作系统兼容性 软件可以运行在哪些操作系统平台上&#xff0c;理想的软件应该具有与平台无关性。有些软件在不同的操作系统平台上重新编译即可运行&#xff0c;有…

二分查找(模板)

记住二分查找的数据必须是&#xff08;有序的&#xff09;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; #include <iostream> using namespace std;// 二分查找 记住二分查找的数据必须是&#xff08;有序的&#xff09;&…

Lua的垃圾回收机制详解

Lua 是一种轻量级的编程语言&#xff0c;广泛用于嵌入到其他应用程序中&#xff0c;尤其是在游戏开发领域。Lua 的内存管理机制采用了自动垃圾收集&#xff08;Garbage Collection&#xff09;的方法。以下是Lua内存管理的一些关键方面&#xff1a; 垃圾收集原理概述 Lua 使用…

虚拟机服务器中了lockbit2.0/3.0勒索病毒怎么处理,数据恢复应对步骤

网络技术的不断发展也为网络威胁带来了安全隐患&#xff0c;近期&#xff0c;对于许多大型企业来说&#xff0c;许多企业的虚拟机服务器系统遭到了lockbit2.0/3.0勒索病毒攻击&#xff0c;导致企业所有计算机系统瘫痪&#xff0c;无法正常工作&#xff0c;严重影响了企业的正常…

影响旋转花键精度的因素有哪些?

高精度旋转花键能够确保精确、平稳的传动&#xff0c;从而提高设备性能和工作效率。在需要高精度传动的场合&#xff0c;如机床、航空航天等领域&#xff0c;精度更是成为决定成败的关键因素&#xff0c;那么&#xff0c;影响旋转花键精度的因素有哪些呢&#xff1f; 1、制造精…

深入 K8s 网络原理(一)- Flannel VXLAN 模式分析

1. 概述 这周集中聊下 K8s 的集群网络原理&#xff0c;我初步考虑分成3个方向&#xff1a; Pod-to-Pod 通信&#xff08;同节点 or 跨节点&#xff09;&#xff0c;以 Flannel VXLAN 模式为例&#xff1b; Pod/External-to-Service 通信&#xff0c;以 iptables 实现为例&…

找不到vcruntime140_1.dll要怎么解决?4种方法修复vcruntime140_1.dll

遇到"找不到vcruntime140_1.dll"的错误提示&#xff0c;表明我们面临的是一个dll文件缺失的常见问题。要解决这一困扰&#xff0c;首先需要确认错误信息中是否包含“.dll”扩展名。若有&#xff0c;这几乎无疑表明了是某个dll文件不在其预期的位置。那么&#xff0c;…

treeview数据的保存和读取(以表格方式保存)

一个简单的treeivew&#xff0c;以表格方式保存比较简单&#xff0c;遍历所有节点&#xff0c;记录parentNode、node、data即可 parentiddataid002xx2001005xx5000003xx3001006xx6002007xx7001000xx0001001xx1-1004xx4007 如何将表格转为tree数据&#xff0c;代码如下&#xf…

centos7 安装最新版jenkins; 安装jdk17 jenkins; 2024安装最新版jenkins; jenkins部署服务器启动失败

注意&#xff1a; java, maven配置&#xff0c;不再赘述&#xff0c;主要解决&#xff1a;配置端口&#xff0c;启动失败&#xff0c;问题 提供一个jdk下载网站&#xff1a; https://www.injdk.cn/ /etc/profile配置&#xff1a; MAVEN_HOME/home/maven export PATH$MAVEN_HO…

设置视图的对齐方式

对齐方式 在XML文件中通过属性android:layout_gravity可以指定当前视图的对齐方向&#xff0c;当属性值为top时表示视图朝上对齐&#xff0c;为bottom时表示视图朝下对齐&#xff0c;为left时表示视图靠左对齐&#xff0c;为right时表示视图靠右对齐。如果希望视图既朝上又靠左…

分页合理化是什么?

一、前言 只要是干过后台系统的同学应该都做过分页查询吧&#xff0c;前端发送带有页码&#xff08;pageNum&#xff09;和每页显示数量&#xff08;pageSize&#xff09;的请求&#xff0c;后端根据这些参数来提取并返回相应的数据集。在SpringBoot框架中&#xff0c;经常会使…

docker安装入门及redis,minio,rabbitmq应用安装

部分笔记来自黑马课堂&#xff1a;【黑马程序员Docker快速入门到项目部署&#xff0c;MySQL部署Nginx部署docker自定义镜像DockerCompose项目实战一套搞定-哔哩哔哩】 https://b23.tv/niWEhEF 一、什么是docker&#xff1a; 快速构建、运行、管理应用的工具。--帮助我们快速部…

HarmonyOS应用抓包实战

Charles抓包原理 Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器&#xff0c;当浏览器连接Charles的代理访问互联网时&#xff0c;Charles可以监控浏览器发送和接收的所有数据。 在开发OpenHarmony/HarmonyOS应用开发时&#xff0c;我们使用的是ohos/axios来进行网络…

VSCode注释

一、设置 1. 安装 “KoroFileHeader” 插件 2. 编辑 setting.json 文件 在设置页面中&#xff0c;使用搜索框输入 “fileheader”&#xff0c;然后点击 “在 setting.json 中编辑”。 3. 添加设置项到 setting.json // 函数 "fileheader.cursorMode": {"de…