66.10. 一時停止可能なコンシューマー
Kafka コンポーネントは一時停止可能なコンシューマーをサポートします。このタイプのコンシューマーは、そのコンポーネントの外部の状態 (外部システムが利用できない場合やその他の一時的な状態など) に基づきデータ消費を一時停止できます。
from("kafka:topic")
.pausable(new KafkaConsumerListener(), () -> canContinue()) // the pausable check gets called if the exchange fails to be processed ...
.routeId("pausable-route")
.process(this::process) // Kafka consumer will be paused if this one throws an exception ...
.to("some:destination"); // or this one
この例では、canContinue の結果が false の場合、Kafka の Consumer pause メソッドを呼び出すことで消費メッセージを一時停止できます。
重要
一時停止可能な EIP は、ルートのどこかに 例外が発生 してエクスチェンジが処理されない場合に、サポートメカニズムとして使用するためのものです。具体的には、pausable EIP が呼び出すチェックを使用して、エクスチェンジの処理を妨げる一時的な状態をテストします。
注記
ルートをより適切に制御できるため、ほとんどのユーザーが選択します。