04.Ribbon负载均衡

04.Ribbon负载均衡

SpringCloud Ribbon是基于Netfilx Ribbon实现的服务器负载均衡工具。

Ribbon的

客户端组件提供完整的配置项目,如连接超时、重试等。在配置文件中列出LoadBalancer(LB)后面的所有机器,Ribbon会自动帮你进行基于某种规则(随机,轮询,权重)连接这些机器,从而实现Ribbon进行负载均衡。

  • 集中式负载均衡

在消费者和提供者之间使用独立的负载均衡设备例如Nginx,该设备将访问通过某种策略转发至访问的提供方。

  • 进程式负载均衡

将负载均衡集成到消费方,消费方从注册中心中获取那些提供者可以使用,自己选择合适自己的服务器。

导入Maven依赖

在新版的eureka-client中,已经集成包含了Ribbon,所以我们不需要进行对Ribbon的依赖导入。

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

编写配置文件

进行对Eureka的配置编写。

server:
  port: 80

eureka:
  client:
    register-with-eureka: false
    service-url:
      defaultZone: http://yume7001.com:7001/eureka,http://yume7002.com:7002/eureka,http://yume7003.com:7003/eureka

编写ConfigBean文件

添加@LoadBalanced注解,即可进行负载均衡。

@Configuration
public class ConfigBean {

    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}

修改Controller文件

我们将原来的固定路径进行修改。

private static final String REST_URL = "http://localhost:8001";

将其更新为我们需要使用的服务名称。

@Controller
public class BirdConsumer {
    @Resource
    private RestTemplate restTemplate;

    private static final String REST_URL = "http://springcloud-provider-bird";

    @ResponseBody
    @RequestMapping("/consumer/bird/query")
    public List<Bird> getAllBird(){
        return restTemplate.getForObject(REST_URL+"/bird/query",List.class);
    }

    @ResponseBody
    @RequestMapping("/consumer/bird/query/{id}")
    public Bird getBird(@PathVariable("id")int id){
        return restTemplate.getForObject(REST_URL+"/bird/query/"+id,Bird.class);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值