Partage de technologie

Notes d'étude de Grain Mall-22-Composants distribués-SpringCloud-OpenFeign Test Appel à distance

2024-07-11

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


Nous avons entendu parler du centre d'enregistrement dans la section précédente. Nous savons qu'avant que le serveur A n'appelle le serveur B, il obtiendra l'adresse IP du service B auprès du centre d'enregistrement, puis le serveur A fera une demande au service B.

Alors, comment le serveur A fait-il une requête au service B ?

C’est la question principale à aborder dans cette section.

Dans ce projet, le composant OpenFeign est utilisé pour effectuer des appels entre services. OpenFeign est une encapsulation de requêtes HTTP.

1. Introduction à OpenFeign

OpenFeign est un client HTTP déclaratif dont le but est de faciliter les appels à distance.

Feign fournit un modèle pour les requêtes HTTP En écrivant une interface simple et en insérant des annotations, vous pouvez définir les paramètres, le format, l'adresse et d'autres informations de la requête HTTP.

Feign intègre Ribbon (équilibrage de charge) et Hystrix (rupture de service), afin que nous n'ayons plus besoin d'utiliser explicitement ces deux composants.

SpringCloudFeign étend la prise en charge des annotations SpringMVC basées sur NetflixFeign. Dans le cadre de son implémentation, il nous suffit de créer une interface et de la configurer à l'aide d'annotations pour compléter la liaison de l'interface au fournisseur de services. Simplification du développement du client d'appel de service auto-encapsulé de SpringCloudRibbon.

2. Étapes pour utiliser OpenFeign

1. Description de la scène

Nous utilisons un problème basé sur un scénario pour apprendre à utiliser OpenFeign, en supposant会员服务Appeler优惠券服务Une interface qui renvoie les informations de coupon du membre pouvant être utilisées.

L'interface de ce coupon est la suivante. Il s'agit d'une interface de test et n'a pas de véritable logique métier.
Insérer la description de l'image ici

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

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