Springcloud netflix: Ribbon 负载均衡

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: Springcloud netflix: Ribbon 负载均衡

Ribbon 负载均衡

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ljau87ve-1630398094502)()]


现在的RIbbon已经进入维护模式了

1.png


2.png

现有他的代替解决方案是

3.png



LB(负载均衡)

负载均衡分类


集中式LB


即在服务的消费方和提供方之间使用独立的LB设施,(可以是硬件,如f5,也可以是软件,如nginx),由该设施负责把访问请求通过某种请求策略转发至服务的提供方;


进程内LB


将L B逻辑集成在消费方,消费方从服务注册中心获取那些地址可用,让后自己再从这些地址选择出一个合适的服务器.


Ribbon 就是属于进程内LB,他只是一个类库,集成于消费房的进程,消费房通过他来获取到服务器的提供方地址


Ribbon能够做些什么

就是在消费者中对服务提供者进行负载均衡操作,


默认是轮询的方式,


1 2 3 再来一遍 1 2 3


负载均衡+RestTemplate调用架构说明

5.png



总结:


Ribbon其实就是一个软负载均衡的客户端组件,他可以和其他所需请求的客户端结合使用,和eureka结合只是其中的一个实例。


我们之前导入的 Netflix-Eureka的jar包中包含了 ribbon 新版本不包含,

1.png



现在的最新版本 h12 Ribbon 以被上图提到的 lb给代替了(之前全部最新版的时候踩到的坑)

2.png



再次复习RestTemplate 的使用


官网连接:RestTemplate 官网

1.png



getForObject方法/getForEntity方法

2.png



postForObject/postForEntity

1.png

开启负载均衡


默认的开启负载均衡操作就一个注解


在你的消费者config中的restTemoplate上添加一个注解

@Configuration
public class orderConfig {
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

这样就开启的Ribbon的默认轮询的负载均衡


IRule:根据特定算法从服务列表中选取一个要访问的服务,用哪一种方式做负载均衡

1.png



我们首先要强调一下配置细节

2.png



如果我们想改变默认的负载均衡算法我们需要在 这样建立一个新包


3.png


主启动类在cloud的中,所以他会扫描cloud下所有的子包


接下来是自定义负载均衡的规则编写(使用起来越方便的,他的底层就越精妙)

@SpringBootApplication
@EnableEurekaClient
@RibbonClient(value = "CLOUD-PAYMENT-SERVICE",configuration = Myselgrule.class )
public class orderMain {
    public static void main(String[] args) {
        SpringApplication.run(orderMain.class,args);
    }
}

添加了这个之后我们要使用自己设置的规则我们需要使用到注解@RibbonClient


在主启动类上添加这个注解 ,并且设置两个参数


value:需要负载均衡的服务名


configuration : 要使用的规则类 Myselgrule.class


即可


Ribbon负载均衡算法(这里由于算法实在不是咱的擅长就跳过了手写算法那个一节课)

轮询算法原理

4.png


相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
负载均衡 Java Nacos
Ribbon负载均衡
Ribbon负载均衡
33 1
Ribbon负载均衡
|
1月前
|
负载均衡 监控 网络协议
SpringCloud之Ribbon使用
通过以上步骤,就可以在Spring Cloud项目中有效地使用Ribbon来实现服务调用的负载均衡,提高系统的可靠性和性能。在实际应用中,根据具体的业务场景和需求选择合适的负载均衡策略,并进行相应的配置和优化,以确保系统的稳定运行。
74 15
|
1月前
|
负载均衡 算法 Java
除了 Ribbon,Spring Cloud 中还有哪些负载均衡组件?
这些负载均衡组件各有特点,在不同的场景和需求下,可以根据项目的具体情况选择合适的负载均衡组件来实现高效、稳定的服务调用。
89 5
|
22天前
|
负载均衡 Java Nacos
常见的Ribbon/Spring LoadBalancer的负载均衡策略
自SpringCloud 2020版起,Ribbon被弃用,转而使用Spring Cloud LoadBalancer。Ribbon支持轮询、随机、加权响应时间和重试等负载均衡策略;而Spring Cloud LoadBalancer则提供轮询、随机及Nacos负载均衡策略,基于Reactor实现,更高效灵活。
54 0
|
2月前
|
Cloud Native Java 对象存储
面向未来的架构设计:Spring Cloud和Netflix OSS在云原生环境下的发展趋势
面向未来的架构设计:Spring Cloud和Netflix OSS在云原生环境下的发展趋势
56 1
|
2月前
|
监控 Java 对象存储
监控与追踪:如何利用Spring Cloud Sleuth和Netflix OSS工具进行微服务调试
监控与追踪:如何利用Spring Cloud Sleuth和Netflix OSS工具进行微服务调试
50 1
|
3月前
|
Java 开发工具 对象存储
简化配置管理:Spring Cloud Config与Netflix OSS中的动态配置解决方案
简化配置管理:Spring Cloud Config与Netflix OSS中的动态配置解决方案
59 2
|
3月前
|
消息中间件 Java 对象存储
数据一致性挑战:Spring Cloud与Netflix OSS下的分布式事务管理
数据一致性挑战:Spring Cloud与Netflix OSS下的分布式事务管理
63 2
|
3月前
|
负载均衡 Java 对象存储
负载均衡策略:Spring Cloud与Netflix OSS的最佳实践
负载均衡策略:Spring Cloud与Netflix OSS的最佳实践
57 2
|
3月前
|
负载均衡 Java 开发者
Ribbon框架实现客户端负载均衡的方法与技巧
Ribbon框架为微服务架构中的客户端负载均衡提供了强大的支持。通过简单的配置和集成,开发者可以轻松地在应用中实现服务的发现、选择和负载均衡。适当地使用Ribbon,配合其他Spring Cloud组件,可以有效提升微服务架构的可用性和性能。
48 0