Ribbon的基础使用模板

极客喵 (GeekCat)
• 阅读 756

Ribbon是Spring Cloud核心组件之一,它提供的最重要的功能就是负载均衡,和硬件负载均衡F5不同,它的负载均衡是基于客户端的,Zuul网关和Feign可以通过Ribbon轻松的实现服务的负载均衡,同时避免了与业务无关的冗余代码。

1 基本使用

配置文件中配置:

服务消费者中定义
userservice:  #服务提供者
   ribbon:    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule# 负载均衡规则类

代码

    @Bean
    public IRule randomRule(){
        //返回实现IRule的实例 可自定义策略
        return new RandomRule(); //随机 
    }

Ribbon的基础使用模板

可以自定义类实现 IRule 接口 然后再配置文件中配置自定义的实现类达到自定义负载均衡策略,默认策略是同一区下进行轮询 配置中可以配置区(zone)名

2 Ribbon负载均衡流程图

Ribbon的基础使用模板

流程
1 通过url获取服务名称
2 通过服务名称去注册中心获取服务实例
3 通过负载均衡策略选择其中一个实例
4 通过实例修改url,发起请求

3 懒加载和饥饿加载

Ribbon默认是懒加载,当第一次访问服务时再去拉取服务、调用 ,后续放在缓存中,第一次调用慢
饥饿加载则是项目启动时加载服务

Ribbon改为饥饿加载的方式为:

ribbon:  
  eager-load:    
     enabled: true # 开启饥饿加载 
     clients: userservice # 指定对userservice这个服务饥饿加载

多个服务则改为:

    clients: 
        -userservice
        -xxservice
点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Easter79 Easter79
3年前
springcloud
Ribbon简介Ribbon是管理HTTP和TCP服务客户端的负载均衡器。Ribbon具有一些列带有名称的客户端,也就是带有名称的Ribbon客户端。每个客户端由可配置的组件构成,负责一类服务的调用请求。SpringCloud通过RibbonClientConfiguration为每个Ribbon客户端创建一个Appl
Easter79 Easter79
3年前
SpringCloud负载均衡笔记
SpringCloud的负载均衡组件用的是Ribbon,这个东西就是服务消费者。它只是一个配置用的中转器,放在Zuul和 EurekaClient之间用来转发的,它里面写了好多规则,用来指定负载的规则。首先,Zuul:application.ymleureka:client:serviceUrl:
Easter79 Easter79
3年前
SpringCloud全家桶学习之客户端负载均衡及自定义负载均衡算法
一、Ribbon是什么?  SpringCloudRibbon是基于NetflixRibbon实现的一套客户端 负载均衡的工具(这里区别于nginx的负载均衡)。简单来说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix中间服务连接在一起。Ribbon客户端组件
Stella981 Stella981
3年前
Nepxion Discovery
NepxionDiscovery基于Nacos实现SpringCloud灰度发布和路由前言NepxionDiscovery是一款对SpringCloudDiscovery服务注册发现、Ribbon负载均衡、Feign和RestTe
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Easter79 Easter79
3年前
SpringCloud之Ribbon:负载均衡
SpringCloud集成了Ribbon,结合Eureka,可实现客户端的负载均衡。下面实现一个例子,结构下图所示。!(https://oscimg.oschina.net/oscnet/742d36f5920648f4beaa0a0cee50424ed0f.png)一、服务器端1、创建项目开发工具:IntelliJ
Easter79 Easter79
3年前
SpringCloud:Ribbon负载均衡
1.概述SpringCloudRibbon是基于NetflixRibbon实现的一套客户端       负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。
Easter79 Easter79
3年前
SpringCloud微服务(02):Ribbon和Feign组件,实现服务调用的负载均衡
一、Ribbon简介1、基本概念\Ribbon是一个客户端的负载均衡(LoadBalancer,简称LB)器,它提供对大量的HTTP和TCP客户端的访问控制。2、负载均衡简介目前主流的负载均衡方案可分成两类:1)集中式\即在服务的消费方和提供方之间使用独立的LB设施,可以是硬