首页 > 其他分享 >Spring Cloud:第三章:Ribbon客服端负载均衡

Spring Cloud:第三章:Ribbon客服端负载均衡

时间:2022-10-05 17:11:52浏览次数:72  
标签:Spring RestTemplate springframework Bean Cloud import org Ribbon

负载均衡是对系统的高可用、网络压力的缓解和处理能力扩容的重要手段。理解Ribbon对于我们使用Spring Cloud来讲非常的重要。它是一个基于Http和TCP的客户端负载均衡工具。它不像服务注册中心、配置中心、API网关那样独立部署,但是它几乎存在于每个微服务的基础设施中。
基于Ribbon+RestTemplate的用法
1、引入依赖

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

注意:Eureka默认集成了Ribbon,只需引入Eureka JAR即可。
2、在启动类中注入配置

package com.mimaxueyuan.consumer.robbin;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.web.client.RestTemplate;
 
@SpringBootApplication
@EnableDiscoveryClient
public class RibbonConsumerApplication {
 
    @Bean
    @LoadBalanced // 需要使用负载均衡,必须与Bean一同使用
    public RestTemplate balanceRestTemplate() {
        return new RestTemplate();
    }
    
    @Primary //自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常 
    @Bean //需要多个RestTemplate, 有的RestTemplate使用负载均衡,有的不使用,不使用的不增加@LoadBalanced注解
    public RestTemplate noBalanceRestTemplate() {
        return new RestTemplate();
    }
    
    public static void main(String[] args) {
        SpringApplication.run(RibbonConsumerApplication.class, args);
    }
 
}


更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/120382482

标签:Spring,RestTemplate,springframework,Bean,Cloud,import,org,Ribbon
From: https://www.cnblogs.com/wangchuanxinshi/p/16755885.html

相关文章

  • 记一次SpringBoot中跨域的小问题
    记一次SpringBoot中跨域的小问题问题前阵子,有个学长在跨域的时候遇到一个问题,我们两个人互相讨论了一番,得到了问题的答案。问题如下:如果按照上图的方式配置跨域类,那么......
  • SpringMVC笔记
    一、SpringMVC简介1、什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:一类称......
  • java框架——Spring(二)
    AOP简介AOP(AspectOrientedProgramming)面向切面编程,一种编程范式,指导开发者如何组织程序结构OOP(ObjectOrientedProgramming)面向对象编程作用:在不惊动原始设计的基......
  • Spring整合RabbitMQ
    ✨Spring整合RabbitMQ​​1.简单消息模式​​​​1.1生产者​​​​1.1.1创建生产者工程spring-rabbitmq-producer​​​​1.1.2引入依赖​​​​1.1.3属性配置文件​​......
  • Spring源码-循环依赖
    解决循环依赖的思路是将将创建bean分为实例化和初始化,实例化只是为类分配内存,类里面的属性全部都是默认值;初始化是为类的属性设置具体值。所以只能解决set方法注入的循环依......
  • 2022最新SpringMVC面试题附完整答案
    SpringMVC面试题一、单选题1.下列关于SpringMVC说法正确的是BA.SpringMVC和Spring没有关系B.SpringMVC是一个控制层框架,复制接收和处理请求C.SpringMVC可以脱离Spring单独......
  • 2022最新Spring面试题附完整答案
    Spring面试题一、单选题1.Spring是年发布的(B)A.2022B.2004C.2006D.20082.Spring中的对象的作用域不包括(B)A.sessionB.servletContextC.singletonD.proptotype3.在Spring......
  • Spring 项目启动测试的时候错误:Unable to acquire JDBC Connection
    我们在使用SpringJPA测试项目启动的时候,得到下面的错误:UnabletoacquireJDBCConnection  问题和解决出现这个问题的主要原因是我们在资源文件夹中还有一个......
  • Springboot2.6整合Swagger3时报错this.condition is null的解决方案
    错误Springboot2.6整合Swagger3时报错:this.conditionisnull:解决方案这个问题主要出现在SpringBoot2.6及以后,只要是SpringBoot2.6引入的新PathPatternParser导致的......
  • Spring 测试运行的时候提示 Unable to find a @SpringBootConfiguration 错误
    Spring进行测试的时候提示的错误信息如下:SEVERE:Caughtexceptionwhileclosingextensioncontext:org.junit.jupiter.engine.descriptor.JupiterEngineExtensionConte......