día3 Fingir llamada remota

En el estudio anterior, usamos la función de balanceo de carga de Ribbon, que simplificó enormemente el código para llamadas remotas:

Si aprende esto, es posible que deba escribir mucho código repetitivo similar en el futuro, el formato es básicamente el mismo, pero los parámetros son diferentes. ¿Existe una forma más elegante de optimizar estos códigos nuevamente?

Esta es la función de Fingir que aprenderemos a continuación.

 

2.1. Introducción (configurado en el grupo de microservicios ly-consumer)

¿Por qué se llama disfraz?

Fingir puede ocultar la solicitud de Descanso y pretender ser un Controlador similar a SpringMVC . No necesita empalmar URL, empalmar parámetros, etc. usted mismo, y dejar todo en manos de Fingir.

 

2.2. Inicio rápido

2.2.1. Importar dependencias

En primer lugar, esta es una interfaz, Feign utilizará un proxy dinámico para ayudarnos a generar clases de implementación. Esto es muy similar al mapeador mybatis

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

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

 

2.2.3. Activar la función Fingir

Agregamos anotaciones en la clase de inicio para habilitar la función Fingir

@EnableFeignClients // Habilitar la función Fingir

 

2.2.4. Iniciar prueba:

 

2.3. Equilibrio de carga

 

Fingir en sí tiene dependencia de cinta integrada y configuración automática:

Por lo tanto, no necesitamos introducir dependencias adicionales, ni necesitamos registrar objetos RestTemplate.

Además, podemos configurar Ribbon como se mencionó en la lección anterior, y podemos configurarlo globalmente a través de ribbon.xx. También puede configurar el servicio especificado a través del nombre del servicio.ribbon.xx:

user-service:

  ribbon:

    ConnectTimeout: 250 # 连接超时时间(ms)

    ReadTimeout: 1000 # 通信超时时间(ms)

    OkToRetryOnAllOperations: true # 是否对所有操作重试

    MaxAutoRetriesNextServer: 1 # 同一服务不同实例的重试次数

    MaxAutoRetries: 1 # 同一实例的重试次数

 

Supongo que te gusta

Origin blog.csdn.net/qq_42198024/article/details/107904221
Recomendado
Clasificación