SpringCloud 的负载均衡 Ribbon OpeFeign

RestTemplate + ribbon返回Json格式数据
 @Resource
    private RestTemplate restTemplate;

    @Resource
    private LoadBalancer loadBalancer;
    @Resource
    private DiscoveryClient discoveryClient;

    @GetMapping("/consumer/payment/create")
    public CommonResult<Payment> create(Payment payment)
    {
        return restTemplate.postForObject(PAYMENT_URL +"/payment/create",payment,CommonResult.class);
    }

 

 

负载均衡策略

默认轮询

 */
@SpringBootApplication
@EnableEurekaClient
//@RibbonClient(name = "CLOUD-PAYMENT-SERVICE",configuration=MySelfRule.class)
public class OrderMain80
{
    public static void main(String[] args) {
            SpringApplication.run(OrderMain80.class, args);
    }
}

 

 

OpenFegin

/**
 * @auther zzyy
 * @create 2020-02-19 23:59
 */
@Component
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService
{
    @GetMapping(value = "/payment/get/{id}")
    public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id);

    @GetMapping(value = "/payment/feign/timeout")
    public String paymentFeignTimeout();
}

 

直接在接口处指定调用的服务名称,指定的微服务名称在yml文件中指定

spring:
  application:
    name: cloud-payment-service

 

开启OpenFegin,直接添加在启动类

/**
 * @auther zzyy
 * @create 2020-02-19 23:57
 */
@SpringBootApplication
@EnableFeignClients
public class OrderFeignMain80
{
    public static void main(String[] args) {
            SpringApplication.run(OrderFeignMain80.class, args);
    }
}

因为OpenFeign的底层是ribbon进行负载均衡,所以它的超时时间是由ribbon控制

配置日志打印级别

logging:
  level:
    # feign日志以什么级别监控哪个接口
    com.atguigu.springcloud.service.PaymentFeignService: debug

日志级别枚举类 Logger.Level

NONE 不输出日志

BASIC 只有请求方法、URL、响应状态代码、执行时间

HEADERS基本信息以及请求和响应头

FULL 请求和响应 的heads、body、metadata,建议使用这个级别

 

posted on 2020-10-25 20:06  潮流教父孙笑川  阅读(24)  评论(0)    收藏  举报

导航