Technologieaustausch

Grain Mall-Studiennotizen-22-Distributed Components-SpringCloud-OpenFeign-Test-Remote-Anruf

2024-07-11

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


Wir haben im vorherigen Abschnitt etwas über das Registrierungszentrum erfahren. Wir wissen, dass Server A, bevor er Server B anruft, die IP von Dienst B vom Registrierungszentrum erhält und Server A dann eine Anfrage an Dienst B stellt.

Wie stellt Server A eine Anfrage an Dienst B?

Dies ist die Hauptfrage, die in diesem Abschnitt behandelt werden soll.

In diesem Projekt wird die OpenFeign-Komponente verwendet, um Aufrufe zwischen Diensten abzuschließen. OpenFeign ist eine Kapselung von HTTP-Anfragen.

1. Einführung in OpenFeign

OpenFeign ist ein deklarativer HTTP-Client, dessen Zweck es ist, Remote-Aufrufe zu vereinfachen.

Feign stellt eine Vorlage für HTTP-Anfragen bereit. Durch das Schreiben einer einfachen Schnittstelle und das Einfügen von Anmerkungen können Sie die Parameter, das Format, die Adresse und andere Informationen der HTTP-Anfrage definieren.

Feign integriert Ribbon (Lastausgleich) und Hystrix (Service Breaking), sodass wir diese beiden Komponenten nicht mehr explizit verwenden müssen.

SpringCloudFeign erweitert die Unterstützung für SpringMVC-Annotationen basierend auf NetflixFeign. Im Rahmen seiner Implementierung müssen wir lediglich eine Schnittstelle erstellen und diese mithilfe von Annotationen konfigurieren, um die Schnittstellenbindung an den Dienstanbieter abzuschließen. Vereinfachte die Entwicklung des selbstgekapselten Service-Call-Clients von SpringCloudRibbon.

2. Schritte zur Verwendung von OpenFeign

1. Szenenbeschreibung

Wir verwenden ein szenariobasiertes Problem, um die Verwendung von OpenFeign zu erlernen会员服务Anrufen优惠券服务Eine Schnittstelle, die Gutscheininformationen des Mitglieds zurückgibt, die verwendet werden können.

Die Schnittstelle dieses Gutscheins ist wie folgt. Dies ist eine Schnittstelle zum Testen und verfügt über keine echte Geschäftslogik.
Fügen Sie hier eine Bildbeschreibung ein

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

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