Amazon.com のアーキテクチャは非常に興味深いものです。彼らはサービス指向アーキテクチャに移行しました.サイトのさまざまなコンテンツ領域をすべて見ると、それぞれが異なるサービスによって提供されています. 「欲しいものリスト」サービスや「あなたが見た商品に関連する」サービス、ベストセラーサービス、ショッピングカートサービスなどがあります。
各サービスには、独自の一連の要件と機能があります。要件には、応答時間や可用性などが含まれます。内部的には、各サービスはニーズに最適なデータベースを使用して実装されています。キー値ストアは、次のことを行う必要がないため、ショッピング カートに適しています。
select * from book where book_id = n
ショッピングカートに。
認識すべき重要なことの 1 つは、Amazon の規模で可用性が果たす大きな役割です。2008 年の Amazon の収益が 191 億 6,600 万ドルだったとします。Amazon.com サイトからの総小売収入は、日中は 1 秒あたり 1000 ドルを超える可能性があります (私が知る限り、ピーク時間帯の 2 倍になる可能性があります。ホリデー ショッピングのピーク時には 5 倍になる可能性があります)。使用量のピーク時にショッピング カート サービスが 3 分間ダウンした場合のコストを考えてみてください。放棄されたカートの損失が大きな金額になることは明らかです。
キーと値のストアを使用することは、蔓延するデータの重複を受け入れることを意味するのではなく、アプリケーションを再設計することを意味し、必要なデータをすべて 1 つのモノリシック データベースに配置する必要がなくなります。
Amazon は、何よりもアプリケーションのプラットフォームです。これは、Amazon の CTOがまさにそのことについて話しているビデオです。