springcloud整合ribbon

springcloud之ribbon初识篇-通过yml配置实现负载均衡 如果注册中心是eureka那么使用ribbon我们不需要额外添加pom配置信息,eurekaClient默认加载了ribbon的信息。 我们以restTemplate为例使用ribbon yml配置: #指定为某个服务配置负载规则 TEST1: ribbon: #配置轮训策略 NFLoadBalancerClassName: com.netflix.loadbala... 阅读详情

目录

一、引入依赖

二、使用

1.通过config类

2.通过yml配置

三、懒加载

四、用loabalancer代替ribbon

1.修改pom.xml,禁用ribbon,引入loadbalancer依赖

 2.yml中禁用loadbalancer集成的ribbon


一、引入依赖

ribbon是客户端负载均衡的实现方案。

nacos已经集成ribbon,不需要单独引入依赖。

二、使用

1.通过config类

新建配置类,并application添加注解(见下图注释掉的代码)。

package com.wind.ribbon;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author dongguanghui
 * @date 2023/5/17 15:15
 */
@Configuration
public class RibbonRandomRuleConfig {

    // 方法名一定要是iRule
    @Bean
    public IRule iRule(){
        return new RandomRule();
    }
    
}

2.通过yml配置

如果使用自带策略,直接写类名。

如果使用自定义策略,需要实现自定义策略。

 自定义策略代码示例(需要继承AbstractLoadBalancerRule)。

package com.wind.ribbon.rule;

import com.alibaba.nacos.client.naming.utils.ThreadLocalRandom;
import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.AbstractLoadBalancerRule;
import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.loadbalancer.Server;

import java.util.List;


/**
 * 方式三 自定义负载均衡策略
 * @author dongguanghui
 * @date 2023/5/17 15:53
 */
public class CustomRule extends AbstractLoadBalancerRule {


    public void initWithNiwsConfig(IClientConfig iClientConfig) {

    }

    public Server choose(Object key) {
        // 获得当前请求的服务实例
        ILoadBalancer loadBalancer = this.getLoadBalancer();
        List<Server> reachableServers = loadBalancer.getReachableServers();

        int random = ThreadLocalRandom.current().nextInt(reachableServers.size());
        Server server = reachableServers.get(random);
        return server;
    }
}

三、懒加载

默认懒加载,第一次调用接口才会加载。

可配置饥饿加载,即服务启动就加载,可避免第一次调用可能出现的加载时长问题。

四、用loabalancer代替ribbon

1.修改pom.xml,禁用ribbon,引入loadbalancer依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>alibaba</artifactId>
        <groupId>com.wind.springcloud</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>order-loadbalancer</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- nacos服务注册发现       -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <exclusions>
<!--                去除ribbon-->
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- 添加loadbalancer依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>
    </dependencies>

</project>

 2.yml中禁用loadbalancer集成的ribbon

 

springcloud整合ribbon实现服务负载均衡 springcloud整合ribbon实现服务负载均衡 1.项目目录: 创建项目ribbon作为父类 2.代码实现: 父类依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.2&... 阅读详情

相关推荐

Springboot 实践(20)负载均衡器Ribbon

以工程案例为辅助讲解负载均衡器的使用、配置方法

qq_37647812的博客 1107

SpringBoot实战(十九)集成Ribbon

SpringBoot实战(十九)集成Ribbon

ACGkaka的博客 2644

Springboot整合Ribbon负载均衡及实现

总的来说就是:负载均衡+RestTemplate调用 架构说明:Ribbon是软负载均衡的客户端组件,可以和其他所需请求的客户端结合使用,和Eureka结合只是其中的一个实例 如果已经整合了Eureka那么会自带Ribbon Eureka可以查看我的另外一篇博客 https://yushun.blog.youkuaiyun.com/article/details/122484653 如果没有自带的Ribbon需要使用Ribbon需在pom文件中引入 <!-- https://mvnrepository.co..

yushun的博客 1805

springboot集成ribbon

