Comprensión básica de Fingir

que es fingir

  • Fingir es un cliente de servicio web declarativo, que facilita las llamadas entre microservicios, de forma similar a como un controlador llama a un servicio.

  • Spring Cloud integra Ribbon y Eureka para proporcionar un cliente http con equilibrio de carga cuando se usa Feign.

  • Feign es un cliente de servicio HTTP RESTful ligero en el componente Spring Cloud Netflix. Implementa un marco de trabajo de código abierto para balanceo de carga y llamadas est, encapsula Ribbon y RestTemplate, implementa programación orientada a la interfaz de servicio web y reduce aún más el acoplamiento de proyectos.

  • Fingir tiene una cinta incorporada, que se utiliza para equilibrar la carga en el lado del cliente y llamar al centro de registro de servicios.

  • Feign en sí no es compatible con las anotaciones de Spring MVC. Tiene su propio conjunto de anotaciones. Para un uso más fácil, Spring Cloud creó OpenFeign.

  • Fingir es un cliente HTTP declarativo con plantilla (solo para consumidores).

  • La forma de usar Fingir es: usar anotaciones de Fingir para definir una interfaz y llamar a esta interfaz para llamar al servicio del registro de servicios.

¿Qué problema resuelve Fingir?

  Fingir tiene como objetivo facilitar la escritura de clientes JAVA HTTP. Fingir simplifica el código RestTemplate e implementa

El equilibrio de carga de la cinta hace que el código sea más conciso y reduce el código llamado por el cliente. La primera opción es usar Fingir para lograr el equilibrio de carga.

opción. Solo necesita crear una interfaz y agregar anotaciones en ella.

  Fingir es un componente de llamada de servicio declarativo, su núcleo es: llamar a métodos remotos como llamar a métodos locales, sin sentir

Al conocer la solicitud HTTP remota, resuelve la experiencia de que el desarrollador llama a la interfaz remota al igual que llama al método local, y el desarrollador no lo percibe en absoluto.

Sabiendo que este es un método remoto, es aún más inconsciente que se trata de una solicitud HTTP. No es necesario prestar atención a los detalles de la interacción con el control remoto, y mucho menos al entorno distribuido.

desarrollo ambiental Es como Dubbo, el Consumidor llama directamente al método de interfaz del Proveedor sin pasar por el HtpClient convencional

Construya la solicitud y luego analice los datos devueltos

La diferencia entre Fingir y OpenFeign

OpenFeign es una anotación de que Spring Cloud admite Spring MVC sobre la base de Feign, como @RequesMapping, @Pathvariable, etc.

@Feignclent de OpenFelgn puede analizar la interfaz bajo la anotación @RequestMapping de SpringMVC, y generar una clase de implementación a través de un proxy dinámico, e implementar equilibrio de carga y servicios de llamadas en la clase de implementación.

Fingir pasos de uso

  1. Agregar dependencias de Fingir al proyecto
			<dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-openfeign</artifactId>
                <version>3.1.3</version>
            </dependency>
  1. Agregue la anotación @FeignClient a la interfaz de Fingir declarada
//在@FeignClient注解声明要调用的微服务名称
@FeignClient("userservice") 
public interface FeignService {
    
    
// 配置需要调用的服务地址及参数
    @GetMapping("/user/{id}")
    public User queryById(@PathVariable("id") Long id);

}

  1. Declare el nombre del microservicio que se llamará en la anotación @FeignClient

  2. Configure la dirección del servicio y los parámetros que deben llamarse

  3. Agregue @EnableFeignClients a la clase de inicio
    通过basePackageClasses = ***.class属性,给注解 设置需要扫描的class
    通过basePackages="com.example.*"给注解 设置需要扫描的路径

@SpringBootApplication
@EnableFeignClients(basePackageClasses = FeignService.class)
public class OrderApplication {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(OrderApplication.class, args);
    }

}
  1. Inyecte el servicio Fingir en el servicio que debe llamarse de forma remota a través de la anotación @Autowired y llame al método correspondiente
  	 @Autowired
    private FeignService feignService;
    User user = feignService.queryById(order1.getNum());

Supongo que te gusta

Origin blog.csdn.net/weixin_58286934/article/details/128644778
Recomendado
Clasificación