微服务中间件--Ribbon负载均衡

Ribbon负载均衡

a.Ribbon负载均衡原理

1.发起请求http://userservice/user/1,Ribbon拦截该请求

2.Ribbon通过EurekaServer拉取userservice

3.EurekaServer返回服务列表给Ribbon做负载均衡

4.Ribbon轮询到端口

b.Ribbon负载均衡策略 (IRule)

Ribbon的负载均衡规则是一个叫IRule的接口来定义的,每一个子接口都是一种规则:

通过定义IRule实现可以修改负载均衡规则,有两种方式:

1.(作用全局)代码方式:在order-service中的OrderApplication类中,定义一个新的IRule:

java 复制代码
@Bean
public IRule randomRule(){
    return new RandomRule();
}

2.(只针对某服务)配置文件方式:在order-service的application.yml文件中,添加新的配置也可以修改规则

yaml 复制代码
userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #负载均衡规则

c.Ribbon的饥饿加载

Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长。而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过下面配置开启饥饿加载:

yaml 复制代码
ribbon:
  eager-load:
    enabled: true # 开启饥饿加载
    clients:  # 指定饥饿加载的服务名称
      - userservice
相关推荐
笃励13 分钟前
Java面试题二
java·开发语言·python
Leanfeng_K31 分钟前
【报错】mac m1 gateway 报错
spring·macos·spring cloud·gateway·报错
易雪寒32 分钟前
IDEA在git提交时添加忽略文件
java·git·intellij-idea
罗曼蒂克在消亡38 分钟前
ELK--收集日志demo
elk·中间件
打码人的日常分享1 小时前
企业人力资源管理,人事档案管理,绩效考核,五险一金,招聘培训,薪酬管理一体化管理系统(源码)
java·数据库·python·需求分析·规格说明书
27669582921 小时前
京东e卡滑块 分析
java·javascript·python·node.js·go·滑块·京东
爱写代码的刚子1 小时前
C++知识总结
java·开发语言·c++
冷琴19961 小时前
基于java+springboot的酒店预定网站、酒店客房管理系统
java·开发语言·spring boot
daiyang123...2 小时前
IT 行业的就业情况
java
Nightselfhurt2 小时前
Spring cloud 中gateway原理
spring·spring cloud·gateway