クラス ContainerProperties

java.lang.ObjectSE
org.springframework.kafka.listener.ConsumerProperties
org.springframework.kafka.listener.ContainerProperties

public class ContainerProperties extends ConsumerProperties
リスナーコンテナーのランタイムプロパティが含まれています。
作成者:
Gary Russell, Artem Bilan, Artem Yakshin, Johnny Lim, Lukasz Kaminski, Kyuhyeok Park, Wang Zhiyang
  • フィールドの詳細

  • コンストラクターの詳細

    • ContainerProperties

      public ContainerProperties(StringSE... topics)
      指定されたトピックをサブスクライブするコンテナーのプロパティを作成します。
      パラメーター:
      topics - トピック。
    • ContainerProperties

      public ContainerProperties(PatternSE topicPattern)
      指定されたパターンに一致するトピックをサブスクライブするコンテナーのプロパティを作成します。フレームワークは、指定されたパターンに一致するすべてのトピックにサブスクライブするコンテナーを作成して、動的に割り当てられたパーティションを取得します。チェック時に存在するトピックに対して定期的にパターンマッチングを行います。
      パラメーター:
      topicPattern - パターン。
      関連事項:
      • CommonClientConfigs.METADATA_MAX_AGE_CONFIG
    • ContainerProperties

      public ContainerProperties(TopicPartitionOffset... topicPartitions)
      提供されたトピックパーティションを自分自身に割り当てるコンテナーのプロパティを作成します。
      パラメーター:
      topicPartitions - トピックのパーティション。
  • メソッドの詳細

    • setMessageListener

      public void setMessageListener(ObjectSE messageListener)
      メッセージリスナーを設定します。MessageListener または AcknowledgingMessageListener である必要があります。
      パラメーター:
      messageListener - リスナー。
    • setAckMode

      public void setAckMode(ContainerProperties.AckMode ackMode)
      自動 ack(構成プロパティ内)が false の場合に使用する ack モードを設定します。
      • RECORD: 各レコードがリスナーによって処理された後、オフセットをコミットします。
      • BATCH: すべてのレコードがリスナーによって処理されたときに、コンシューマーから受信したレコードの各バッチのオフセットをコミットします
      • 時間: ackTime ミリ秒数後に保留中のオフセットをコミットします。(ConsumerProperties#setPollTimeout(long) pollTimeout より大きくする必要があります。
      • COUNT: 少なくとも ackCount の数のレコードが処理された後、保留中のオフセットをコミットします
      • COUNT_TIME: ackTime ミリ秒数、または少なくとも ackCount 数のレコードが処理された後、保留中のオフセットをコミットします。
      • MANUAL: リスナーは acking に責任があります。AcknowledgingMessageListener を使用してください。前のポーリングによって返されたすべてのレコードがリスナーによって処理されると、ACK がキューに入れられ、オフセットがコミットされます。
      • MANUAL_IMMEDIATE: リスナーは acking に責任があります。AcknowledgingMessageListener を使用してください。Acknowledgment が呼び出し元のコンシューマースレッドで確認応答されると、コミットはすぐに実行されます。それ以外の場合は、前のポーリングによって返されたすべてのレコードがリスナーによって処理されたときに、ack がキューに入れられ、オフセットがコミットされます。呼び出し元のスレッドで確認する場合としない場合がある場合、結果は不確定になります。
      パラメーター:
      ackMode - ContainerProperties.AckMode; デフォルトの BATCH。
      関連事項:
    • setAckCount

      public void setAckCount(int count)
      ContainerProperties.AckMode.COUNT または ContainerProperties.AckMode.COUNT_TIME が使用されているときにオフセットがコミットされるまでの未処理のレコード数の数を設定します。
      パラメーター:
      count - カウント
    • setAckTime

      public void setAckTime(long ackTime)
      ContainerProperties.AckMode.TIME または ContainerProperties.AckMode.COUNT_TIME が使用されている場合に、未処理のオフセットがコミットされるまでの時間 (ミリ秒) を設定します。ゼロより大きくなければなりません。
      パラメーター:
      ackTime - 時間
    • setListenerTaskExecutor

      public void setListenerTaskExecutor(@Nullable AsyncTaskExecutor listenerTaskExecutor)
      コンシューマーをポーリングするスレッドのエグゼキューターを設定します。
      パラメーター:
      listenerTaskExecutor - 執行者
      導入:
      2.8.9
    • setShutdownTimeout

      public void setShutdownTimeout(long shutdownTimeout)
      コンテナーをシャットダウンするためのタイムアウトを設定します。これは、#stop(Runnable) の呼び出しが戻る前にブロックする最大時間です。デフォルトの 10000L
      パラメーター:
      shutdownTimeout - シャットダウンタイムアウト。
    • setSyncCommitTimeout

      public void setSyncCommitTimeout(@Nullable DurationSE syncCommitTimeout)
      commitSync 操作のタイムアウトを設定します(ConsumerProperties.isSyncCommits() の場合。デフォルトの api タイムアウトプロパティをオーバーライドします。優先順位:
      オーバーライド:
      クラス ConsumerPropertiessetSyncCommitTimeout 
      パラメーター:
      syncCommitTimeout - タイムアウト。
      関連事項:
    • setIdleEventInterval

      public void setIdleEventInterval(@Nullable LongSE idleEventInterval)
      アイドルイベント間隔を設定します。設定すると、ポーリングがレコードを返さず、レコードが返されてからこの間隔が経過した場合にイベントが発行されます。
      パラメーター:
      idleEventInterval - 間隔。
      関連事項:
    • setIdleBeforeDataMultiplier

      public void setIdleBeforeDataMultiplier(double idleBeforeDataMultiplier)
      少なくとも 1 つのレコードが受信されるまで、setIdleEventInterval(Long) にこの値を掛けます。デフォルトの 5.0。
      パラメーター:
      idleBeforeDataMultiplier - 公開を許可するには false。
      導入:
      2.8
      関連事項:
    • setIdlePartitionEventInterval

      public void setIdlePartitionEventInterval(@Nullable LongSE idlePartitionEventInterval)
      アイドルパーティションイベント間隔を設定します。設定すると、ポーリングがパーティションのレコードを返さず、レコードが返されてからこの間隔が経過した場合にイベントが発行されます。
      パラメーター:
      idlePartitionEventInterval - 間隔。
    • getAckMode

      public ContainerProperties.AckMode getAckMode()
    • getAckCount

      public int getAckCount()
    • getAckTime

      public long getAckTime()
    • getMessageListener

      public ObjectSE getMessageListener()
    • getListenerTaskExecutor

      @Nullable public AsyncTaskExecutor getListenerTaskExecutor()
      コンシューマータスクエグゼキュータを返します。
      戻り値:
      執行者。
    • getShutdownTimeout

      public long getShutdownTimeout()
    • getIdleEventInterval

      @Nullable public LongSE getIdleEventInterval()
      アイドルイベント間隔を返します。
      戻り値:
      間隔。
    • getIdleBeforeDataMultiplier

      public double getIdleBeforeDataMultiplier()
      少なくとも 1 つのレコードが受信されるまで、setIdleEventInterval(Long) にこの値を掛けます。デフォルトの 5.0。
      戻り値:
      noIdleBeforeData。
      導入:
      2.8
      関連事項:
    • getIdlePartitionEventInterval

      @Nullable public LongSE getIdlePartitionEventInterval()
      アイドルパーティションイベント間隔を返します。
      戻り値:
      間隔。
    • getTransactionManager

      @DeprecatedSE(since="3.2", forRemoval=true) @Nullable public PlatformTransactionManager getTransactionManager()
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
    • setTransactionManager

      @DeprecatedSE(since="3.2", forRemoval=true) public void setTransactionManager(@Nullable PlatformTransactionManager transactionManager)
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      トランザクションを開始するようにトランザクションマネージャーを設定します。KafkaAwareTransactionManager の場合、リスナーの型 (レコードまたはバッチ) に応じて、オフセットは ContainerProperties.AckMode.RECORD および ContainerProperties.AckMode.BATCH と同等のセマンティクスでコミットされます。他のトランザクションマネージャーの場合、トランザクションマネージャーをコンテナーに追加すると、たとえば、同じトランザクションに参加するレコードまたはバッチインターセプターが容易になります (コンテナーの interceptBeforeTx プロパティを false に設定する必要があります)。
      パラメーター:
      transactionManager - トランザクションマネージャー。
      導入:
      1.3
      関連事項:
    • getKafkaAwareTransactionManager

      @Nullable public KafkaAwareTransactionManager<?,?> getKafkaAwareTransactionManager()
    • setKafkaAwareTransactionManager

      public void setKafkaAwareTransactionManager(@Nullable KafkaAwareTransactionManager<?,?> kafkaAwareTransactionManager)
      トランザクションマネージャーを設定してトランザクションを開始します。setTransactionManager(org.springframework.transaction.PlatformTransactionManager) を置き換えます。
      パラメーター:
      kafkaAwareTransactionManager - トランザクションマネージャー。
      導入:
      3.2
    • isBatchRecoverAfterRollback

      public boolean isBatchRecoverAfterRollback()
      true の場合、ロールバック後にバッチレコードを回復します。
      戻り値:
      回復するのは本当です。
      導入:
      3.2
    • setBatchRecoverAfterRollback

      public void setBatchRecoverAfterRollback(boolean batchRecoverAfterRollback)
      ロールバック後のバッチリカバリを有効にします。
      パラメーター:
      batchRecoverAfterRollback - 設定する batchRecoverAfterRollback。
      導入:
      3.2
    • getMonitorInterval

      public int getMonitorInterval()
    • setMonitorInterval

      public void setMonitorInterval(int monitorInterval)
      応答しないコンシューマーのチェック間隔(秒単位)。デフォルトの 30.
      パラメーター:
      monitorInterval - 間隔。
      導入:
      1.3.1
    • getScheduler

      @Nullable public TaskScheduler getScheduler()
      存在する場合は、タスクスケジューラを返します。
      戻り値:
      スケジューラー。
    • setScheduler

      public void setScheduler(@Nullable TaskScheduler scheduler)
      モニター間隔で使用されるスケジューラー。
      パラメーター:
      scheduler - スケジューラー。
      導入:
      1.3.1
      関連事項:
    • getNoPollThreshold

      public float getNoPollThreshold()
    • setNoPollThreshold

      public void setNoPollThreshold(float noPollThreshold)
      最後のポーリング / poll timeout からの時間がこの値を超えると、NonResponsiveConsumerEvent が公開されます。誤ったイベントが公開される原因となる可能性のある競合状態を回避するために、この値は 1.0 より大きくする必要があります。デフォルトの 3.0f
      パラメーター:
      noPollThreshold - しきい値
      導入:
      1.3.1
    • isLogContainerConfig

      public boolean isLogContainerConfig()
      true(INFO)の場合、コンテナー構成をログに記録します。
      戻り値:
      ログに記録します。
      導入:
      2.1.1
    • setLogContainerConfig

      public void setLogContainerConfig(boolean logContainerConfig)
      この構成をログに記録するように各コンテナーに指示するには、true に設定します。
      パラメーター:
      logContainerConfig - ログに記録します。
      導入:
      2.1.1
    • isMissingTopicsFatal

      public boolean isMissingTopicsFatal()
      true の場合、構成されたトピックのいずれかがブローカーに存在しないと、コンテナーは開始されません。トピックパターンが設定されている場合は適用されません。デフォルトは false。
      戻り値:
      欠落している TopicsFatal。
      導入:
      2.2
    • setMissingTopicsFatal

      public void setMissingTopicsFatal(boolean missingTopicsFatal)
      構成されたトピックのいずれかがブローカーに存在しない場合にコンテナーが開始されないようにするには、true に設定します。トピックパターンが設定されている場合は適用されません。デフォルトは false。
      パラメーター:
      missingTopicsFatal - 欠落している TopicsFatal。
      導入:
      2.2
    • setIdleBetweenPolls

      public void setIdleBetweenPolls(long idleBetweenPolls)
      Consumer.poll(Duration) 呼び出し間のメインループで使用されるミリ秒単位のスリープ間隔。デフォルトは 0 - アイドリングなし。
      パラメーター:
      idleBetweenPolls - ポーリングサイクル間のスリープ間隔。
      導入:
      2.3
    • getIdleBetweenPolls

      public long getIdleBetweenPolls()
    • isMicrometerEnabled

      public boolean isMicrometerEnabled()
    • setMicrometerEnabled

      public void setMicrometerEnabled(boolean micrometerEnabled)
      Micrometer リスナータイマーを無効にするには、false に設定します。デフォルトは真です。setObservationEnabled(boolean) が true の場合は無効です。
      パラメーター:
      micrometerEnabled - 無効にする場合は false。
      導入:
      2.3
    • isObservationEnabled

      public boolean isObservationEnabled()
    • setObservationEnabled

      public void setObservationEnabled(boolean observationEnabled)
      Micrometer 経由の観測を有効にするには、true に設定します。false (デフォルト) の場合、基本的な Micrometer タイマーが代わりに使用されます (有効な場合)。
      パラメーター:
      observationEnabled - 有効にする場合は true。
      導入:
      3.0
      関連事項:
    • setMicrometerTags

      public void setMicrometerTags(MapSE<StringSE,StringSE> tags)
      Micrometer リスナータイマーに追加のタグを設定します。
      パラメーター:
      tags - タグ。
      導入:
      2.3
    • getMicrometerTags

      public MapSE<StringSE,StringSE> getMicrometerTags()
      静的 Micrometer タグを返します。
      戻り値:
      タグ。
      導入:
      2.3
    • setMicrometerTagsProvider

      public void setMicrometerTagsProvider(@Nullable FunctionSE<org.apache.kafka.clients.consumer.ConsumerRecord<?,?>,MapSE<StringSE,StringSE>> micrometerTagsProvider)
      コンシューマーレコードに基づいて動的タグを提供する関数を設定します。これらのタグは、micrometerTags で提供されるすべての静的タグに追加されます。レコードリスナーにのみ適用され、バッチリスナーでは無視されます。監視が有効になっている場合は適用されません。
      パラメーター:
      micrometerTagsProvider - micrometerTagsProvider。
      導入:
      2.9.8
      関連事項:
    • getMicrometerTagsProvider

      @Nullable public FunctionSE<org.apache.kafka.clients.consumer.ConsumerRecord<?,?>,MapSE<StringSE,StringSE>> getMicrometerTagsProvider()
      Micrometer タグプロバイダーを返します。
      戻り値:
      micrometerTagsProvider。
      導入:
      2.9.8
    • getConsumerStartTimeout

      public DurationSE getConsumerStartTimeout()
    • setConsumerStartTimeout

      public void setConsumerStartTimeout(DurationSE consumerStartTimeout)
      エラーをログに記録する前にコンシューマースレッドが開始するのを待つようにタイムアウトを設定します。デフォルトは 30 秒です。
      パラメーター:
      consumerStartTimeout - コンシューマー開始タイムアウト。
    • isSubBatchPerPartition

      public boolean isSubBatchPerPartition()
      バッチをパーティションごとに分割するかどうかを返します。
      戻り値:
      subBatchPerPartition。
      導入:
      2.3.2
    • getSubBatchPerPartition

      @Nullable public BooleanSE getSubBatchPerPartition()
      パーティションごとにバッチを分割するかどうかを返します。設定されていない場合は null。
      戻り値:
      subBatchPerPartition。
      導入:
      2.5
    • setSubBatchPerPartition

      public void setSubBatchPerPartition(@Nullable BooleanSE subBatchPerPartition)
      バッチメッセージリスナーを使用する場合、パーティションごとにレコードをディスパッチするか(トランザクションが使用されている場合はサブバッチごとにトランザクションを使用)、poll() が受信したバッチ全体をディスパッチします。グループ / トピック / パーティションごとに一意の transactional.id を使用して、トランザクションを使用してゾンビフェンシングを有効にする場合に便利です。デフォルトは、EOSMode.ALPHA でトランザクションを使用する場合は true、トランザクションを使用しない場合または EOSMode.BETA で使用する場合は false です。
      パラメーター:
      subBatchPerPartition - パーティションごとに個別のトランザクションの場合は true。
      導入:
      2.3.2
    • getAssignmentCommitOption

      public ContainerProperties.AssignmentCommitOption getAssignmentCommitOption()
    • setAssignmentCommitOption

      public void setAssignmentCommitOption(ContainerProperties.AssignmentCommitOption assignmentCommitOption)
      割り当てコミットオプションを設定します。デフォルトの ContainerProperties.AssignmentCommitOption.LATEST_ONLY_NO_TX
      パラメーター:
      assignmentCommitOption - オプション。
      導入:
      2.3.6
    • isDeliveryAttemptHeader

      public boolean isDeliveryAttemptHeader()
    • setDeliveryAttemptHeader

      public void setDeliveryAttemptHeader(boolean deliveryAttemptHeader)
      エラーハンドラーまたはロールバックプロセッサーが DeliveryAttemptAware を実装した後、KafkaHeaders.DELIVERY_ATTEMPT ヘッダーにデータを入力するには、true に設定します。オーバーヘッドが小さいため、これはデフォルトでは false です。
      パラメーター:
      deliveryAttemptHeader - 移入するのは本当
      導入:
      2.5
    • getEosMode

      public ContainerProperties.EOSMode getEosMode()
      一度だけのセマンティクスモードを取得します。
      戻り値:
      モード。
      導入:
      2.5
      関連事項:
    • setEosMode

      public void setEosMode(ContainerProperties.EOSMode eosMode)
      1 回限りのセマンティクスモードを設定します。バージョン 3.0 以降、ContainerProperties.EOSMode.V2 のみがサポートされています。
      パラメーター:
      eosMode - モード ; デフォルトの V2。
      導入:
      2.5
    • getTransactionDefinition

      @Nullable public TransactionDefinition getTransactionDefinition()
      トランザクション定義を取得します。
      戻り値:
      定義。
      導入:
      2.5.4
    • setTransactionDefinition

      public void setTransactionDefinition(@Nullable TransactionDefinition transactionDefinition)
      コンテナーのトランザクションテンプレートにコピーされるプロパティ(タイムアウトなど)を使用してトランザクション定義を設定します。これは、カスタム定義をサポートする KafkaAwareTransactionManager で使用する場合にのみ一般的に役立つことに注意してください。これには、トランザクションタイムアウトの概念がない KafkaTransactionManager は含まれません。レコードインターセプターまたはリスナーアダプターのフィルターがトランザクションに参加できるため、リスナーで @Transactional を使用するのではなく、コンテナーでデータベーストランザクションなどを開始すると便利な場合があります。
      パラメーター:
      transactionDefinition - 定義。
      導入:
      2.5.4
      関連事項:
    • getAdviceChain

      public Advice[] getAdviceChain()
      リスナー Advice の チェーン。
      戻り値:
      AdviceChain。
      導入:
      2.5.6
    • setAdviceChain

      public void setAdviceChain(Advice... adviceChain)
      リスナー Advice の チェーン を設定します。null であってはならず、null 要素を持つこともできません。
      パラメーター:
      adviceChain - 設定する AdviceChain
      導入:
      2.5.6
    • isStopContainerWhenFenced

      public boolean isStopContainerWhenFenced()
      true の場合、コンテナーは ProducerFencedException の後に停止します。
      戻り値:
      stopContainerWhenFenced
      導入:
      2.5.8
    • setStopContainerWhenFenced

      public void setStopContainerWhenFenced(boolean stopContainerWhenFenced)
      true に設定すると、ProducerFencedException がスローされたときにコンテナーが停止します。現在、Vs のリバランスが原因でこのような例外がスローされたかどうかを判断する方法はありません。タイムアウト。アフターロールバックプロセッサーを呼び出すことはできません。最善の解決策は、transaction.timeout.ms が十分に大きく、トランザクションがタイムアウトしないようにすることです。
      パラメーター:
      stopContainerWhenFenced - コンテナーを停止する場合は true。
      導入:
      2.5.8
    • isStopImmediate

      public boolean isStopImmediate()
      true の場合、コンテナーは現在のレコードを処理した直後に停止します。
      戻り値:
      すぐに停止する場合は true。
      導入:
      2.5.11
    • setStopImmediate

      public void setStopImmediate(boolean stopImmediate)
      現在のレコードを処理した後(stop() が呼び出されたとき)にコンテナーを停止するには、true に設定します。false(デフォルト)の場合、前のポーリングのすべての結果が処理された後、コンテナーは停止します。
      パラメーター:
      stopImmediate - 現在のレコードの後で停止する場合は true。
      導入:
      2.5.11
    • isAsyncAcks

      public boolean isAsyncAcks()
      true の場合、非同期手動確認応答がサポートされます。
      戻り値:
      非同期 ACK サポートの場合は true。
      導入:
      2.8
    • setAsyncAcks

      public void setAsyncAcks(boolean asyncAcks)
      非同期レコード確認応答をサポートするには、true に設定します。ContainerProperties.AckMode.MANUAL または ContainerProperties.AckMode.MANUAL_IMMEDIATE にのみ適用されます。順不同のオフセットコミットは、パーティション内の以前のすべてのオフセットがコミットされるまで延期されます。必要に応じて、すべての ack が完了するまで、コンシューマーは一時停止されます。
      パラメーター:
      asyncAcks - 非同期 acks を使用する場合は true。
      導入:
      2.8
    • isPauseImmediate

      public boolean isPauseImmediate()
      レコードリスナーを使用してコンテナーを一時停止する場合、一時停止がすぐに有効になるか、現在のレコードが処理されたときか、前のポーリングのすべてのレコードが処理された後に有効になるか。デフォルトは false です。
      戻り値:
      すぐに一時停止するかどうか。
      導入:
      2.9
    • setPauseImmediate

      public void setPauseImmediate(boolean pauseImmediate)
      前のポーリングのすべてのレコードが処理された後ではなく、現在のレコードが処理された後にコンテナーを一時停止するには、true に設定します。
      パラメーター:
      pauseImmediate - すぐに一時停止する場合は true。
      導入:
      2.9
    • getObservationConvention

      public KafkaListenerObservationConvention getObservationConvention()
    • setObservationConvention

      public void setObservationConvention(KafkaListenerObservationConvention observationConvention)
      カスタム KafkaListenerObservationConvention を設定します。
      パラメーター:
      observationConvention - 大会。
      導入:
      3.0
    • getPollTimeoutWhilePaused

      public DurationSE getPollTimeoutWhilePaused()
      一時停止中に使用するポーリングタイムアウト。通常は pollTimeout よりも小さい数値です。
      戻り値:
      pollTimeoutWhilePaused
      導入:
      2.9.7
    • setPollTimeoutWhilePaused

      public void setPollTimeoutWhilePaused(DurationSE pollTimeoutWhilePaused)
      一時停止中に使用するポーリングタイムアウトを設定します。通常は pollTimeout よりも小さい数値です。コンシューマーが一時停止している間のタイトな CPU ループを避けるために、0 より大きくする必要があります。デフォルトは 100ms です。
      パラメーター:
      pollTimeoutWhilePaused - 設定する pollTimeoutWhilePaused
      導入:
      2.9.7
    • isRestartAfterAuthExceptions

      public boolean isRestartAfterAuthExceptions()
      認証例外が原因でコンテナーが停止した場合は、コンテナーを再起動します。
      戻り値:
      restartAfterAuthExceptions
      導入:
      2.9.7
    • setRestartAfterAuthExceptions

      public void setRestartAfterAuthExceptions(boolean restartAfterAuthExceptions)
      コンテナー (またはすべての子コンテナー) によって認証例外が検出された場合にコンテナーを自動的に再始動するには、true に設定します。
      パラメーター:
      restartAfterAuthExceptions - 再起動する場合は true。
      導入:
      2.9.7
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ConsumerPropertiestoString