Ribbon负载均衡

Ribbon负载均衡

概述

Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具

主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。

Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。

简单的说,就是在配置文件中列出Load Balance(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随即连接等)去连接这些机器。

我们也很容易使用Ribbon实现自定义的负载均衡算法

LB负载均衡

LB,即负载均衡(Load Balance),在微服务或分布式集群中经常用的一种应用。

负载均衡简单的说就是将用户的请求平摊的分配到多个服务上,从而到达系统的HA(高可用 )。

常见的负载均衡有软件Nginx,LVS,硬件F5等。

相应在中间件,例如:dubbo和SpringCloud中均给我们提供了负载均衡,SpringCloud的负载均衡算法可以自定义


Ribbon配置初步

修改consumer-dept-80工程

  1. consumer-80模块消费者模块POM添加Ribbon依赖

  2. 修改yml,追加eureka服务注册地址

  3. 对ConfigBean进行新注解@LoaderBalanced 获得Rest时加入Ribbon的配置

  4. 主启动类添加@EnableEurekaClient

  5. 修改Controller客户端访问类,请求地址改为微服务名

  6. 先启动3哥eureka集群,在启动8001进行注册进eureka,启动80

Ribbon和Eureka整合后Consumer可以直接调用服务而不再关心地址和端口号

Ribbon负载均衡

Ribbon在工作时分成两步:

step1------先选择EurekaServer,它优先选择在同一个区域内负载较少的server

step2------再根据用户指定的策略,在从server取到的服务注册列表中选择一个地址

Ribbon核心组件IRule

根据特定算法从服务列表中选取一个要访问的服务

使用方法,在ConfigBean中 显式声明

Ribbon自定义

相关推荐
这儿有个昵称8 小时前
Java面试场景:从音视频到微服务的技术深挖
java·spring boot·spring cloud·微服务·面试·kafka·音视频
Remember_9939 小时前
深入理解 Java String 类:从基础原理到高级应用
java·开发语言·spring·spring cloud·eclipse·tomcat
鸽鸽程序猿1 天前
【JavaEE】【SpringCloud】注册中心_nacos
java·spring cloud·java-ee
递归尽头是星辰1 天前
Spring Cloud Alibaba 核心理论体系:Nacos、Sentinel、Seata深度解析
spring cloud·nacos·sentinel·seata·微服务治理
lpfasd1231 天前
springcloud docker 部署问题排查与解决方案
spring·spring cloud·docker
蓝眸少年CY1 天前
(第七篇)spring cloud之Hystrix断路器
spring·spring cloud·hystrix
蓝眸少年CY1 天前
(第八篇)spring cloud之zuul路由网关
后端·spring·spring cloud
We....1 天前
SpringBoot 微服务拦截器与负载均衡实践
java·spring boot·微服务·负载均衡
码出财富2 天前
SpringBoot 内置的 20 个高效工具类
java·spring boot·spring cloud·java-ee
daladongba2 天前
Spring Cloud Gateway
java·spring cloud·gateway