アノテーションインターフェース EmbeddedKafka
@ExtendWith(EmbeddedKafkaCondition.class)
@TargetSE(TYPESE)
@RetentionSE(RUNTIMESE)
@DocumentedSE
@InheritedSE
@DisabledInAotMode
public @interface EmbeddedKafka
Spring for Apache Kafka ベースのテストを実行するテストクラスで指定できるアノテーション。通常の Spring TestContext フレームワークに加えて、次の機能を提供します。
EmbeddedKafkaBroker
Bean をEmbeddedKafkaBroker.BEAN_NAME
Bean 名で登録します。
このアノテーションの一般的な使用方法は次のとおりです。
@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 のプロパティ。SpringResource
url は、ブローカー構成に追加する必要があるプロパティの場所を指定します。boolean
int
boolean
Zookeeper の代わりに KRaft を使用します。デフォルトは false です。int
int[]
kafka ブローカーがリッスンする明示的なポートを設定します。StringSE[]
作成する必要のあるトピックトピックには、プロパティプレースホルダーが含まれる場合があります。int
int
内部 ZK クライアント接続のタイムアウト。int
内部 ZK クライアントセッションのタイムアウト。int
組み込み Zookeeper がリッスンするポートを設定します。
要素の詳細
value
- 戻り値:
- ブローカーの数
- デフォルト:
- 1
count
- 戻り値:
- ブローカーの数
- デフォルト:
- 1
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 brokerPropertiesLocationSpringResource
url は、ブローカー構成に追加する必要があるプロパティの場所を指定します。Spring Test コンテキストで使用する場合、brokerPropertiesLocation
URL とプロパティ自体に、初期化中に解決されるプレースホルダーが含まれる場合があります。brokerProperties()
で指定されたプロパティは、brokerPropertiesLocation
で見つかったプロパティを上書きします。プレースホルダーは、Spring Test アプリケーションコンテキストが存在する場合にのみ解決されます(@SpringJunitConfig or @SpringRunner
を使用する場合など)。- 戻り値:
- 追加するプロパティの場所を指定する
Resource
URL - 関連事項:
- デフォルト:
- ""
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