Ribbon默认是懒加载,所以初次请求时间最长,后续请求会变快,可以通过修改为饥饿加载

ribbon.eager-load.enabled=true
ribbon.eager-load.clients=user-center

Ribbon策略的两种配置方式

  1. Java 配置Ribbon
package com.itmuch.contentcenter.configuration;
import org.springframework.cloud.netflix.ribbon.RibbonClient;
import org.springframework.cloud.netflix.ribbon.RibbonClients;
import org.springframework.context.annotation.Configuration;
import ribbonconfiguration.RibbonConfiguration;
/**
* 局部配置,只针对 user-center 起作用
* @Configuration
* @RibbonClient(name = "user-center", configuration = RibbonConfiguration.class)
*/
/**
* 全局配置,对所有ribbon起作用
* 如果需要用的话,UserCenterRibbonConfiguration类名修改一下会更语义化
* @Configuration
* @RibbonClients(defaultConfiguration = RibbonConfiguration.class)
*/
public class UserCenterRibbonConfiguration {
}
  1. application.properties
# ribbon配置策略 <clientName>.ribbon.NFLoadBalancerRuleClassName
user-center.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RoundRobinRule

自定义Nacos权重策略

/**
* Created by Guaguaerhao on 2022/4/27 2:36 下午
* 自定义Nacos权重策略
*/
@Slf4j
public class NacosWeightedRule extends AbstractLoadBalancerRule {
@Autowired
private NacosDiscoveryProperties nacosDiscoveryProperties; @Override
public void initWithNiwsConfig(IClientConfig clientConfig) {
//读取配置文件,并初始化NacosWeightedRule
} @Override
public Server choose(Object key) {
try {
BaseLoadBalancer baseLoadBalancer = (BaseLoadBalancer) this.getLoadBalancer();
// log.info("lb = {}", baseLoadBalancer);
// 想要请求的微服务的名称
String name = baseLoadBalancer.getName(); //拿到服务发现的相关api
NamingService namingService = nacosDiscoveryProperties.namingServiceInstance(); // nacos client 自动通过基于权重的负载均衡算法,给我们选择一个实例
Instance instance = namingService.selectOneHealthyInstance(name); log.info("port = {}, instance = {}", instance.getPort(), instance); return new NacosServer(instance);
} catch (NacosException e) {
e.printStackTrace();
}
return null;
}
}

38.Ribbon的更多相关文章

  1. Dynamics CRM 2015-Form之添加Ribbon Button

    说到在CRM Form上添加Ribbon Button,那就不得不提到一个Tool:Ribbon Workbench,使用这个Tool,能为我们添加button带来不少便利. Ribbon Workb ...

  2. 从零开始学spring cloud(六) -------- Ribbon

    一.Ribbon介绍 Ribbon就是客户端侧负责均衡实现的一种方式,那么Ribbon是什么呢? Ribbon是Netflix发布的云中间层服务开源项目,其主要功能是提供客户端侧负载均衡算法.Ribb ...

  3. Ribbon对于SocketTimeOutException重试的坑以及重试代码解析

    背景 本文基于Spring-Cloud, Daltson SR4 微服务一般多实例部署,在发布的时候,我们要做到无感知发布:微服务调用总会通过Ribbon,同时里面会实现一些重试的机制,相关配置是: ...

  4. SpringCloud | FeignClient和Ribbon重试机制区别与联系

    在spring cloud体系项目中,引入的重试机制保证了高可用的同时,也会带来一些其它的问题,如幂等操作或一些没必要的重试. 今天就来分别分析一下 FeignClient 和 Ribbon 重试机制 ...

  5. SpringCloud+Eureka+Feign+Ribbon的简化搭建流程和CRUD练习

    作者:个人微信公众号:程序猿的月光宝盒 环境:win10--idea2019--jdk8 1.搭建Eureka服务模块 1.1 新建eureka服务模块(Sping Initializr) 取名为eu ...

  6. SpringCloud的入门学习之概念理解、Ribbon负载均衡入门

    1.Ribbon负载均衡,Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端.负载均衡的工具. 答:简单的说,Ribbon是Netflix发布的开源项目,主要功能 ...

  7. springcloud微服务实战:Eureka+Zuul+Ribbon+Hystrix+SpringConfig

    原文地址:http://blog.csdn.net/yp090416/article/details/78017552 springcloud微服务实战:Eureka+Zuul+Ribbon+Hyst ...

  8. 微服务:Eureka+Zuul+Ribbon+Feign+Hystrix构建微服务架构

    原文地址:http://blog.csdn.net/qq_18675693/article/details/53282031 本案例将打架一个微服务框架,参考来源官方参考文档 微服务:是什么?网上有一 ...

  9. SpringCloud2.0 Hystrix Ribbon 基于Ribbon实现断路器

    原文:https://www.cnblogs.com/songlu/p/9949203.html 1.启动[服务中心]集群,工程名:springcloud-eureka-server 参考 Sprin ...

  10. eureka中显示有服务但是通过ribbon调用显示No instances available for service-hello的问题

    一,问题 采取eureka集群.客户端通过Ribbon调用服务,Ribbon端报下列异常 ? 1 2 3 4 5 6 7 java.net.UnknownHostException: SERVICE- ...

