クラス KafkaTransactionManager<K,V>
java.lang.ObjectSE
org.springframework.transaction.support.AbstractPlatformTransactionManager
org.springframework.kafka.transaction.KafkaTransactionManager<K,V>
- 型パラメーター:
K- 鍵の型。V- 値の型。
- 実装されているすべてのインターフェース:
SerializableSE、KafkaAwareTransactionManager<K,、V> ConfigurableTransactionManager、PlatformTransactionManager、TransactionManager
public class KafkaTransactionManager<K,V>
extends AbstractPlatformTransactionManager
implements KafkaAwareTransactionManager<K,V>
単一の Kafka
ProducerFactory の PlatformTransactionManager 実装。指定された ProducerFactory から Kafka プロデューサーをスレッドにバインドし、ProducerFactory ごとに 1 つのスレッドにバインドされたプロデューサーを潜在的に許可します。このローカル戦略は、外部トランザクション内で Kafka 操作を実行し、外部トランザクションと同期する代わりになります。この戦略では、たとえばメッセージングとデータベースアクセス間でトランザクションを共有するために、XA トランザクションを提供することはできません。
ProducerFactoryUtils.getTransactionalResourceHolder(ProducerFactory, String, java.time.Duration) を介してトランザクション Kafka リソースを取得するには、アプリケーションコードが必要です。Spring の KafkaTemplate は、スレッドにバインドされたプロデューサーを自動検出し、自動的に参加します。
このトランザクションマネージャーのターゲットとして DefaultKafkaProducerFactory を使用することを強くお勧めします。それは再利用のためにプロデューサーをキャッシュするからです。
トランザクション同期は、同期の必要性が高い JDBC org.springframework.jdbc.datasource.DataSourceTransactionManager などのデータストアベースの Spring トランザクションマネージャーと一緒に使用される可能性があるため、デフォルトではオフになっています。
- 作成者:
- Gary Russell, Soby Chacko
- 関連事項:
ネストされたクラスの要約
クラス org.springframework.transaction.support.AbstractPlatformTransactionManager から継承されたネストクラス / インターフェース
AbstractPlatformTransactionManager.SuspendedResourcesHolderフィールドのサマリー
クラス org.springframework.transaction.support.AbstractPlatformTransactionManager から継承されたフィールド
logger, SYNCHRONIZATION_ALWAYS, SYNCHRONIZATION_NEVER, SYNCHRONIZATION_ON_ACTUAL_TRANSACTIONコンストラクターの概要
コンストラクターコンストラクター説明KafkaTransactionManager(ProducerFactory<K, V> producerFactory) ProducerFactory を指定して、新しい KafkaTransactionManager を作成します。メソッドのサマリー
修飾子と型メソッド説明protected voiddoBegin(ObjectSE transaction, TransactionDefinition definition) protected voiddoCleanupAfterCompletion(ObjectSE transaction) protected voiddoCommit(DefaultTransactionStatus status) protected ObjectSEprotected voidprotected voiddoRollback(DefaultTransactionStatus status) protected voidprotected ObjectSE生産ファクトリを取得します。protected booleanisExistingTransaction(ObjectSE transaction) voidsetCloseTimeout(DurationSE closeTimeout) プロデューサーを閉じるときに待機する最大時間を設定します。デフォルトは 5 秒です。voidsetTransactionIdPrefix(StringSE transactionIdPrefix) トランザクション ID プレフィックスを設定して、プロデューサーファクトリのプレフィックスをオーバーライドします。クラス org.springframework.transaction.support.AbstractPlatformTransactionManager から継承されたメソッド
commit, determineTimeout, getDefaultTimeout, getTransaction, getTransactionExecutionListeners, getTransactionSynchronization, invokeAfterCompletion, isFailEarlyOnGlobalRollbackOnly, isGlobalRollbackOnParticipationFailure, isNestedTransactionAllowed, isRollbackOnCommitFailure, isValidateExistingTransaction, prepareForCommit, prepareSynchronization, registerAfterCompletionWithExistingTransaction, resume, rollback, setDefaultTimeout, setFailEarlyOnGlobalRollbackOnly, setGlobalRollbackOnParticipationFailure, setNestedTransactionAllowed, setRollbackOnCommitFailure, setTransactionExecutionListeners, setTransactionSynchronization, setTransactionSynchronizationName, setValidateExistingTransaction, shouldCommitOnGlobalRollbackOnly, suspend, triggerBeforeCommit, triggerBeforeCompletion, useSavepointForNestedTransactionクラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース org.springframework.transaction.ConfigurableTransactionManager から継承されたメソッド
addListenerインターフェース org.springframework.transaction.PlatformTransactionManager から継承されたメソッド
commit, getTransaction, rollback
コンストラクターの詳細
KafkaTransactionManager
ProducerFactory を指定して、新しい KafkaTransactionManager を作成します。このマネージャーは、同期の必要性が高い DataSourceTransactionManager などのデータストアベースの Spring トランザクションマネージャーと一緒に使用される可能性があるため、トランザクション同期はデフォルトでオフになっています。常に 1 人のマネージャーのみが同期を駆動できます。- パラメーター:
producerFactory- 使用する ProducerFactory
メソッドの詳細
setTransactionIdPrefix
トランザクション ID プレフィックスを設定して、プロデューサーファクトリのプレフィックスをオーバーライドします。- パラメーター:
transactionIdPrefix- プレフィックス。- 導入:
- 2.3
getProducerFactory
生産ファクトリを取得します。- 次で指定:
- インターフェース
KafkaAwareTransactionManager<K,のV> getProducerFactory - 戻り値:
- producerFactory
setCloseTimeout
プロデューサーを閉じるときに待機する最大時間を設定します。デフォルトは 5 秒です。- パラメーター:
closeTimeout- クローズタイムアウト。- 導入:
- 2.1.14
doGetTransaction
- 次で指定:
- クラス
AbstractPlatformTransactionManagerのdoGetTransaction
isExistingTransaction
- オーバーライド:
- クラス
AbstractPlatformTransactionManagerのisExistingTransaction
doBegin
- 次で指定:
- クラス
AbstractPlatformTransactionManagerのdoBegin
doSuspend
- オーバーライド:
- クラス
AbstractPlatformTransactionManagerのdoSuspend
doResume
- オーバーライド:
- クラス
AbstractPlatformTransactionManagerのdoResume
doCommit
- 次で指定:
- クラス
AbstractPlatformTransactionManagerのdoCommit
doRollback
- 次で指定:
- クラス
AbstractPlatformTransactionManagerのdoRollback
doSetRollbackOnly
- オーバーライド:
- クラス
AbstractPlatformTransactionManagerのdoSetRollbackOnly
doCleanupAfterCompletion
- オーバーライド:
- クラス
AbstractPlatformTransactionManagerのdoCleanupAfterCompletion