Ribbon负载均衡

更改springboot版本

springboot版本有的与ribbon不兼容,因此更改springboot版本如下:
在父项目内将version更新到2.3.8

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

一、手动实现负载均衡

手动实现负载均衡,轮询,随机逻辑等。

二、使用Ribbon实现负载均衡

Ribbon+RestTemplate

规则名称特点
AvailabilityFilteringRule过滤掉一直连接失败的被标记为circuit tripped 的后端Server,并过滤掉那些高并发的后端Server或者使用一个AvailabilityPredicate来包含过滤Server的逻辑,其实就是检查status里记录的戈戈Server的运行状态
BestAvailableRule选择一个最小的并发请求的Server,这个考察Server,如果Server被tripped了,则跳过
RandomRule随机选择一个Server
ResponseTineWeightedRule已废弃,作用同WeightedResponseTimeRule
RetryRule对选定的负载均衡策略机上重试机制,在一个配置时间段内当选择Server不成功,则一直尝试使用subRule的方式选择一个可用的server
RoundRobinRule轮询选择,轮询index,选择index对应位置的Server
WeightedResponseTimeRule根据响应时间加权,响应时间越长,权重越少、被选中的可能性越低
ZoneAviodanceRule复合判断Server所Zone的性能和Server的可用性选择Server,在没有Zone的环境下,类似于轮询(RoundRobinRule)

三、程序内实现负载均衡

order调用product,order实现负载均衡

pom.xml引入:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
            <version>2.2.8.RELEASE</version>
        </dependency>

order-service服务的启动类加入 @LoadBalanced

package com.neutech.shopserver.order;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
//@EnableFeignClients
public class OrderServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(OrderServiceApplication.class, args);
    }

    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate(RestTemplateBuilder restTemplateBuilder) {
        return restTemplateBuilder.build();
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值