Ribbon负载均衡

在这里插入图片描述
在这里插入图片描述

1.依赖的引入

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

在引入eureka客户端的坐标时自带的有Ribbon依赖,所以无需单独引入

restTemplate.getForObject与restTemplate.getForEntity的区别

restTemplate.getForObject调用别的服务的方法后只返回响应体中数据转化的对象,基本可以理解为json

而restTemplate.getForEntity调用别的服务的方法后返回值包含响应中一些重要的信息,例如响应头、响应状态吗、响应体等。

二者区别如下代码

@GetMapping("/consumer/payment/get/{id}")
    public CommonResult<Payment> getPayment(@PathVariable("id") Long id)
    {
        return restTemplate.getForObject(PAYMENT_URL+"/payment/get/"+id,CommonResult.class);
    }

    @GetMapping("/consumer/payment/getForEntity/{id}")
    public CommonResult<Payment> getPayment2(@PathVariable("id") Long id)
    {
        ResponseEntity<CommonResult> entity = restTemplate.getForEntity(PAYMENT_URL+"/payment/get/"+id,CommonResult.class);

        if(entity.getStatusCode().is2xxSuccessful()){
            return entity.getBody();
        }else{
            return new CommonResult<>(444,"操作失败");
        }
    }

Ribbon核心组件IRule
在这里插入图片描述
IRule负载规则替换方法

第一步:创建一个包myrule,里面创建一个配置类MySelfRule

@Configuration
public class MySelfRule
{
    @Bean
    public IRule myRule()
    {
        return new RandomRule();//定义为随机
    }
}

第二步:在主启动类上加注解@RibbonClient

@SpringBootApplication
@EnableEurekaClient
@RibbonClient(name = "CLOUD-PAYMENT-SERVICE",configuration= MySelfRule.class)
//CLOUD-PAYMENT-SERVICE是服务提供者的服务名,configuration= MySelfRule.class是配置类
public class OrderMain80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderMain80.class,args);
    }
}

轮询算法原理
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值