技術共有

Grain Mall 学習ノート-22-分散コンポーネント-SpringCloud-OpenFeign テスト リモート コール

2024-07-11

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


前のセクションで登録センターについて学習しましたが、サーバー A がサーバー B を呼び出す前に、登録センターからサービス B の IP を取得し、その後サーバー A がサービス B にリクエストを行うことがわかりました。

では、サーバー A はどのようにしてサービス B にリクエストを行うのでしょうか?

これがこのセクションで扱うべき主な質問です。

このプロジェクトでは、OpenFeign コンポーネントはサービス間の呼び出しを完了するために使用されます。OpenFeign は HTTP リクエストのカプセル化です。

1. OpenFeign の概要

OpenFeign は、リモート呼び出しを容易にすることを目的とした宣言型 HTTP クライアントです。

Feign は、HTTP リクエストのテンプレートを提供し、単純なインターフェイスを記述してアノテーションを挿入することで、HTTP リクエストのパラメータ、形式、アドレス、その他の情報を定義できます。

Feign は、Ribbon (負荷分散) と Hystrix (サービス中断) を統合しているため、これら 2 つのコンポーネントを明示的に使用する必要がなくなりました。

SpringCloudFeign は、NetflixFeign に基づいて SpringMVC アノテーションのサポートを拡張します。その実装では、インターフェースを作成し、アノテーションを使用してそれを構成し、サービスプロバイダーへのインターフェースのバインディングを完了するだけです。 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));
    }