クラス 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
- 関連事項:
ネストされたクラスのサマリー
クラス 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 void
doBegin
(ObjectSE transaction, TransactionDefinition definition) protected void
doCleanupAfterCompletion
(ObjectSE transaction) protected void
doCommit
(DefaultTransactionStatus status) protected ObjectSE
protected void
protected void
doRollback
(DefaultTransactionStatus status) protected void
protected ObjectSE
生産ファクトリを取得します。protected boolean
isExistingTransaction
(ObjectSE transaction) void
setCloseTimeout
(DurationSE closeTimeout) プロデューサーを閉じるときに待機する最大時間を設定します。デフォルトは 5 秒です。void
setTransactionIdPrefix
(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
- 戻り値:
- プロデューサーファクトリ
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