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
- Agregar dependencias de Fingir al proyecto
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>3.1.3</version>
</dependency>
- 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);
}
-
Declare el nombre del microservicio que se llamará en la anotación @FeignClient
-
Configure la dirección del servicio y los parámetros que deben llamarse
-
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);
}
}
- 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());