前の調査では、リボンの負荷分散機能を使用しました。これにより、リモート呼び出しのコードが大幅に簡素化されました。
これを学んだら、将来、似たような繰り返しコードをたくさん書く必要があるかもしれません。フォーマットは基本的に同じですが、パラメーターが異なります。これらのコードを再度最適化するためのよりエレガントな方法はありますか?
これは、次に学習するFeign関数です。
2.1。はじめに(ly-consumerマイクロサービスグループで構成)
なぜ変装と呼ばれるのですか?
Feignは、Restの要求を非表示にし、SpringMVCと同様のコントローラーのふりをすることができます。URLの接続、パラメータの接続などを自分で行う必要はなく、すべてをFeignに任せる必要があります。
2.2。クイックスタート
2.2.1。依存関係をインポートする
まず第一に、これはインターフェースです。Feignは動的プロキシを使用して実装クラスを生成します。これはmybatisマッパーと非常によく似ています
@FeignClientは、@ Mapperアノテーションと同様に、これがFeignクライアントであることを宣言します。同時に、value属性を使用してサービス名を指定します
インターフェイスの定義メソッドは、SpringMVCアノテーションを完全に採用しています。Feignは、アノテーションに基づいてURLを生成し、結果にアクセスするのに役立ちます。
2.2.3。偽の機能をオンにする
スタートアップクラスにアノテーションを追加して、Feign関数を有効にします
@EnableFeignClients // Feign関数を有効にする
2.2.4。テストを開始します。
2.3。負荷分散
Feign自体には、リボンの依存関係と自動構成が統合されています。
したがって、追加の依存関係を導入したり、RestTemplateオブジェクトを登録したりする必要はありません。
さらに、前のレッスンで説明したようにリボンを構成でき、ribbon.xxを介してグローバルに構成できます。サービス名.ribbon.xxを使用して、指定したサービスを構成することもできます。
user-service:
ribbon:
ConnectTimeout: 250 # 连接超时时间(ms)
ReadTimeout: 1000 # 通信超时时间(ms)
OkToRetryOnAllOperations: true # 是否对所有操作重试
MaxAutoRetriesNextServer: 1 # 同一服务不同实例的重试次数
MaxAutoRetries: 1 # 同一实例的重试次数