web-dev-qa-db-ja.com

kafkaがマイクロサービスアーキテクチャに関与している場合、コントラクトテストを実装するにはどうすればよいですか?

私は現在、マイクロサービスアーキテクチャにkafkaを実装しているプロジェクトに取り組んでいます。 mSからkafkaへのトピックインタラクションのコントラクトテストケースの作成に成功しましたか?pact-jvmを使用してください。

私の実装は、microservice1がメッセージをRESTクライアントに公開し、クライアントがメッセージをKafkaトピックに投稿することです。 microservice2は、GETメソッドを使用してKafkaトピックからメッセージを取得します。

12

Pact-JVMは、何らかのメカニズム(通常はメッセージキュー)で(一方向に)消費されるメッセージをカプセル化するメッセージパクトをサポートします。アイデアは、コンシューマーコードがコンシューマーテストを介してメッセージを消費できることをテストし、プロバイダーが適切なメッセージを生成することを確認することです。実際のメッセージキューはテストでは使用されません。

Contract over a message queue

これは元々、Kafkaメッセージキューを介して通信するマイクロサービスにコントラクトテストを適用するために開発されました。

テストは、要求/応答協定テストと同様に2つの部分で実行されますが、コンシューマーはコンシューマー協定テスト中にメッセージを読み取り、成功した場合は協定ファイルが書き込まれます。次に、プロバイダーコードが呼び出されてメッセージが生成され、それがpactファイルにあるものと比較されます。

enter image description here

Pact-JVMドキュメントの関連セクションは次のとおりです。

16