Κοινή χρήση τεχνολογίας

Σημειώσεις μελέτης Grain Mall-22-Distributed Components-SpringCloud-OpenFeign Test Remote Call

2024-07-11

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


Μάθαμε για το κέντρο εγγραφής στην προηγούμενη ενότητα Γνωρίζουμε ότι προτού ο διακομιστής Α καλέσει τον διακομιστή Β, θα λάβει την IP της υπηρεσίας Β από το κέντρο εγγραφής και, στη συνέχεια, ο διακομιστής Α υποβάλλει αίτημα στην υπηρεσία Β.

Πώς λοιπόν ο διακομιστής Α υποβάλλει αίτημα στην υπηρεσία Β;

Αυτό είναι το κύριο ερώτημα που πρέπει να εξεταστεί σε αυτήν την ενότητα.

Σε αυτό το έργο, το στοιχείο OpenFeign χρησιμοποιείται για την ολοκλήρωση κλήσεων μεταξύ των υπηρεσιών.

1. Εισαγωγή στο OpenFeign

Το OpenFeign είναι ένας δηλωτικός πελάτης HTTP του οποίου ο σκοπός είναι να διευκολύνει τις απομακρυσμένες κλήσεις.

Το Feign παρέχει ένα πρότυπο για αιτήματα HTTP Γράφοντας μια απλή διεπαφή και εισάγοντας σχολιασμούς, μπορείτε να ορίσετε τις παραμέτρους, τη μορφή, τη διεύθυνση και άλλες πληροφορίες του αιτήματος HTTP.

Το Feign ενσωματώνει το Ribbon (εξισορρόπηση φορτίου) και το Hystrix (διακοπή λειτουργίας), έτσι ώστε να μην χρειάζεται πλέον να χρησιμοποιούμε ρητά αυτά τα δύο στοιχεία.

Το SpringCloudFeign επεκτείνει την υποστήριξη για σχολιασμούς SpringMVC που βασίζονται στο NetflixFeign, στο πλαίσιο της εφαρμογής του, χρειάζεται μόνο να δημιουργήσουμε μια διεπαφή και να τη διαμορφώσουμε χρησιμοποιώντας σχολιασμούς για να ολοκληρώσουμε τη σύνδεση της διεπαφής με τον πάροχο υπηρεσιών. Απλοποιήθηκε η ανάπτυξη του αυτο-ενθυλακωμένου προγράμματος-πελάτη κλήσεων υπηρεσίας SpringCloudRibbon.

2. Βήματα για τη χρήση του OpenFeign

1. Περιγραφή σκηνής

Χρησιμοποιούμε ένα πρόβλημα που βασίζεται σε σενάριο για να μάθουμε τη χρήση του OpenFeign, υποθέτοντας会员服务Για να καλέσετε优惠券服务Μια διεπαφή που επιστρέφει πληροφορίες κουπονιού μέλους που μπορούν να χρησιμοποιηθούν.

Η διεπαφή αυτού του κουπονιού είναι η εξής. Πρόκειται για μια διεπαφή για δοκιμή και δεν έχει πραγματική επιχειρηματική λογική.
Εισαγάγετε την περιγραφή της εικόνας εδώ

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

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