• SpringCloud不归路——Ribbon


    Ribbon是NetFlix发布的负载均衡器,它有助于Http和Tcp的客户端行为。可以根据负载均衡算法(轮询、随机或自定义)自动帮助消费者请求,默认就是轮询。

    使用步骤

    • 引入pom文件
    • 覆盖默认配置
    • 写注解

    关于Ribbon的pom文件:

    在SpringCloud的Eureka或者SpringCloud Alibaba的Nacos的pom文件导入的Jar中已经集成了Ribbon的引用,所以不需要引入新的jar。

    关于Ribbon的配置文件:

    基本使用不需要编写配置文件,即可使用

    关于Ribbon的注解:

    当使用RestTempate时

    启动类使用@LoadBalanced 注解

    package cn.itcast.service;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.DiscoveryClient;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    import org.springframework.cloud.client.loadbalancer.LoadBalanced;
    import org.springframework.cloud.openfeign.EnableFeignClients;
    import org.springframework.context.annotation.Bean;
    import org.springframework.web.client.RestTemplate;
    
    @SpringBootApplication
    @EnableDiscoveryClient
    @EnableFeignClients
    public class ItcastServiceConsumerApplication {
    
        @Bean
        public RestTemplate restTemplate(){
            return new RestTemplate();
        }
    
        @Bean
        @LoadBalanced //开启负载均衡
        public DiscoveryClient discoveryClient(){
            return new DiscoveryClient();
        }
        public static void main(String[] args) {
            SpringApplication.run(ItcastServiceConsumerApplication.class, args);
        }
    
    }

    调用的时候通过服务名进行调用即可

     负载均衡策略自定义实现

    实现该接口

    //
    // Source code recreated from a .class file by IntelliJ IDEA
    // (powered by Fernflower decompiler)
    //
    
    package com.netflix.loadbalancer;
    
    public interface IRule {
        Server choose(Object var1);
    
        void setLoadBalancer(ILoadBalancer var1);
    
        ILoadBalancer getLoadBalancer();
    }

     自定义负载均衡算法

     配置位置:消费者yml文件中

    语义解析:对于service-provider服务采用的ribbon负载均衡算法是RandomRule

  • 相关阅读:
    RAID磁盘阵列介绍
    Nginx如何使用Nginx实现MySQL数据库的负载均衡
    挽救数据库性能的30条黄金法则
    mysql主从复制 (指定复制的数库或者表)
    Nginx系列之负载均衡策略
    Redis安装部署(一主二从三哨兵)
    让你的 Linux 命令骚起来
    MySQL/数据库 知识点总结
    Docker私有仓库搭建与界面化管理
    mysql sql语句修改字段名称,字段长度
  • 原文地址:https://www.cnblogs.com/sheng-se/p/14063102.html
Copyright © 2020-2023  润新知