搭建Eureka注册中心,Ribbon负载均衡配置,Ribbon修改负载均衡规则,饥饿加载配置以及耗时对比

演示服务为:order-service,user-service , order-service为消费者

搭建Eureka注册中心,Ribbon负载均衡配置,Ribbon修改负载均衡规则,饥饿加载配置以及耗时对比_第1张图片


一、搭建EurekaServer注册中心

 父工程的pom.xml配置



    4.0.0

    cn.itcast.demo
    cloud-demo
    1.0
    
        user-service
        order-service
        eureka-service
    

    pom

    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.9.RELEASE
        
    

    
        UTF-8
        UTF-8
        1.8
        Hoxton.SR10
        5.1.47
        2.1.1
    

    
        
            
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
            
            
                mysql
                mysql-connector-java
                ${mysql.version}
            
            
            
                org.mybatis.spring.boot
                mybatis-spring-boot-starter
                ${mybatis.version}
            
        
    
    
        
            org.projectlombok
            lombok
        
    

1.创建一个Eureka服务,和普通的maven项目一样创建的

搭建Eureka注册中心,Ribbon负载均衡配置,Ribbon修改负载均衡规则,饥饿加载配置以及耗时对比_第2张图片

 2.引入依赖


        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-server
        

        
            org.springframework.boot
            spring-boot-autoconfigure
        

3.编写启动类,添加@EnableEurekaServer注解

搭建Eureka注册中心,Ribbon负载均衡配置,Ribbon修改负载均衡规则,饥饿加载配置以及耗时对比_第3张图片

4.编写Eureka服务的配置文件 application.yml

server:
  port: 1008 #服务端口

spring:
  application:
    name: eurekaserver #eureka的服务名称

eureka:
  client:
    service-url:
      defaultZone: http://localhost:1008/eureka/

5.服务注册

        1.order-service,user-service 引入下方依赖

     

        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        

        2.给他们添加配置文件,name修改为服务名称,可以自己设置

spring:
    application:
      name: orderserver #order的服务名称

eureka:
  client:
    service-url:
      defaultZone: http://localhost:1008/eureka/

搭建Eureka注册中心,Ribbon负载均衡配置,Ribbon修改负载均衡规则,饥饿加载配置以及耗时对比_第4张图片

 

以上步骤完成后

把服务全部启动,浏览器打开http://localhost:1008/就可以看到Eureka管理对应的服务

搭建Eureka注册中心,Ribbon负载均衡配置,Ribbon修改负载均衡规则,饥饿加载配置以及耗时对比_第5张图片

二、拉取已注册的服务,Ribbon负载均衡配置

1.order-service配置文件加入以下配置,userservice为user-service 的服务名称

userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则

2.order-service完成服务拉取order-service启动类加入注解:@LoadBalanced

搭建Eureka注册中心,Ribbon负载均衡配置,Ribbon修改负载均衡规则,饥饿加载配置以及耗时对比_第6张图片

3.修改OrderService的代码,修改访问的url路径,用服务名代替ip、端口:

搭建Eureka注册中心,Ribbon负载均衡配置,Ribbon修改负载均衡规则,饥饿加载配置以及耗时对比_第7张图片

 配置完成后,启动多个user-service服务,在order-service里拉取user-service服务时,则可以随机挑选user-service服务


三、Ribbon修改负载均衡规则

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

1.代码方式:order-service中的OrderApplication类中,定义一个新的IRule

@Bean
public IRule randomRule(){
 return new RandomRule();
}

2.配置文件方式:order-serviceapplication.yml文件中,添加新的配置也可以修改规则:

userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则

四、饥饿加载

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

而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过下面配置开启饥饿加载:

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

耗时对比

        1.没有开启饥饿加载第一次访问耗时,花费了460毫秒

搭建Eureka注册中心,Ribbon负载均衡配置,Ribbon修改负载均衡规则,饥饿加载配置以及耗时对比_第8张图片

     2.开启饥饿加载第一次访问耗时,花费了287毫秒

搭建Eureka注册中心,Ribbon负载均衡配置,Ribbon修改负载均衡规则,饥饿加载配置以及耗时对比_第9张图片

相比之下,快了非常多 

你可能感兴趣的:(学习,ribbon,spring,cloud,后端)