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;
}
}

最新文章

  1. 在android用Get方式发送http请求
  2. DNS基础及域名系统架构
  3. PL/SQL之--存储过程
  4. JAVA遍历一个文件夹中的所有文件
  5. CreateThread函数&amp;amp;&amp;amp;CString::GetBuffer函数
  6. CodeForces 707C Pythagorean Triples (数论)
  7. Linux 命令 - history: 显示或操作历史列表
  8. Sql Server关于text类型的替换
  9. 数据结构笔记01:编程面试过程中常见的10大算法(java)
  10. ping网络故障
  11. JSP打印九九乘法表
  12. linux c in common use function reference manual
  13. Oracle SQL篇(三)Oracle ROWNUM 与TOP N分析
  14. C语言指针强制转化的应用
  15. 半透明边框与background-clip
  16. hdu 2046递推
  17. Why ngx-uploader doesn&#39;t like to cooperate with .net core 2.x?
  18. 后台文本编辑器KindEditor介绍
  19. Java并发编程笔记之ConcurrentLinkedQueue源码探究
  20. SQL中on条件与where条件的区别

热门文章

  1. Spring随意总结
  2. js中常用Math对象
  3. VUE学习-过渡 &amp; 动画
  4. 在centos环境下利用docker安装kail
  5. .net core格式化响应数据(json驼峰格式)
  6. java 自定义注解与示例
  7. 前端记录:树形插件zTree 和 表格扩展 tableX
  8. jmeter接口自动化-读取CSV文件执行测试用例
  9. SignalR+Redis,SignalR+Sqlserver集群部署应对海量链接
  10. taskkill报taskkill不是内部或者外部命令,也不是可运行程序