Springcloud netflix: Ribbon 负载均衡

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

Ribbon 负载均衡

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

1.png


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

1.png



现有他的代替解决方案是

1.png



LB(负载均衡)

负载均衡分类


集中式LB


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


进程内LB


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


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


Ribbon能够做些什么

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


默认是轮询的方式,


1 2 3 再来一遍 1 2 3


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

1.png



总结:


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


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

1.png



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

1.png



再次复习RestTemplate 的使用


官网连接:RestTemplate 官网

1.png



getForObject方法/getForEntity方法

1.png



postForObject/postForEntity

2.png

开启负载均衡


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


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


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

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


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

1.png



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

1.png


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

1.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负载均衡算法(这里由于算法实在不是咱的擅长就跳过了手写算法那个一节课)

轮询算法原理

1.png

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
7月前
|
JSON 负载均衡 Java
Spring Cloud Ribbon:负载均衡的服务调用
Spring Cloud Ribbon:负载均衡的服务调用
110 0
|
负载均衡 Java 微服务
OpenFeign原来是这么基于Ribbon来实现负载均衡的
大家好,我是三友~~ 前面我已经剖析了OpenFeign的动态代理生成原理和Ribbon的运行原理,这篇文章来继续剖析SpringCloud组件原理,来看一看OpenFeign是如何基于Ribbon来实现负载均衡的,两组件是如何协同工作的。
OpenFeign原来是这么基于Ribbon来实现负载均衡的
|
7月前
|
负载均衡 算法
SpringCloud&Ribbon负载均衡原理与实践
SpringCloud&Ribbon负载均衡原理与实践
90 3
|
设计模式 负载均衡 Apache
SpringCloud源码剖析-Zuul使用Ribbon负载均衡-RibbonRoutingFilter
RibbonCommandContext 在run方法中构建了一个 RibbonCommandContext Ribbon的上下文对象,然后调用 forward 方法转发请求 ,通过 setResponse方法设置结果
198 0
|
7月前
|
负载均衡 算法 Java
SpringCloud之Ribbon负载均衡解读
SpringCloud之Ribbon负载均衡解读
|
7月前
|
负载均衡 算法 Java
SpringCloud - Feign与Ribbon请求负载均衡实践
SpringCloud - Feign与Ribbon请求负载均衡实践
114 0
|
7月前
|
负载均衡 算法 Java
SpringCloud - Ribbon负载均衡入门与实战
SpringCloud - Ribbon负载均衡入门与实战
335 0
|
负载均衡 算法 Java
Spring Cloud:使用Ribbon实现负载均衡详解(上)
Spring Cloud:使用Ribbon实现负载均衡详解(上)
|
负载均衡 算法 搜索推荐
Spring Cloud:使用Ribbon实现负载均衡详解(下)
Spring Cloud:使用Ribbon实现负载均衡详解(下)
|
负载均衡 前端开发 Java
SpringCloud之Feign负载均衡
SpringCloud之Feign负载均衡
SpringCloud之Feign负载均衡