首页 > 其他分享 >Spring Cloud Ribbon

Spring Cloud Ribbon

时间:2023-02-06 09:45:31浏览次数:35  
标签:负载 请求 Spring Ribbon 均衡 服务器 Cloud 客户端

服务调用Ribbon

   

   

Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,是Netflix公司开源的一个项目。

Ribbon的定位是提供客户端的负载均衡算法。

   

Ribbon的作用是提供客户端的负载均衡策略,

它可以让客户端在请求服务的时候自动进行负载均衡,

将请求分发到后端的服务器集群中。这样可以避免单一服务器过载,保证系统的可用性和稳定性。

Ribbon支持多种负载均衡策略,如轮询、加权轮询、随机分配等。

   

总的来说,Ribbon是一个微服务架构中的重要组件,它的目的是提供客户端的负载均衡,以保证系统的可用性和稳定性。

Ribbon的简单使用

springcloud的启用顺序

  • 注册中心
  • 服务提供者
  • 消费者

   

ribbon负载均衡配置

   

客户端==服务消费者

服务端==服务提供者

Ribbon是一个客户端负载均衡工具,它的负载均衡算法是在客户端进行的,而不是在服务端。它的负载均衡策略是在客户端请求服务的时候自动执行的。

在使用Ribbon的情况下,客户端请求会被分发到一个服务器集群中,这个服务器集群中可以有多个服务器。Ribbon会自动使用一种负载均衡策略,将请求分发到后端的服务器中,以保证请求的均衡性。

Ribbon支持多种负载均衡策略,如轮询、加权轮询、随机分配等,开发者可以根据自己的需求选择合适的负载均衡策略。

总的来说,Ribbon负载均衡的目的是通过分发请求,从而保证系统的可用性和稳定性,避免单一服务器的过载。

   

   

客户端与用户的联系通常是通过用户界面建立的。当用户在界面上请求某项服务时,客户端就会向服务提供者发起请求。客户端接收到服务提供者的响应后,再将结果呈现给用户。

例如,在一个在线购物网站中,当用户在网站上选择商品并点击"购买"按钮时,客户端就会向商品服务提供者请求相关信息。客户端接收到服务提供者的响应后,再将商品信息呈现给用户,让用户确认订单信息。

总的来说,客户端是实现用户和服务提供者之间通信的中间实体,它负责处理用户请求并呈现结果给用户。

   

   

常用的负载均衡策略

常用的负载均衡策略有以下几种:

  • 轮询(Round Robin):按顺序将请求分配给每个服务器,直到所有服务器都得到请求,然后重新开始。
  • 最小连接数(Least Connections):将请求分配给当前连接数最少的服务器。
  • IP Hash:根据请求发送者的 IP 地址,将请求映射到相应的服务器。
  • 加权轮询(Weighted Round Robin):按照预先定义的权重,将请求分配给服务器。
  • 最小响应时间(Least Response Time):将请求分配给平均响应时间最短的服务器。
  • 最大连接数(Most Connections):将请求分配给当前连接数最多的服务器。
  • 加权最小连接数(Weighted Least Connections):将请求分配给权重与当前连接数乘积最小的服务器。

这些策略的选择取决于系统的特定需求和性能要求,因此具体的策略选择应根据实际情况灵活决策。

 

 

在消费者(客户端)springcloudconfig中配置

 

举例

   

/**

* 自定义轮询算法

* 忽略哪些短路的服务器,并选择并发数较低的服务器。

*

* @return

*/

@Bean

public IRule myRule() {

return new BestAvailableRule();

}

   

   

   

   

   

   

   

   

   

   

   

 

标签:负载,请求,Spring,Ribbon,均衡,服务器,Cloud,客户端
From: https://www.cnblogs.com/tulucc/p/17094481.html

相关文章

  • SpringBoot实现大文件上传/下载(分片、断点续传)
    1.SpringBoot实现大文件上传/下载(分片、断点续传)1.分片:按照自定义缓冲区大小,将大文件分成多个小文件片段。2.断点续传:根据分片数量,给每个小文件通过循环起对应名称,......
  • spring注入静态变量有几种方法?不看的都掉坑里了!
    springboot中经常会用到properties文件中的配置,一般使用@Value注入,但是针对Utils工具类,需要注入一个静态变量有几种方法?为什么有的同学注入的值为null?代码示例如果直接......
  • Spring注解开发
           ......
  • vulnhub:easy_cloudantivirus靶机
    kali:192.168.111.111靶机:192.168.111.177信息收集端口扫描nmap-A-v-sV-T5-p---script=http-enum192.168.111.177访问8080端口在输入框填入双引号发现报错......
  • day02-REST和SpringMVC映射请求数据
    REST和SpringMVC映射请求数据7.REST-优雅的url请求风格7.1REST基本介绍REST风格详细介绍REST:即RepresentationalStateTransfer,表述性状态传递。它结构清晰,同时......
  • SpringCloud微服务电商系统在Kubernetes集群中上线详细教程
    Kubernetes集群部署Springcloud微服务商务系统 原文网址:https://www.wangt.cc//2021/12/springcloud%E5%BE%AE%E6%9C%8D%E5%8A%A1%E7%94%B5%E5%95%86%E7%B3%BB%E7%BB%9F%......
  • Spring整合MyBatis及Junit4.11报错:No tests found matching [{ExactMatcher:fDisplayN
    发生缘由复习Spring整合MyBatis及Junit运行环境VSCode版本:1.72.0(usersetup)jdk版本:jdk-8电脑系统:win10spring-context:5.2.10.RELEASEjunit:4.11spring-test:5.......
  • springmvc
    1、springmvc工作流程 1)用户发送请求到DispatcherServlet2)DispatcherServlet收到请求,调用HandlerMapping处理器映射器查找具体的Handler。3)处理器映射器找到具体......
  • Spring源码
    https://www.cnblogs.com/panshenlian/p/16202533.html  【架构视角】一篇文章带你彻底吃透Spring,推荐,图文并茂SpringIOC/AOP源码 ......
  • Spring异步Async和事务Transactional注解
    Spring开发中我们我们常常用到@Transaction和@Async,但这2个注解加在一起很多的开发者不敢用,担心事务不生效。下面我们就仔细讲解一下这2个注解同时运用,文章用3个场景讲述它......