2.12.6 Kafkaアダプタのタイムアウト監視
Kafkaアダプタのタイムアウトを監視するポイントを次に示します。
ここでは,各タイムアウトの設定方法と発生後の動作について説明します。
(1) メッセージ送信時のタイムアウト
(a) 送信リクエストの呼び出しが待機する時間のタイムアウト
送信リクエストの呼び出しが待機する時間です。
- 設定方法
-
Kafkaアダプタ定義ファイルのproducer.max.block.msで設定します。
- タイムアウト発生後の動作
-
送信リクエストの呼び出しが待機したあと,開放される前にタイムアウトが切れた場合は,処理が続行できないと判断し,エラーメッセージを出力して,メッセージの送信を停止します。
(b) リクエストタイムアウト
Kafkaアダプタが送信要求の応答を待機する最大時間です。
- 設定方法
-
Kafkaアダプタ定義ファイルのproducer.request.timeout.msで設定します。
- タイムアウト発生後の動作
-
Kafkaからの要求の応答が返ってくる前にタイムアウトが切れた場合の状態によって,次のように動作が変わります。
-
メッセージが再送できる場合は,リクエストが再試行されます。
-
メッセージが再送できない場合は,処理が続行できないと判断し,エラーメッセージを出力して,メッセージの送信を停止します。
メッセージの再送については,「2.12.5(4)(b) メッセージの再送」を参照してください。
-
(c) 配信タイムアウト
送信リクエストの呼び出しが返されてから成功または失敗をレポートする時間です。
- 設定方法
-
Kafkaアダプタ定義ファイルのproducer.delivery.timeout.msで設定します。
- タイムアウト発生後の動作
-
送信リクエストの呼び出しが返されてから成功または失敗をレポートするまでにタイムアウトが切れた場合は,処理が続行できないと判断し,エラーメッセージを出力して,メッセージの送信を停止します。
(2) アイドルタイムアウト
アイドル状態の接続を閉じるときに使用されるタイムアウトです。
- 設定方法
-
Kafkaアダプタ定義ファイルのproducer.connections.max.idle.msで設定します。
- タイムアウト発生後の動作
-
アイドル状態の接続が閉じます。メッセージの送信は続行します。
(3) Broker接続時のタイムアウト
(a) ソケット接続が確立されるのを待機する最大時間
ソケット接続が確立されるまでクライアントが待機する最大時間です。
- 設定方法
-
Kafkaアダプタ定義ファイルのproducer.socket.connection.setup.timeout.max.msで設定します。
- タイムアウト発生後の動作
-
ノードが停止していると判断し,他のノードに接続を切り替えます。メッセージの送信は続行します。
(b) ソケット接続が確立されるまで待機する時間
最初のソケット接続が確立されるまで待機する時間です。
- 設定方法
-
Kafkaアダプタ定義ファイルのproducer.socket.connection.setup.timeout.msで設定します。
- タイムアウト発生後の動作
-
ノードが停止していると判断し,他のノードに接続を切り替えます。メッセージの送信は続行します。