Airbnb、Booking.com 和 OYO 等酒店预订应用程序如何提供从酒店列表到预订再到付款的流畅流程?而且都没有一个小故障!在此博客中,您将获得对此的详细解释。
由于它们非常庞大,以至于它们需要处理大量的用户流量。所以要管理这些,我们必须遵循微服务架构。这意味着我们必须为每种类型的任务将系统分成小块。
让我们一一了解流程。我把它分成了4个部分:

  • 酒店管理服务

  • 客户服务(搜索+预订)

  • 查看预订服务

酒店管理服务

这是将提供给酒店经理/业主的服务。在此管理人员可以管理他们酒店的相关信息。在这里,管理者有一个单独的门户来访问和更新数据。

  • Hotel Management Service Architecture

每当从酒店管理器应用程序触发 API 时,初始请求都会发送到负载均衡器,然后负载均衡器会将请求分发到所需的服务器进行处理。酒店服务集群有多个服务器,这些服务器具有酒店服务相关 API 的容器。
现在,该酒店服务与遵循主从架构的酒店数据库集群进行交互,以减少数据库中的负载。基本上,在这种方法中,我们创建主数据库的副本,称为从数据库。Master DB 用于写操作,slave DB 仅用于读操作。每当在主数据库上执行写操作时,它都会将数据同步到从数据库。
每当数据库中的任何数据更新时,API 都会将数据发送到 CDN(内容分布式网络)和消息队列系统(如 Kafka、RabbitMQ)以进行进一步处理。CDN 是一组地理分布的服务器,它们协同工作以提供 Internet 内容的快速交付。

客户服务(搜索+预订)

这是将提供给客户的服务。在这个客户可以搜索和预订酒店。在这里,客户有一个单独的门户来访问和处理数据。

  • Customer Service Architecture

CDN 应用程序向客户显示内容,例如附近的酒店、推荐、优惠等。
正如我们在上一节中讨论的,酒店数据在消息队列系统中发送以进行处理。这里我们有一个消息队列消费者,它从队列中获取数据并将数据存储在弹性搜索中。
客户应用点击 API,然后负载均衡器将请求重定向并将请求分发到相应的服务以处理请求。在这里,我们有两种服务,一种是搜索酒店,另一种是预订服务,用于预订酒店,预订服务还与第三方服务的支付服务进行交互。
搜索服务必须从 Elastic Search 中获取数据。Elasticsearch 是一个 NoSQL 数据库,最适合其搜索引擎功能。
预订服务与 Redis 和预订数据库集群进行通信。Redis 是缓存系统,它存储临时数据,因此数据不需要从数据库中获取,最终可以减少数据库的负载,也可以减少 API 的响应时间。
对数据库所做的任何更改都将发送到消息传递队列。然后消费者将从队列中取出数据并将其放入 Casandra。对于存档,我们使用 Casandra,因为随着时间的推移,数据库中的数据大小会增加,这会增加查询时间。这就是为什么我们可能需要从数据库中删除旧数据的原因。而 Casandra 是一个 NoSQL 数据库,擅长处理大量数据。

查看预订服务

此处向用户显示所有当前和旧的预订详细信息。经理和客户都使用此服务。

  • View Booking Architecture

Customer/Manager 应用程序将请求发送到负载均衡器,并将请求分发到预订管理服务器。然后通过 Redis 和 Cassandra 对数据的服务请求。通过 Redis,它请求最近的数据,因为它是一个缓存服务器。这可以减少应用程序端的加载时间。

最终设计

  • Hotel Booking System Design

正如您在上面的设计中看到的,有一个用于通知的 Kafka 消费者,通知消费者发送通知。这可能是针对客户/经理的,例如,每当客户预订酒店时,就会向经理发送通知,或者如果有新的优惠来了,就会通知客户。
Apache Streaming 服务从消息队列中获取数据并将其存储在 Hadoop 中,可用于大数据分析以用于多种用途。比如业务分析、寻找潜在客户、受众分类等。

本文 https://jiagoushi.pro/system-design-architecture-hotel-booking-apps-airbnb-oyo
讨论:知识星球【首席架构师圈】或者加微信小号【cea_csa_cto】或者加QQ群【792862318】
公众号 【jiagoushipro】
【超级架构师】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
微信小号 【cea_csa_cto】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

QQ群 【792862318】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
加QQ群,有珍贵的报告和干货资料分享。

视频号 【超级架构师】
1分钟快速了解架构相关的基本概念,模型,方法,经验。
每天1分钟,架构心中熟。

知识星球 向大咖提问,近距离接触,或者获得私密资料分享。

喜马拉雅 路上或者车上了解最新黑科技资讯,架构心得。 【智能时刻,架构君和你聊黑科技】
知识星球 认识更多朋友,职场和技术闲聊。 知识星球【职场和技术】
微博 【智能时刻】 智能时刻
哔哩哔哩 【超级架构师】

