メッセージキューヘルスチェックコンポーネント設計
RabbitMQ、SQS、Kafkaのメッセージキューの接続状態、キュー深度、コンシューマーラグ、メッセージスループットを監視するヘルスチェックコンポーネントを設計します。
Component Checks
詳細な説明
メッセージキューヘルスチェック
キューヘルスチェックは、非同期メッセージングインフラストラクチャが機能していることを確認します。キューの問題はサイレントなデータ損失や処理遅延を引き起こす可能性があります。
レスポンスコンポーネント
{
"queue": {
"status": "UP",
"duration": "8ms",
"message": "RabbitMQ connected, queues operational",
"details": {
"type": "rabbitmq",
"connection": "open",
"channels": 3,
"queues": {
"orders": { "messages": 42, "consumers": 2 },
"notifications": { "messages": 0, "consumers": 1 }
}
}
}
}
チェック項目
- 接続状態: ブローカーに到達可能か?
- キュー深度: メッセージが蓄積されていないか?
- コンシューマー数: コンシューマーがアタッチされ処理しているか?
- デッドレターキュー: メッセージの処理が失敗していないか?
- コンシューマーラグ(Kafka): コンシューマーの遅れはどの程度か?
ヘルスしきい値
| メトリクス | 健全 | 劣化 | 異常 |
|---|---|---|---|
| 接続 | オープン | 再接続中 | 失敗 |
| キュー深度 | < 1000 | 1000-10000 | > 10000 |
| コンシューマー数 | > 0 | 0(短時間) | 0(長時間) |
| コンシューマーラグ | < 100 | 100-10000 | > 10000 |
プロデューサーとコンシューマーのヘルス
プロデューサーサービスはブローカーへの接続、メッセージ発行機能、キューの存在をチェックすべきです。
コンシューマーサービスはブローカーへの接続、コンシューマー登録、処理スループット、デッドレターキューサイズをチェックすべきです。
ユースケース
メッセージ処理の遅延や障害がビジネスオペレーションに直接影響するRabbitMQ、Amazon SQS、Apache Kafka、Redis Streamsを使用したイベント駆動アーキテクチャ。