I.はじめに
1、OpenFeignプロフィール
装うは、宣言型のWebサービスクライアントです。書かれたWebサービスクライアントのふりメイク使用が容易。その使用は、サービス・インターフェースを定義し、その上に注釈を追加することです。プラガブルタイプのエンコーダとデコーダとふりノートと注釈JAX-RSを含む、注釈サポートを挿入しました。装うに春クラウドパッケージは、SpringMVC標準のアノテーションとHttpMessageConvertersをサポートします。装うリボンはユーレカとの組み合わせで、サポートの負荷分散に使用することができます。公式文書アドレス:https://cloud.spring.io/spring-cloud-openfeign/reference/html/。
2差、OpenFeign有するふり
-
装うは、サービス登録サービスセンターを呼び出すために、クライアントの負荷分散を行うために使用SpringCloudコンポーネント、構築されたリボンの軽量HTTP RESTfulなサービスのクライアントです。装う使用:使用装うノートはインタフェースを定義する、インターフェースはサービスレジストリこのサービスコールを呼び出すことができます。
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> </dependency>
-
OpenFeignは、@RequestMappingなどとして装うに基づいてSpringCloudサポートSpringMVCコメント、です。@FeignClientインタフェースのOpenFeignは@RequestMappingノートSpringMVCの下で解決し、途中で動的プロキシ実装クラスを生成し、実装クラスや他のサービスへの呼び出しの負荷分散を行うことができます。
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
手順を使用して2つ、OpenFeign
依存装うポンポンファイルで導入された新しいモジュールを作成します。1.
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
マスターブート注釈付き@EnableFeignClientsオープン装うに基づいて2、。
図3に示すように、消費者側のインターフェースを作成する、インターフェース方法は、サービスプロバイダにおける方法です。
@Component
//添加Feign注解,value=要寻找的微服务名称
@FeignClient("CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService {
@GetMapping("/payment/get/{id}")
CommonResult getPaymentById(@PathVariable("id") Long id);
}
4は、あなた自身のビジネスクラスを定義し、呼び出すメソッド装うインターフェイスを手動でRestTempLate行くを導入することなく、することができます。
@Resource
private PaymentFeignService paymentFeignService;
@GetMapping("/consumer/payment/get/{id}")
public CommonResult<Payment> getPayment(@PathVariable("id") Long id){
return paymentFeignService.getPaymentById(id);
}
三、OpenFeignタイムアウト制御
1.説明
消費者とサービス提供者側との間のサービス要求処理時間の時差があり、プログラムがタイムアウトエラーにつながります。この問題を解決するために、双方は、プログラムの正常な動作を保証するために、いくつかのためにいくつかのビジネスをすることに合意しました。次のようにリクエストはエラーページをタイムアウトしました:
2、タイムアウト設定は、application.yml消費の最後に次の設定を追加します。
#设置feign客户端超时时间(OpenFeign默认支持Ribbon)
ribbon:
# 指的是建立连接后从服务器读取到可用资源所用的时间,单位ms
ReadTimeout: 5000
# 指的是建立连接所用的时间,适用于网络状态正常的情况下,两端连接所用的时间,单位ms
ConnectTimeout: 5000
四、OpenFeignログ印刷
。1、ふり印刷機能ログを提供し、ログレベルは、HTTPリクエストふり、状況および出力を監視するためのインターフェースへの呼び出しの詳細を理解するために配置することによって調整することができます。
2、ログレベル
- NONE:デフォルトでは、すべてのログを表示しません。
- BASIC:メソッド、URL、および応答ステータスコードの実行時間を記録する要求のみ。
- HEADERS:定義で基本情報は、リクエストとレスポンスのヘッダ情報があります。
- FULL:定義されている情報ヘッダは、テキストとメタデータ要求と応答があります。
図3に示すように、設定方法
-
クラス構成を定義します。
@Configuration public class FeignConfig { @Bean Logger.Level feignLoggerLevel(){ return Logger.Level.FULL; } }
-
YMLファイルを変更します
logging: level: # feign日志以什么级别监控哪个接口 com.xhanglog.springcloud.service.PaymentFeignService: debug