Compartir tecnología

Notas de estudio de Grain Mall-22-Componentes distribuidos-Llamada remota de prueba SpringCloud-OpenFeign

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Aprendimos sobre el centro de registro en la sección anterior. Sabemos que antes de que el servidor A llame al servidor B, obtendrá la IP del servicio B del centro de registro y luego el servidor A realiza una solicitud al servicio B.

Entonces, ¿cómo realiza el servidor A una solicitud al servicio B?

Ésta es la cuestión principal que se abordará en esta sección.

En este proyecto, el componente OpenFeign se utiliza para completar llamadas entre servicios. OpenFeign es una encapsulación de solicitudes HTTP.

1. Introducción a OpenFeign

OpenFeign es un cliente HTTP declarativo cuyo propósito es facilitar las llamadas remotas.

Feign proporciona una plantilla para solicitudes HTTP. Al escribir una interfaz simple e insertar anotaciones, puede definir los parámetros, el formato, la dirección y otra información de la solicitud HTTP.

Feign integra Ribbon (equilibrio de carga) y Hystrix (interrupción de servicio), por lo que ya no necesitamos usar estos dos componentes explícitamente.

SpringCloudFeign amplía el soporte para las anotaciones SpringMVC basadas en NetflixFeign. Bajo su implementación, solo necesitamos crear una interfaz y configurarla con anotaciones para completar el enlace de la interfaz con el proveedor de servicios. Simplificó el desarrollo del cliente de llamadas de servicio autoencapsulado SpringCloudRibbon.

2. Pasos para usar OpenFeign

1. Descripción de la escena

Usamos un problema basado en escenarios para aprender el uso de OpenFeign, asumiendo会员服务Llamar优惠券服务Una interfaz que devuelve la información del cupón del miembro que se puede utilizar.

La interfaz de este cupón es la siguiente. Esta es una interfaz para pruebas y no tiene una lógica comercial real.
Insertar descripción de la imagen aquí

	@RequestMapping("member/list")
    public R list(){
        CouponEntity couponEntity = new CouponEntity();
        couponEntity.setCouponName("慢100减80");

        return R.ok().put("page", Arrays.asList(couponEntity));
    }