アノテーションインターフェース EmbeddedKafka
@ExtendWith(EmbeddedKafkaCondition.class)
@TargetSE(TYPESE)
@RetentionSE(RUNTIMESE)
@DocumentedSE
@InheritedSE
@DisabledInAotMode
public @interface EmbeddedKafka
Spring for Apache Kafka ベースのテストを実行するテストクラスで指定できるアノテーション。通常の Spring TestContext フレームワークに加えて、次の機能を提供します。
EmbeddedKafkaBrokerBean をEmbeddedKafkaBroker.BEAN_NAMEBean 名で登録します。
このアノテーションの一般的な使用方法は次のとおりです。
@RunWith(SpringRunner.class)
@EmbeddedKafka
public class MyKafkaTests {
@Autowired
private EmbeddedKafkaBroker kafkaEmbedded;
@Value("${spring.embedded.kafka.brokers}")
private String brokerAddresses;
}
EmbeddedKafka を SpringJUnitConfig と併用する場合は、複数のテストを実行するときに JVM のシャットダウン時に特定の競合状態が発生するのを防ぐために、テストクラスで DirtiesContext を使用することをお勧めします。- 導入:
- 1.3
- 作成者:
- Artem Bilan, Elliot Metsger, Zach Olauson, Gary Russell, Sergio Lourenco, Pawel Lozinski, Adrian Chlebosz, Soby Chacko
- 関連事項:
オプション要素の概要
オプション要素修飾子と型オプションの要素説明int管理操作のタイムアウト(秒単位)(例:ブートストラップサーバーアドレスおよびデフォルトの "spring.embedded.kafka.brokers" で設定するプロパティ名。StringSE[]実行前にブローカー構成に追加する必要がある形式 key = value のプロパティ。SpringResourceurl は、ブローカー構成に追加する必要があるプロパティの場所を指定します。booleanintbooleanZookeeper の代わりに KRaft を使用します。デフォルトは false です。intint[]kafka ブローカーがリッスンする明示的なポートを設定します。StringSE[]作成する必要のあるトピックトピックには、プロパティプレースホルダーが含まれる場合があります。intint内部 ZK クライアント接続のタイムアウト。int内部 ZK クライアントセッションのタイムアウト。int組み込み Zookeeper がリッスンするポートを設定します。
要素の詳細
value
count
controlledShutdown
boolean controlledShutdown- 戻り値:
kafka.utils.TestUtils.createBrokerConfig()に渡されます。
- デフォルト:
false
ports
int[] portsKafka ブローカーがリッスンする明示的なポートを設定します。他のプロセスからアクセスする組み込みブローカーを実行する場合に便利です。インスタンスごとにポートを指定する必要があります。つまり、ポートの数は count 属性の値と一致する必要があります。KRaft モードを使用する場合、このプロパティは無効です。- 戻り値:
- ブローカー用のポート。
- 導入:
- 2.2.4
- デフォルト:
{0}
zookeeperPort
int zookeeperPort組み込み Zookeeper がリッスンするポートを設定します。KRaft モードを使用する場合、このプロパティは無効です。- 戻り値:
- ポート。
- 導入:
- 2.3
- デフォルト:
0
partitions
int partitions- 戻り値:
- トピックごとのパーティション
- デフォルト:
2
topics
StringSE[] topics作成する必要のあるトピックトピックには、プロパティプレースホルダーが含まれる場合があります。topics = "${kafka.topic.one:topicOne}"トピックはpartitions()パーティションで作成されます。他のパーティション数で他のトピックをプロビジョニングするには、オートワイヤーブローカーでaddTopics(NewTopic... topics)メソッドを呼び出します。プレースホルダーは、Spring Test アプリケーションコンテキストが存在する場合にのみ解決されます(@SpringJunitConfig or @SpringRunnerを使用する場合など)。- 戻り値:
- 作成するトピック
- デフォルト:
{}
brokerProperties
StringSE[] brokerProperties実行前にブローカー構成に追加する必要がある形式 key = value のプロパティ。Spring Test コンテキストで使用する場合、プロパティにはプロパティプレースホルダーが含まれる場合があります。delete.topic.enable=${topic.delete:true}。プレースホルダーは、Spring Test アプリケーションコンテキストが存在する場合にのみ解決されます(@SpringJunitConfig or @SpringRunnerを使用する場合など)。- 戻り値:
- 追加するプロパティ
- 関連事項:
- デフォルト:
{}
brokerPropertiesLocation
StringSE brokerPropertiesLocationSpringResourceurl は、ブローカー構成に追加する必要があるプロパティの場所を指定します。Spring Test コンテキストで使用する場合、brokerPropertiesLocationURL とプロパティ自体に、初期化中に解決されるプレースホルダーが含まれる場合があります。brokerProperties()で指定されたプロパティは、brokerPropertiesLocationで見つかったプロパティを上書きします。プレースホルダーは、Spring Test アプリケーションコンテキストが存在する場合にのみ解決されます(@SpringJunitConfig or @SpringRunnerを使用する場合など)。- 戻り値:
- 追加するプロパティの場所を指定する
ResourceURL - 関連事項:
- デフォルト:
""
bootstrapServersProperty
StringSE bootstrapServersPropertyブートストラップサーバーアドレスおよびデフォルトの "spring.embedded.kafka.brokers" で設定するプロパティ名。3.0.10 以降はデフォルトでspring.kafka.bootstrap-serversになります。- 戻り値:
- プロパティ名。
- 導入:
- 2.3
- 関連事項:
- デフォルト:
"spring.kafka.bootstrap-servers"
zkConnectionTimeout
int zkConnectionTimeout内部 ZK クライアント接続のタイムアウト。KRaft モードを使用する場合、このプロパティは無効です。- 戻り値:
- デフォルトの
EmbeddedKafkaZKBroker.DEFAULT_ZK_CONNECTION_TIMEOUT。 - 導入:
- 2.4
- デフォルト:
18000
zkSessionTimeout
int zkSessionTimeout内部 ZK クライアントセッションのタイムアウト。KRaft モードを使用する場合、このプロパティは無効です。- 戻り値:
- デフォルトの
EmbeddedKafkaZKBroker.DEFAULT_ZK_SESSION_TIMEOUT。 - 導入:
- 2.4
- デフォルト:
18000
adminTimeout
int adminTimeout管理操作(トピックの作成、閉じるなど)のタイムアウト(秒単位)。- 戻り値:
- デフォルトの
EmbeddedKafkaBroker.DEFAULT_ADMIN_TIMEOUT - 導入:
- 2.8.5
- デフォルト:
10
kraft
boolean kraftZookeeper の代わりに KRaft を使用します。デフォルトは false です。- 戻り値:
- KRaft を使用するかどうか。
- 導入:
- 3.6
- デフォルト:
false