springcloud+springcloudalibaba之openfeign(四)

简介

一个声明式的web服务客户端,让编写web服务客户端变得非常容易,只需要创建一个接口并在接口上添加注解即可。

  • 作用

  1. feign旨在使编写java http客户端变的非常容易
  2. ribbon使用负载均衡+RestTemplate,但实际过程中接口不仅仅被调用一次,所以对每一个微服务自行封装一些客户端来包装这些依赖服务的调用。所以,feign在基础上进行进一步封装,由他来帮助我们定义和实现依赖服务接口的定义。在feign的实现下,我们只需要创建接口并使用注解的方式来配置它,即可完成服务提供方的接口绑定,简化使用ribbon的开发量
  3. feign集成了ribbon,通过轮询实现了客户端的负载均衡
  • 集成

代码实现

  • 改pom
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
  • 使能feign
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class OrderMain80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderMain80.class, args);
    }
}
  • 增加feignservice
@Component
@FeignClient("CLOUD-PAYMENT-SERVICE")
public interface PaymentFeign {
    @GetMapping("/payment/discovery")
    CommonResult discovery();

    @PostMapping("/payment/create")
    CommonResult create(@RequestBody Payment payment);

    @GetMapping("/payment/get/{id}")
    CommonResult getPaymentById(@PathVariable("id") Long id);
}
  • 增加controller
    @Resource
    private PaymentFeign paymentFeign;

    @PostMapping("/create")
    public CommonResult<Payment> createPayment(@RequestBody Payment payment) {
        return paymentFeign.create(payment);
    }

 超时控制

  •  默认时间为1秒
ribbon:
  #建立时长
  ReadTimeout: 5000
  #连接时长
  ConnectTimeout: 5000

 日志

提供日志打印功能,通过日志打印级别来进行配置调整,对feign接口的调用情况进行监控和输出

  1. NONE:默认,不显示日志
  2. BASIC:仅记录请求方法、URL、响应状态码及执行时间
  3. HEADERS:除了BASIC定义的信息之外,还有请求和响应头信息
  4. FULL:除了HEADERS定义的信息外,还有请求和响应的正文及数据和元数据
  • 改yml
logging:
  level:
    com.fuzhiwei.cloud2020.service.PaymentFeign: debug
  • 增加日志基本配置
@Configuration
public class FeignConfig {
    @Bean
    Logger.Level logLevel() {
        return Logger.Level.FULL;
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值