SpringCloud Ribbon负载均衡工具使用

 更新时间:2023年02月06日 08:53:44   作者:碰磕  
Ribbon是Netflix的组件之一,负责注册中心的负载均衡,有助于控制HTTP和TCP客户端行为。Spring Cloud Netflix Ribbon一般配合Ribbon进行使用,利用在Eureka中读取的服务信息,在调用服务节点时合理进行负载

Spring Cloud Ribbon

是一个基于HTTP和TCP的客户端负载均衡工具

实操

创建两个provider,并且编写两个一样的接口,再创建一个consumer去访问该接口进行轮询调用

项目结构:

provider-01与provider-02都是创建Client模块,并且创建controller编写接口

@RestController
public class ProviderController {
    @GetMapping("pengke")
    public String pengke(){
        return "我是碰磕接口2222";
    }
}
@RestController
public class ProviderController {
    @GetMapping("pengke")
    public String pengke(){
        return "我是碰磕接口1111";
    }
}

consumer02模块则是使用ribbon进行轮询调用接口

依赖:

<!--        ribbon依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
            <scope>2.2.9.RELEASE</scope>
        </dependency>

Application启动类中编写一个@Bean

减少多次new该对象

关键注解:@LoadBalanced

/**
     *编写防止多次new
     * loadBalanced 会呗ribbon来操作
     */
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

controller中编写接口用于访问另外两个模块的接口

由于在启动类中编写了RestTemplate所以通过@Autowired注入即可

通过ribbon实现了通过访问http://服务名/请求地址接口实现轮询访问另外两个模块的接口!

@Autowired
    private RestTemplate restTemplate;
    @GetMapping("testRibbon")
    public String testRibbon(String serviceName){
        String result=restTemplate.getForObject("http://"+serviceName+"/pengke",String.class);
        return result;
    }

这就是ribbon的应用~下一篇学习Feign(它集成了ribbon)

到此这篇关于SpringCloud Ribbon负载均衡工具使用的文章就介绍到这了,更多相关SpringCloud Ribbon内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决Nacos集群启动失败:java版本问题

    解决Nacos集群启动失败:java版本问题

    这篇文章主要介绍了解决Nacos集群启动失败:java版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Future与FutureTask接口实现示例详解

    Future与FutureTask接口实现示例详解

    这篇文章主要为大家介绍了Future与FutureTask接口实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Springboot上传文件时提示405问题及排坑过程

    Springboot上传文件时提示405问题及排坑过程

    这篇文章主要介绍了Springboot上传文件时提示405问题及排坑过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • SpringCloud 分布式锁的多种实现

    SpringCloud 分布式锁的多种实现

    本文主要介绍了SpringCloud 分布式锁的多种实现,主要有三种方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 简单谈谈Java类与类之间的关系

    简单谈谈Java类与类之间的关系

    类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就简单给大家介绍一下。
    2016-05-05
  • Java的动态代理模式之JDK代理详解

    Java的动态代理模式之JDK代理详解

    这篇文章主要介绍了Java的动态代理模式之JDK代理详解,代理对象,不需要实现接口,但是目标对象要实现接口,否则不能用动态代理,JDK 实现代理只需要使用 newProxyInstance 方法,但是该方法需要接收三个参数,需要的朋友可以参考下
    2023-11-11
  • IntelliJ IDEA 2023版本创建Spring项目时Java只能选择17或21的问题解决方法

    IntelliJ IDEA 2023版本创建Spring项目时Java只能选择17或21的问题解决方法

    spring-boot是一个基于Java的开源框架,用于快速构建生产级别的应用程序,这篇文章主要给大家介绍了关于IntelliJ IDEA 2023版本创建Spring项目时Java只能选择17或21的问题解决方法,需要的朋友可以参考下
    2024-07-07
  • JVM中-D、-X、-XX参数的区别

    JVM中-D、-X、-XX参数的区别

    本文主要介绍了JVM中-D、-X、-XX参数的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • ShardingSphere JDBC强制路由使用的项目实践

    ShardingSphere JDBC强制路由使用的项目实践

    在某些特定场景下,可能需要绕过分片规则直接定位到特定的数据库或表,这种情况下就可以使用HintRouting,本文就来介绍一下ShardingSphere JDBC强制路由使用的项目实践,感兴趣的可以了解一下
    2024-06-06
  • Spring事务控制策略及@Transactional失效问题解决避坑

    Spring事务控制策略及@Transactional失效问题解决避坑

    这篇文章主要为大家介绍了Spring事务控制策略及@Transactional失效问题解决避坑,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06

最新评论