Condivisione della tecnologia

Note di studio su Grain Mall-22-Componenti distribuiti-SpringCloud-OpenFeign Test Chiamata remota

2024-07-11

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


Abbiamo appreso del centro di registrazione nella sezione precedente. Sappiamo che prima che il server A chiami il server B, otterrà l'IP del servizio B dal centro di registrazione, quindi il server A effettua una richiesta al servizio B.

Quindi, come fa il server A a effettuare una richiesta al servizio B?

Questa è la questione principale da affrontare in questa sezione.

In questo progetto, il componente OpenFeign viene utilizzato per completare le chiamate tra servizi OpenFeign è un incapsulamento di richieste HTTP.

1. Introduzione a OpenFeign

OpenFeign è un client HTTP dichiarativo il cui scopo è facilitare le chiamate remote.

Feign fornisce un modello per le richieste HTTP scrivendo una semplice interfaccia e inserendo annotazioni, è possibile definire i parametri, il formato, l'indirizzo e altre informazioni della richiesta HTTP.

Feign integra Ribbon (bilanciamento del carico) e Hystrix (interruzione del servizio), in modo che non sia più necessario utilizzare questi due componenti esplicitamente.

SpringCloudFeign estende il supporto per le annotazioni SpringMVC basate su NetflixFeign Nell'ambito della sua implementazione, dobbiamo solo creare un'interfaccia e configurarla utilizzando le annotazioni per completare l'associazione dell'interfaccia al fornitore di servizi. Semplificato lo sviluppo del client di chiamata di servizio autoincapsulato di SpringCloudRibbon.

2. Passaggi per utilizzare OpenFeign

1. Descrizione della scena

Utilizziamo un problema basato su scenari per apprendere l'uso di OpenFeign, assumendo会员服务Chiamare优惠券服务Un'interfaccia che restituisce le informazioni sul coupon del membro che possono essere utilizzate.

L'interfaccia di questo coupon è la seguente. Si tratta di un'interfaccia per i test e non ha una vera logica aziendale.
Inserisci qui la descrizione dell'immagine

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

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