【アーキテクチャ設計】ホテル予約アプリケーション(Airbnb、OYOなど)のシステム設計アーキテクチャ

Airbnb、Booking.com、OYO などのホテル予約アプリは、ホテルの掲載から予約、支払いまでのスムーズな流れをどのように提供しているのでしょうか? しかも問題なく!このブログでは、これについて詳しく説明します。
サイズが非常に大きいため、大量のユーザー トラフィックを処理する必要があります。したがって、これらを管理するには、マイクロサービス アーキテクチャに従う必要があります。これは、タスクの種類ごとにシステムを小さな部分に分割する必要があることを意味します。
一つ一つプロセスを理解していきましょう。4つの部分に分けてみました。

  • ホテル管理サービス

  • カスタマーサービス(検索+予約)

  • 予約サービスを見る

ホテル管理サービス

ホテルの支配人・オーナー様向けのサービスです。ここでマネージャーはホテルに関する情報を管理できます。ここでは、管理者はデータにアクセスして更新するための単一のポータルを持っています。

45b13fe303223874a19bb8d3afbc0eee.png

  • ホテル管理サービスのアーキテクチャ

API がホテル マネージャー アプリケーションからトリガーされるたびに、最初のリクエストがロード バランサーに送信され、ロード バランサーはそのリクエストを処理のために目的のサーバーに分散します。ホテル サービス クラスターには、ホテル サービス関連の API のコンテナーを備えた複数のサーバーがあります。
現在、ホテル サービスはマスター/スレーブ アーキテクチャに従ってホテル データベース クラスターと対話し、データベースの負荷を軽減します。基本的に、このアプローチでは、スレーブと呼ばれるマスター データベースのコピーを作成します。マスター DB は書き込み操作に使用され、スレーブ DB は読み取り操作のみに使用されます。マスター データベースで書き込み操作が実行されるたびに、データがスレーブ データベースに同期されます。
データベース内のデータが更新されるたびに、API はさらに処理するためにそのデータを CDN (コンテンツ分散ネットワーク) およびメッセージ キュー システム (Kafka、RabbitMQ など) に送信します。CDN は、地理的に分散されたサーバーのグループであり、連携してインターネット コンテンツの高速配信を提供します。


カスタマーサービス(検索+予約)


お客様にご提供させていただくサービスです。ここで顧客はホテルを検索して予約できます。ここでは、顧客はデータにアクセスして処理するための単一のポータルを持っています。

ecee911b425d13b3a121401821829f63.png

  • 顧客サービスのアーキテクチャ

CDN アプリケーションは、近くのホテル、おすすめ、お買い得情報などのコンテンツを顧客に表示します。
前のセクションで説明したように、ホテルのデータは処理のためにメッセージ キュー システムに送信されます。ここには、キューからデータをフェッチし、エラスティック検索でデータを保存するメッセージ キュー コンシューマーがあります。
クライアント アプリケーションが API にアクセスすると、ロード バランサーがリクエストを処理する適切なサービスにリクエストをリダイレクトして分散します。ここには 2 つのサービスがあります。1 つはホテルの検索で、もう 1 つはホテルの予約に使用される予約サービスです。予約サービスはサードパーティ サービスの支払いサービスとも連携します。
検索サービスは Elastic Search からデータを取得する必要があります。Elasticsearch は、その検索エンジン機能に最適な NoSQL データベースです。
サブスクリプション サービスは、Redis およびサブスクリプション データベース クラスターと通信します。Redis はキャッシュ システムであり、一時データを保存するため、データベースからデータをフェッチする必要がなく、最終的にデータベースの負荷が軽減され、API の応答時間も短縮されます。
データベースに加えられた変更はすべてメッセージング キューに送信されます。次に、コンシューマはキューからデータを取得して Casandra に入力します。時間の経過とともにデータベース内のデータ サイズが増大し、クエリ時間が増加するため、アーカイブには Casandra を使用します。そのため、データベースから古いデータを削除する必要がある場合があります。Casandra は、大量のデータの処理に優れた NoSQL データベースです。


予約サービスを見る


現在および古い予約の詳細がすべてここにユーザーに表示されます。マネージャーとクライアントの両方がこのサービスを使用します。

96345a9af98ae6a23e7c25aa95a5e9e9.png

  • 予約アーキテクチャを見る

顧客/マネージャー アプリケーションはリクエストをロード バランサーに送信し、ロード バランサーはリクエストをサブスクリプション管理サーバーに分散します。次に、Redis と Cassandra を通じてデータのリクエストを処理します。Redis ではキャッシュ サーバーであるため、最新のデータが要求されます。これにより、アプリケーション側のロード時間が短縮されます。


