• SpringCloud Ribbon 组件


    Ribbon 介绍

    Ribbon 是 Spring Cloud Netflix 模块的子模块,它是 Spring Cloud 对 Netflix Ribbon 的二次封装。通过它,我们可以将面向服务的 RestTemplate 请求转换为客户端负载均衡的服务调用。

    负载均衡

    负载均衡(Load Balance),简单点说就是将用户的请求平摊分配到多个服务器上运行,以达到扩展服务器带宽、增强数据处理能力、增加吞吐量、提高网络的可用性和灵活性的目的。

    服务端负载均衡

    服务端负载均衡是在客户端和服务端之间建立一个独立的负载均衡服务器,该服务器既可以是硬件设备,也可以是软件。这个负载均衡服务器维护了一份可用服务端清单,然后通过心跳机制来删除故障的服务端节点,以保证清单中的所有服务节点都是可以正常访问的。当客户端发送请求时,该请求不会直接发送到服务端进行处理,而是全部交给负载均衡服务器,由负载均衡服务器按照某种算法,从其维护的可用服务清单中选择一个服务端,然后进行转发。

    客户端负载均衡

    客户端负载均衡是将负载均衡逻辑以代码的形式封装到客户端上,即负载均衡器位于客户端。客户端通过服务注册中心获取到一份服务端提供的可用服务清单。有了服务清单后,负载均衡器会在客户端发送请求前通过负载均衡算法选择一个服务端实例再进行访问,以达到负载均衡的目的。

    Ribbon 实现

    yml

    server:
      port: 80
    eureka:
      client:
        register-with-eureka: false #不需要将自己注册到服务注册中心
        fetch-registry: true  #开启服务注册中心搜索服务
        service-url:
          defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
    

    pom

    eureka 整合了 ribbon,所以只要引入 eureka 的依赖即可

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    

    主启动类

    @SpringBootApplication
    @EnableEurekaClient
    public class OrderMain80 {
        public static void main(String[] args) {
            SpringApplication.run(OrderMain80.class,args);
        }
    }
    

    修改 RestTemplate

    @Configuration
    public class ApplicationContentConfig {
        @Bean
        @LoadBalanced //开启ribbon自带负载均衡
        public RestTemplate getRestTemplate(){
            return new RestTemplate();
        }
    }
    
  • 相关阅读:
    Centos禅道启动mysql 报错Can't connect to local MySQL server解决方法
    Linux中 nohup挂起django程序参数、&、 2>&1的解释
    Python进制之间的转换和位运算整理
    git 清除账号密码缓存
    python类装饰器笔记~持续更新
    nohup后台挂起django程序print内容不显示到log文件中解决方案
    Java中如何使用Jsoup进行HTML页面的简单爬虫(爬取图片)
    流程控制之条件语句switch
    循环控制之Goto、braeak、Continue
    函数之匿名函数、闭包、递归
  • 原文地址:https://www.cnblogs.com/feiqiangsheng/p/16283663.html
Copyright © 2020-2023  润新知