随机推荐

  1. 报错信息;Cannot execute request on any known server 解决;sprigcloud;跑本地但是服务一直在eureka

    配置文件加上: eureka.client.register-with-eureka=falseeureka.client.fetch-registry=false

  2. pg9.6查询优化

    目录 1 样例数据集 2 explain基础 3 执行计划节点结构 3.1 基本代价计算 3.2 执行计划格式输出 4 组装行集合 4.1 扫描方式 4.2 处理节点 1 样例数据集 wget htt ...

  3. c-->static关键字的使用

    static关键字的使用 static:静态 未使用static 在下列代码中变量a是有生命周期的,调用完后就会被销毁 所以for循环每次调用test函数打印的结果都是2 #include <s ...

  4. win10:你需要来自XXXX的权限才能对此文件夹进行更改

    转载请注明来源:https://www.cnblogs.com/Sherlock-L/p/16769720.html 起因 软件运行失败,看报错信息是删除某个文件夹失败了,行吧,我自己来删.找到目标文 ...

  5. Request processing failed;

    用 ssm 框架修改数据库数据时,出现了 Request processing failed; nested exception is org.mybatis.spring.MyBatisSystem ...

  6. (已解决)用phpstudy8创建个数据库(非root),结果没有访问权限。

    1. 问题 用phpstudy_pro,即最新版本,创建非root用户的数据库,然后后台访问它却提示没有权限. 2. 解决办法 进入系统自带的user表,修改权限.具体操作如下: a. 首先找到自己用 ...

  7. 虚拟机搭建linux环境&&使用winscp连接搭建好的linux环境步骤

    一.需要的工具 虚拟机应用程序.一个镜像(ubuntu等).winscp可执行程序 二.安装虚拟机以及插入镜像 1)选择虚拟机 我安装的是VMware 就是这个,因为之前用的都是vitualbox现在 ...

  8. AMBA-AXI学习笔记

    transfer与transaction的区别: transfer是只需要一次Valid和Ready握手的单次信息交换过程. transaction是一次完整的突发传输,包括地址transfer,一个 ...

  9. 人为提升服务器CPU、内存、硬盘使用率

    一.CPU使用率 vikyd/go-cpu-load: Generate CPU load on Windows/Linux/Mac (github.com) 所有CPU核心负载30%运行10秒钟 . ...

  10. 在CMD上运行java文件时出现错误:找不到或者无法加载主类的问题

    转载链接:https://blog.csdn.net/weixin_39085109/article/details/80189899