java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringCloud Ribbon

SpringCloud Ribbon负载均衡工具使用

作者:碰磕

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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文