Slide 31
Slide 31 text
適切な並列度の設計
Consumer数の決定
基本の計算式:
必要なConsumer数 = ピーク時のメッセージ数/秒 ÷ Consumer1台の処
理能力/秒
※ 余裕を持たせるために、計算結果の1.5倍程度を準備
計算例
• ピーク時: 10,000 msg/s
• Consumer 1台: 500 msg/s(実測値)
• 必要数: 10,000 ÷ 500 = 20台
• 余裕を持たせて: 20 × 1.5 = 30台
実際の並列度の制約
Consumer数とキーのカーディナリティのうち、⼩さい⽅が実際の並列度の上限となります。
実際の並列度 = min(Consumer数, ユニークキーの数)
Consumer1台あたりの処理能⼒の測定
理論値と実測値の差
理論値
1メッセージ100ms → 1秒で10件処理で
きるはず
実測値
RDB接続待ち、外部API遅延 → 1秒で3件
しか処理できない
ボトルネックの特定
DB
コネクションプール増、インデックス最適化
外部API
タイムアウト短縮、バルク化
CPU
処理ロジックの最適化
パフォーマンステスト重要ポイント
• 本番に近い環境で負荷テストを実施
• 実際のメッセージサイズ‧内容で検証
• ピーク時の1.5倍の負荷を想定
• バックプレッシャーが働くポイントを特定