OpenFeigin llamadas de interfaz de servicio

I. Introducción

1, Perfil OpenFeign

Fingir es un cliente de servicio Web declarativa. Fingir hacer uso de clientes de servicios web escritas más fácil. Su uso es definir una interfaz de servicio y luego añadir anotaciones en la parte superior. Contar con el apoyo de la anotación insertada, incluyendo notas fingir y anotaciones JAX-RS; codificador tipo enchufable y decodificador. Nube de primavera para fingir el paquete, para apoyar las anotaciones estándar SpringMVC y HttpMessageConverters. La cinta Feign se puede utilizar en combinación con Eureka y para el equilibrio de carga de apoyo. Los documentos oficiales abordan: https://cloud.spring.io/spring-cloud-openfeign/reference/html/ .

2 diferencia, Feign con el OpenFeign

  • Fingir es un peso ligero HTTP REST cliente de servicio de los componentes SpringCloud, construida de la cinta, que se utiliza para hacer el balanceo de carga del cliente, para llamar al centro de servicio de registro de servicio. Fingir uso: Uso notas Feign definen la interfaz, la interfaz puede llamar a este servicio de llamadas del registro de servicios.

    <dependency>
    	<groupId>org.springframework.cloud</groupId>
    	<artifactId>spring-cloud-starter-feign</artifactId>
    </dependency>
    
  • OpenFeign es el apoyo SpringCloud comentario SpringMVC sobre la base de Feign, como @RequestMapping y así sucesivamente. OpenFeign de interfaces @FeignClient se puede resolver en las notas @RequestMapping SpringMVC y generar clase de implementación proxy dinámico por cierto, hacer balanceo de carga clase de implementación y las llamadas a otros servicios.

    <dependency>
    	<groupId>org.springframework.cloud</groupId>
    	<artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    

Dos, OpenFeign usando el procedimiento

1. Crear un nuevo módulo, introducido en la dependencia de archivos pom Feign

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2, basado en el arranque maestro @EnableFeignClients anotados abren Feign;

3, crear una interfaz en el lado del consumidor, el método de interfaz es un método en el proveedor de servicios;

@Component
//添加Feign注解,value=要寻找的微服务名称
@FeignClient("CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService {
    @GetMapping("/payment/get/{id}")
    CommonResult getPaymentById(@PathVariable("id") Long id);
}

4, definir su propia clase de negocios, llame al método de interfaz Feign puede ser, sin introducir RestTempLate ir en forma manual.

@Resource
private PaymentFeignService paymentFeignService;
@GetMapping("/consumer/payment/get/{id}")
public CommonResult<Payment> getPayment(@PathVariable("id") Long id){
    return paymentFeignService.getPaymentById(id);
}

Tres, el control de tiempo de espera OpenFeign

1. Descripción

Hay una diferencia de tiempo de tiempo de procesamiento de solicitud de servicio entre el consumidor y el lado del proveedor de servicios, el programa dará lugar a un error de tiempo de espera. Para resolver este problema, las dos partes acordaron hacer algo de negocio para algunos, para garantizar el funcionamiento normal del programa. Tiempo de espera agotado página de error de la siguiente manera:

2, tiempo de espera de ajuste, añade la siguiente configuración en el extremo de application.yml consumo.

#设置feign客户端超时时间(OpenFeign默认支持Ribbon)
ribbon:
  # 指的是建立连接后从服务器读取到可用资源所用的时间,单位ms
  ReadTimeout: 5000
  # 指的是建立连接所用的时间,适用于网络状态正常的情况下,两端连接所用的时间,单位ms
  ConnectTimeout: 5000

Cuatro, registro de impresión OpenFeign

. 1, la función de impresión Feign ofrece un registro, el nivel de registro se puede ajustar mediante la disposición de comprender los detalles de la petición HTTP Feign, una llamada a la interfaz para controlar la situación y de salida.

2, el nivel de registro

  • NINGUNO: por defecto, no muestra ningún registro;
  • BÁSICO: Sólo solicitudes de grabación método, la URL y el estado de respuesta de tiempo de ejecución de código;
  • ENCABEZADOS: Información básica al definido, hay cabecera de la información de la solicitud y la respuesta;
  • COMPLETO: las cabeceras de información definidos, no son de texto y metadatos solicitudes y respuestas.

3, el método de configuración

  • Definir una configuración de clase

    @Configuration
    public class FeignConfig {
    
        @Bean
        Logger.Level feignLoggerLevel(){
            return Logger.Level.FULL;
        }
    }
    
  • Modificar el archivo yml

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

Supongo que te gusta

Origin www.cnblogs.com/Mhang/p/12558299.html
Recomendado
Clasificación