Ribbon负载均衡

添加@LoadBalance注解,实现负载均衡功能

1. 负载均衡原理

SpringCloud底层利用Ribbon组件,实现负载均衡功能

2. 源码跟踪

全选中,Rerun in Debug Mode,浏览器刷新localhost:8080/order/101

Step Into -> Step Out -> Step Into

3. 自定义负载均衡策略

①代码方式:

在order-service中的OrderApplication类中,定义一个新的IRule:

java 复制代码
@MapperScan("com.situ.order.mapper")
@SpringBootApplication
public class OrderApplication {
    ...
    @Bean
    public IRule randomRule() {
        return new RandomRule();
    }
}

多次刷新localhost:8080/order/103页面

②配置文件方式:

在order-service的application.yml文件中,添加新的配置

java 复制代码
userservice: # 给某个微服务配置负载均衡规则,这里是userservice服务
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则 

4. 饥饿加载

Ribbon默认采用懒加载:第一次访问时才会去创建LoadBalanceClient,请求时间会很长

饥饿加载:在项目启动时创建,降低第一次访问的耗时,配置如下:

java 复制代码
ribbon:
  eager-load:
    enabled: true
    clients: userservice
相关推荐
fei_sun11 小时前
等价负载均衡(等价路由ECMP)
运维·负载均衡
江畔柳前堤13 小时前
第17章:Docker 大厂面试题精选(腾讯/阿里/字节/美团)
运维·网络·spring cloud·docker·容器·eureka
吃饱了得干活6 天前
Spring Cloud Gateway 微服务网关:路由、断言、过滤器
java·spring cloud
慧一居士17 天前
Feign的GET请求如何传递对象参数?
java·spring cloud
我登哥MVP18 天前
SpringCloud Alibaba 核心组件解析:服务链路追踪
java·spring boot·后端·spring·spring cloud·java-ee·maven
慧一居士18 天前
SpringCloud 微服务Feigin 用的完整调用端和被调用的示例
java·spring cloud
地瓜伯伯18 天前
从MESI缓存一致性协议讲透synchronized的底层
java·spring boot·spring·spring cloud·微服务·springcloud
Devin~Y18 天前
大厂 Java 面试实录:从音视频内容社区到 AI RAG 的全链路技术设计
java·spring boot·redis·spring cloud·微服务·kafka·音视频
worilb18 天前
Spring Cloud 学习与实践(9):Gateway + JWT 统一鉴权
学习·spring cloud·gateway
山东点狮信息科技有限公司18 天前
企业级 MES 制造执行系统架构设计与实践
spring cloud·性能优化·系统架构·策略模式·点狮