アプリケーションの 2 つのコンポーネント間にキューを挟み、一方のコンポーネントが停止しても、もう一方が処理を続けられるようにする設計の考え方はどれですか。

1 / 1
回答を選択してください
正解B

解説

キューでコンポーネントの依存を切り離す設計の考え方を選ぶ問題。

  • 1コンポーネント間にキュー直接呼び出しではなく キューを介して非同期 にやり取りする
  • 2一方のコンポーネントが停止しても障害が他方へ 連鎖しない こと
  • 3処理を続けられるメッセージが保持され復旧後に再開できる
A不正解

密結合(タイトカップリング)

密結合は、コンポーネントどうしが直接依存し合う設計です。

一方が停止すると他方も影響を受けて止まりやすく、キューで切り離す本問の設計とは逆のため不正解です。

B正解

疎結合(ルーズカップリング)

正解。疎結合は、コンポーネント間にキュー(SQS など)を挟んで直接の依存を減らす設計です。受信側が停止してもメッセージはキューに保持され、復旧後に処理を再開できます。障害を 1 か所に閉じ込められるため可用性が高まります。

C不正解

垂直スケーリング

垂直スケーリングは、1 台のサーバの性能(CPU のコア数・クロック周波数、メモリ容量など)を増強する手法(スケールアップ)です。

コンポーネント間の依存関係を切り離す設計とは無関係のため不正解です。

D不正解

単一障害点(SPOF)

単一障害点は、そこが壊れると全体が止まる箇所を指す問題点の名称です。

キューで障害を分離する設計の考え方とは逆の概念のため不正解です。

ポイント

『キューを挟む』『障害を分離』『一方が止まっても継続』は 疎結合(ルーズカップリング)。SQS / SNS が代表。密結合(直接依存)は連鎖停止のリスクがある点と対比される。