最終デザイン

295ab48cec9510c7c76595c19c124f2d.png

  • ホテル予約システムの設計

上の設計でわかるように、通知用の Kafka コンシューマーがあり、通知コンシューマーが通知を送信します。これはクライアント/マネージャー向けの場合があり、たとえば、クライアントがホテルを予約するたびに通知がマネージャーに送信されたり、新しいオファーが来た場合にはクライアントに通知されます。
Apache Streaming サービスは、メッセージ キューからデータを取得し、Hadoop に保存します。これは、さまざまな目的のビッグ データ分析に使用できます。ビジネス分析、潜在顧客の発見、視聴者の分類など。

この記事: https://architect.pub/system-design-architecture-hotel-booking-apps-airbnb-oyo
ディスカッション: Knowledge Planet [チーフ アーキテクト サークル] または WeChat トランペット [ca_cto] を追加するか、QQ グループを追加します [792862318]
一般公開なし
 
【jiagoushipro】
【スーパーアーキテクト】
アーキテクチャの方法論、アーキテクチャの実践、技術原則、技術トレンドについての鮮やかなグラフィックと詳細な説明。
お待ちしておりますので、ぜひスキャンしてご注目ください。
WeChatのトランペット
 
[ca_cea]
エンタープライズ アーキテクチャ、クラウド コンピューティング、ビッグ データ、データ サイエンス、モノのインターネット、人工知能、セキュリティ、フルスタック開発、DevOps、デジタル化について議論する 50,000 人のコミュニティ。
 

QQグループ
 
[285069459] エンタープライズ アーキテクチャ、ビジネス アーキテクチャ、アプリケーション アーキテクチャ、データ アーキテクチャ、技術アーキテクチャ、統合アーキテクチャ、セキュリティ アーキテクチャの詳細な交換。そして、ビッグデータ、クラウドコンピューティング、モノのインターネット、人工知能などのさまざまな新興テクノロジー。
QQ グループに参加して、貴重なレポートや乾物を共有してください。

ビデオ番号 【スーパーアーキテクト】
建築に関する基本的な概念、モデル、手法、経験が1分ですぐに理解できます。
1日1分、仕組みはおなじみです。

知識の惑星 [チーフアーキテクトサークル] 著名人に質問したり、連絡を取ったり、プライベートな情報を共有したりしてください。  

ヒマラヤ [スーパーアーキテクト] 最新のブラックテクノロジー情報と建築体験を道路や車の中で学びましょう。 [知的な瞬間、ミスター・アーキテクチャーがブラックテクノロジーについて語ります]
知識の惑星 より多くの友人、職場、技術的なチャットに会いましょう。 ナレッジプラネット【職場とテクノロジー】
リンクトイン ハリー https://www.linkedin.com/in/architect-harry/
LinkedInグループ LinkedIn アーキテクチャ グループ https://www.linkedin.com/groups/14209750/
微博 【スーパーアーキテクト】 賢い瞬間‍
ビリビリ 【スーパーアーキテクト】

チクタク 【cea_cio】スーパーアーキテクト

早い労働者 【cea_cio_cto】スーパーアーキテクト

小さな赤い本 [cea_csa_cto] スーパーアーキテクト  

Webサイト CIO(最高情報責任者) https://cio.ceo
Webサイト CIO、CTO、CDO https://cioctocdo.com
Webサイト アーキテクトの実践的な共有 https://architect.pub   
Webサイト プログラマーのクラウド開発共有 https://pgmr.cloud
Webサイト チーフアーキテクトコミュニティ https://jiagoushi.pro
Webサイト アプリケーション開発と開発プラットフォーム https://apaas.dev
Webサイト 開発情報ネットワーク https://xinxi.dev
Webサイト スーパーアーキテクト https://jiagou.dev
Webサイト 企業向け技術トレーニング https://peixun.dev
Webサイト プログラマーの本 https://pgmr.pub    
Webサイト 開発者チャット https://ブログ.開発者.チャット
Webサイト CPOコレクション https://cpo.work
Webサイト 最高セキュリティ責任者 https://cso.pub ‍
Webサイト CIOクール https://cio.cool
Webサイト CDO情報 https://cdo.fyi
Webサイト CXO情報 https://cxo.pub

ご清聴、転送、いいね、ご視聴ありがとうございます。

おすすめ

転載: blog.csdn.net/jiagoushipro/article/details/131618590