ribbon​ Ribbon是Netflix公司开源的一个负载均衡的项目(https://github.com/Netflix/ribbon),它是一个基于HTTP、TCP的客户端负载均衡器。 1、什么是负载均衡? 负载均衡是微服务架构中必须使用的技术,通过负载均衡来实现系统的高可用、集群扩容等功能。负载均衡可通过硬件设备及软件来实现,硬件比如:F5、Array等,软件比如:LVS、Nginx等。...

sdaujsj1的博客 6873

【SpringCloud】SpringCloud整合五大组件Eureka、Ribbon、Hystrix、Feign、Zuul

Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具,它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 特点 约定优于配置 适用于各种环境 隐藏了组件的复杂性,并提供声明式、无xml的配置方式 开箱即用,快速启动 轻量级的组件。SpringCloud整合的组件大多比...

像风走过八千里 3703

springcloud 中RestTemplate 是怎么和 ribbon整合,实现负载均衡的?源码分析

RestTemplate 和 ribbon整合,首先就是 ribbon 根据 rest 提供的扩展器,实现了它的client请求器,然后ribbon里面,对于它的client 进行了扩展,你可以自定义你的 请求是具体什么类型的负载均衡策略,然后会拿到你设置的规则,根据你的规则进行具体的请求。

qq_44605317的博客 1175

SpringCloud学习之整合RestTemplate和Ribbon

SpringCloud学习之整合RestTemplate和Ribbon服务调用Service-Consumer添加Ribbon依赖修改Service-Consumer的RestTemplateConfig修改Service-Consumer的UserService 单独使用RestTemplate调用微服务时,需要明确微服务的IP和服务端口,无法实现Feign使用微服务名称进行调用服务的功能。Ribbon可以实现负载均衡的功能,可以通过微服务名称分配一个可用的服务给RestTemplate调用。因此整合Re

wangrui17721415的博客 447

【MCU】一种基于RTOS的无应答重发机制

文章目录一、背景描述二、结构框图三、基于RTOS的信号量的实现(3-1)思路描述(3-2)步骤(3-2-1)定义超时重发信号量(3-2-2)定义发送线程入口(3-2-3)定义接收线程入口四、基于定时器的实现(4-1)思路描述(4-2)步骤(4-2-1)创建定时器(4-2-2)定义定时器超时处理函数(4-2-3)定义发送线程入口(4-2-4)定义接收线程入口 一、背景描述 ​ 在微控制器之间进行数据通信时,大多需要添加无应答重发机制,以增强数据交互和通信的稳定性。 在使用UART通信的双方设备,当一次数据传输

iriczhao的博客 1522

spring cloud整合Ribbon

spring cloud整合Ribbon 使用Eureka中自带的Ribbon 如果你使用的是Eureka做服务发现和注册的话,在比较新版本的Eureka中,Eureka已经集成了Ribbon进入Eureka中,当你引入 dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-clientr<

qq_43203949的博客 440

保姆级教程:用vxe-grid给管理后台加个「智能筛选」功能(支持模糊搜索/多选/范围查询)

本文提供了一份详细的Vxe-Grid智能筛选功能实现教程。通过自定义筛选器渲染,文章逐步指导开发者为后台管理系统添加支持模糊搜索、多选下拉和数值范围查询的智能筛选功能,并分享了性能优化与移动端适配等实战经验。

weixin_29021291的博客 534

从DC到DCG:手把手教你搭建物理感知综合流程(含DEF文件处理避坑指南)

本文详细介绍了从Design Compiler(DC)过渡到DC Topographical(DCT)和DC Graphical(DCG)的完整操作框架,特别针对DEF文件处理提供避坑方案。通过环境准备、工具升级、DEF文件处理、DCG综合配置等步骤,帮助开发者高效应对28nm以下工艺节点的物理感知综合挑战,显著提升时序收敛效率。

weixin_27966471的博客 377

Spring Cloud Ribbon 整合 Hystrix

在前面随笔Spring Cloud 之 Ribbon的ribbon工程基础上进行改造 1.pom.xml 加入依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>sp...

diyuanjiong2062的博客 146

音视频开发—H264相关概念和压缩原理详解(GOP、宏块、帧内压缩、帧间压缩)

本文讲述了H264相关概念和原理——GOP概念,SPS与PPS,帧内压缩原理,帧间压缩原理,解释了什么是运动补偿,什么运动矢量等等概念

weixin_46999174的博客 3971

spring cloud alibaba 整合 Ribbon

restTemplate 整合 Ribbon // 在spring 容器中创建 类型是 RestTemplate 名称:/ID restTemplate @Bean // 引入Ribbon RestTemplate整合Ribbon @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate();...

xinbumi的博客 1021

python机器人编程——用python实现一个写字机器人

本篇我们构建一个可以跟人一样写字的机器人python软件。实现如下功能:打开一个写字板,人类在屏幕上写或画出任意形状,机器人同步在纸面上画出和人类一样的形状,就好像人类在远程操控机械臂,又或是机械臂是人的另一只手。这个软件是可以扩展的,如果连上互联网,可以实现人在北京写了一行字,在上海的机器臂同时也在自己的本子上写了一行字。

JAMES费的空间 7991

AD(AltiumDesigner)封装导入allegro生成allegro封装

AD(AltiumDesigner)封装导入allegro生成allegro封装 貌似PCB的封装问题是一个无尽话题,为了简单我总是想找捷径(主要还是太懒了),因为也是近期才开始学习使用allegro进行PCB设计,在最近的一个设计中,很多器件封装allegro中都没有,一个一个画感觉很费时间,但是在AD(AltiumDesigner)的封装库中是有的,于是便想着AD的封装库能不能倒入到alleg...

yangh2560的博客 2万+

【源码】Spring Cloud —— Ribbon 4 Ribbon 与 OpenFeign、RestTemplate 的整合

【源码】Spring Cloud —— Ribbon 4 Ribbon 与 OpenFeign、RestTemplate 的整合前言版本Ribbon 与 RestTemplateLoadBalancerAutoConfigurationLoadBalancerInterceptorRibbon 与 OpenFeignLoadBalancerFeignClient 前言 至此,对 Ribbon 的部分核心接口和实现类做了解读。通常的,我们使用 Spring Cloud 单独整合 Ribbon 时,可以通过在

小水牛的博客 545

Flink CDC 中 StartupOptions 模式详解

Flink CDC 的 StartupOptions 模式用于指定作业启动时从源数据读取数据的起始位置,不同的模式适用于不同的业务场景,可满足多样化的数据处理需求,主要有 Initial 模式、Earliest 模式、Latest 模式、SpecificOffset 模式和 Timestamp 模式。

RodJohnsonDoctor的专栏 849

ribbon学习笔记(一)通过@LoadBalanced查询Ribbon是如何与SpringCloud整合的

    首先用过Ribbon的都知道,要想在Spring-Cloud中使用Ribbon,需要在RestTemplate Bean上加入@LoadBalanced注解。那么我们可以先看看@LoadBalanced(代码如下)。 package org.springframework.cloud.client.loadbalancer; import java.lang.annotation.Documented; import java.lang.annotation

葩_的博客 409

YOLOv8改进,YOLOv8添加可变性卷积DCNv2

DCNv2对原始的DCNv1进行了改进,可变形卷积网络的卓越性能源于其适应对象几何变化的能力。通过对其自适应行为的检查,虽然对其神经特征的空间支持比常规的ConvNets更接近于对象结构,但这种支持可能远远超出感兴趣区域,导致特征受到不相关图像内容的影响。为了解决这个问题,我们提出了一种可变形卷积网的重新表述,通过提高建模能力和更强的训练,提高了其专注于相关图像区域的能力。通过更全面地集成网络中的可变形卷积,并引入扩展变形建模范围的调制机制,增强了建模能力。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 3606

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SpringCloud整合Ribbon负载均衡器

Autowired//JUC包下,线程安装的Integer@Override//获取服务名称//6062//6061//取模运算 5,10,15,20,25 ...if(mod == 0){ //当次数是5的倍数的时候,mod就是0,} else {//mod 是 1,2,3,4 的时候打到权重高的这个机器上@Override返回自定义的规则我们自定义的规则是含能除尽5就负载到权重为2的机器,否则负载到权重为5的机器。

qq_65142821的博客 887

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring Cloud完整组件搭建之路 第二篇 -OpenFeign、Ribbon整合

Spring Cloud完整组件搭建之路 第二篇 -OpenFeign、Ribbon整合

m0_63164811的博客 600

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

spring cloud 整合ribbon问题

springCloud 整合ribbon的时候出现了这个问题 java.lang.IllegalStateException: No instances available for localhost at org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.execute(RibbonLoadBalancerClient.java:89) ~[spring-cloud-netflix-ribbon-2.0.2.RELEASE

G_whang的博客 427

03_SpringCloud整合Ribbon实现负载均衡

采用随机负载均衡策略,四线服务之间的调用 2个用户中心,1个内容中心,内容中心调用用户中心服务 package com.itmuch.contentcenter.service.impl; import com.itmuch.contentcenter.dao.content.ShareMapper; import com.itmuch.contentcenter.domain.entity....

Gblfy_Blog 673

SpringCloud Alibaba微服务中Sentinel整合ribbon+openFeign

一。整合ribbon 在SpringCloud Alibaba微服务中的nacos中其实已经集成了ribbon的依赖: 所以我们只需要引入nacos的依赖即可: <!--springcloud alibb sentinel依赖 1.7版本依赖--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter

爱吃鸡腿的明仔 551

SpringCloud 为服务消费者整合Ribbon

1 简介 本文主要实现有: 配合Eureka使用Ribbon实现负载均衡 自定义Ribbon配置整合(java代码和属性配置两种实现) Ribbon独立使用配置整合 2 整合Ribbon实现负载均衡 通过上一篇文章《多节点高可用Eureka集群与服务注册》我们搭建了一个Eureka的集群,本文为了测试搭建后的效果稍作修改。 首先复制上文中artifactId为microservice-prov...

zyb2017的博客 2821
上一篇: nacos集群环境部署 linux
下一篇: springcloud alibaba整合seata
醉淸風
博客等级 码龄10年 36粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值