Fingir —— SpringCloud (六)

¿Qué es fingir?

  Feign puede ocultar la solicitud de Rest y pretender ser un controlador similar a SpringMVC. No necesita empalmar los parámetros de url y empalme. Feign lo hará.

  Feign es un cliente Http declarativo y con plantilla desarrollado por Netflix, inspirado en Retrofit, JAXRS-2.0 y WebSocket.

  Feign puede ayudarnos a llamar a HttpApi de manera más cómoda y elegante.

  SpringCloud ha mejorado Feign, hizo que Feign admitiera las anotaciones SpringMVC e integró Ribbon y Eureka, lo que hace que Feign sea más conveniente de usar.

 

Uso inicial de Fingir

Importar dependencias

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

 

Enciende Fingir

  Agregue comentarios para habilitar la función Fingir.

@SpringCloudApplication 
@EnableFeignClients // 开启feign 客户 端
public  class ItcastServiceConsumerApplication { 
    
    public  static  void main (String [] args) { 
        SpringApplication.run (ItcastServiceConsumerApplication. Class , args); 
    } 
}

  Eliminar RestTemplate : Feign ha heredado automáticamente el Equilibrio de carga RestTemplate de la cinta. Por lo tanto, no es necesario registrar RestTemplate aquí.

 

Fingir cliente

@FeignClient (valor = "-Servicio-Proveedor") // marcada fingir la clase de interfaz es un 
público  interfaz UserClient { 

    @GetMapping ( "Usuario / {ID}" ) 
    el usuario queryById (@PathVariable ( "ID" ) Largo ID); 
}

  Esta es una interfaz, Feign nos ayudará a generar la clase de implementación a través del proxy dinámico. Esto es muy similar al mapeador Mybatis.

  @FeignClient, declara que este es un cliente Feign, similar a la anotación @Mapper. También especifique el nombre del servicio a través del atributo de valor.

  El método de definición en la interfaz usa anotaciones SpringMVC. Feign nos ayudará a generar URLs basadas en las anotaciones y acceder a los resultados.

@Controller 
@RequestMapping ( "consumidor / usuario" )
 clase pública  UserController { 
    @Autowired private UserClient userClient; 
    @GetMapping 
    @ResponseBody public User queryUserById (@RequestParam ("id" ) Long id) { 
        Usuario usuario = this .userClient.queryUserById (id);
        usuario de retorno ; 
    } 
}

    

    

 

Balanceo de carga

  La dependencia de la cinta y la configuración automática ya están integradas en Feign.

  Por lo tanto, no es necesario introducir dependencias adicionales y no es necesario registrar objetos RestTemplate.

 

Soporte Hystrix

  Fingir también hereda Hystrix por defecto.

  Está desactivado de forma predeterminada y debe activarse mediante los siguientes parámetros:

fingir: 
  hystrix: 
    enabled: true # Activar la función de fusible de Feign

 

Solicitar compresión

  Spring Cloud Feign admite la compresión GZIP de solicitudes y respuestas para reducir la pérdida de rendimiento durante la comunicación.

  La función de compresión de la solicitud y la respuesta se puede habilitar a través de los siguientes parámetros:

fingir: 
  compresión: 
    solicitud: 
      habilitado: verdadero # habilitar solicitud de 
    respuesta de compresión : 
      habilitado: verdadero # habilitar respuesta de compresión  

  Al mismo tiempo, también puede establecer el tipo de datos solicitado y el límite inferior del tamaño que desencadena la compresión:

fingir: 
  compresión: 
    solicitud: 
      habilitado: verdadero # Habilitar compresión 
      mime -tipos: texto / html, aplicación / xml, aplicación / json # Establecer el tipo de datos comprimido 
      min -request-size: 2048 # Establecer el límite inferior del tamaño que desencadena la compresión

 

Nivel de registro

  Establezca el nivel de registro mediante logging.level.xx = debug.

  Esto no tendrá ningún efecto en el cliente de Feign, porque el cliente modificado de anotación @FeignClient creará una nueva instancia de Feign.Logger cuando esté proxy.

  Necesita especificar el nivel de este registro.

registro: 
  nivel: 
    cn.itcast: depuración
@Configuration
 public  class FeignLogConfiguration { 

    @Bean 
    Logger.Level feignLoggerLevel () { 
        return Logger.Level.FULL; 
    } 
}

  NINGUNO: no registre ninguna información de registro, el valor predeterminado.

  BÁSICO: solo registre el método de solicitud, la URL y el código de estado de respuesta y el tiempo de ejecución.

  Encabezados: sobre la base de BASIC, se registra información adicional de encabezado de solicitud y respuesta.

  COMPLETO: Registre los detalles de todas las solicitudes y respuestas, incluida la información del encabezado, el cuerpo de la solicitud y los metadatos.

 

Especifique la clase de configuración en FeignClient

@FeignClient (value = "service-privider", fallback = UserFeignClientFallback. Class , configuration = FeignConfig. Class )
 public  interface UserFeignClient { 
    @GetMapping ( "/ user / {id}" ) 
    User queryUserById (@PathVariable ( "id" ) Long carné de identidad); 
}

 

Supongo que te gusta

Origin www.cnblogs.com/guancangtingbai/p/12698060.html
Recomendado
Clasificación