抖音 【cea_cio】超级架构师

快手 【cea_cio_cto】超级架构师

小红书 【cea_csa_cto】超级架构师

谢谢大家关注,转发,点赞和点在看。

【架构设计】酒店预订应用程序的系统设计架构(如 Airbnb、OYO)相关推荐

  1. 民宿/酒店预订小程序管理系统设计与实现

    项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序酒店预订系统,前台用户使用小程序,后台管理使用基PHP+MySql的B/S架构:通过后台添加房间,用户通过小程序登录,查看房间.选 ...

  2. 酒店预订小程序开发方案

    微信小程序问世已经5年,开发技术成熟,功能越来越强大. 酒店已经不再把小程序作为单纯的预订渠道,而是通过小程序开展营销.管理工作,提高酒店工作效率.增加营收. 那么,酒店预订小程序如何开发?如何才能提 ...

  3. 小程序毕设作品之微信酒店预订小程序毕业设计(7)中期检查报告

    整个项目包含了:开题报告 + 开题报告PPT + 任务书 + 中期报告 + 论文模板 + 答辩PPT等 + 项目源码 主要安介绍了系统在开发过程中所应用到的一些关键的技术,主要包括了前端小程序开发的M ...

  4. 走向.NET架构设计—第四章—业务层分层架构(后篇)

    走向.NET架构设计-第四章-业务层分层架构(后篇) 前言: 在上一篇文章中,我们讨论了组织业务逻辑的模式:Transaction Script和Active Record,Domain Model. ...

  5. 走向.NET架构设计—第四章—业务层分层架构(前篇)

    走向.NET架构设计-第四章-业务层分层架构(前篇) 前言:在任何一个项目中业务层毫无疑问是最重要的层,所以在设计的过程中,如何组织业务层是至关重要的.本章的讨论将会涉及Flower的架构模式一书中的 ...

  6. 走向.NET架构设计—第四章—业务层分层架构(中篇)

    走向.NET架构设计-第四章-业务层分层架构(中篇) 前言: 在上一篇文章中,我们讨论了两种组织业务逻辑的模式:Transaction Script和Active Record.在本篇中开始讲述Dom ...

  7. 微服务架构设计实践系列之九:应用架构

    微服务架构设计实践系列之九:应用架构 原文:微服务架构设计实践系列之九:应用架构 版权声明: https://blog.csdn.net/beyondself_77/article/details/7 ...

  8. 基于PHP+小程序(MINA框架)+Mysql数据库的名宿酒店预订小程序系统设计与实现

    项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序酒店预订系统,前台用户使用小程序,后台管理使用基PHP+MySql的B/S架构:通过后台添加房间,用户通过小程序登录,查看房间.选 ...

  9. 微信小程序酒店预订,酒店预订小程序,微信小程序民宿预订系统毕设作品

    项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序酒店预订系统,前台用户使用小程序,后台管理使用基PHP+MySql的B/S架构:通过后台添加房间,用户通过小程序登录,查看房间.选 ...

最新文章

  1. 不好意思,食言而肥了
  2. b+树时间复杂度_第15期:索引设计(索引组织方式 B+ 树)
  3. 零基础教你玩转ESP8266(一) 重识ESP8266
  4. 第6章 类型和成员基础
  5. VMware vSphere Management Assistant Guide
  6. MAC系统上grep使用办法
  7. NWT失败反思:公司都死了,还怕得罪人
  8. 服务器芯片成本,2021年全球服务器行业成本结构及出货量分析[图]
  9. Java8 lambda表达式详解
  10. Git + Github初入门
  11. html字体加粗效果不明显,css去除粗体_去掉加粗样式图文实例教程
  12. CMD命令下修改和查看IP地址,DNS,网关
  13. GEEer成长日记十三:Landsat_SR计算地表温度时间序列
  14. 解析mp3文件,获得mp3中的专辑图片
  15. 人工智能的创业方向到底怎么选?
  16. 2:Alibaba微服务组件Nacos注册中心
  17. 链夹式烟苗注水移栽机的总体设计
  18. 最新校园跑腿微信小程序源码+修复BUG无错
  19. 使用idea打包出现Could not find artifact com.ms:---:pom:0.0.1-SNAPSHOT
  20. 如何拍一张好看的证件照?

热门文章

  1. 百度14年笔试 - 找出大于某值的最小的不重复数
  2. Nand flash 之UBI
  3. 静态时序分析-clock gating path的timing violation修复
  4. 【Java 多线程】Java中主线程如何捕获子线程抛出的异常
  5. java 基础 数组2
  6. Docker -- 科普文
  7. Java根据模板生成pdf文件并导出
  8. unity3D新闻:HTML5标准最终确定 体验或将有所改变
  9. 麒麟子Cocos Creator实用技巧二:微信名字截断(支持表情)
  10. Journal of Electronic Imaging(JEI)从投稿到录用过程分享