首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Java项目实战

    滴滴打车系统架构设计

    一、需求分析 系统高清架构图参考链接 滴滴打车系统架构图_系统架构图_打车软件系统架构图_功能架构图_系统架构图模板 - 在线模板社区 (edrawmax.cn) 1.1 业务需求 打车系统是一种基于互联网的出行服务 二、系统架构设计 2.1 架构模式 系统采用微服务架构模式,将系统拆分成多个小型服务,每个服务都是独立的,可以独立部署和扩展。这种架构模式能够更好地满足系统的可扩展性和可维护性需求。 [打车系统架构图](https://img-blog.csdnimg.cn/20220430162707665.png) 2.5 系统交互流程 (1)乘客叫车 ① 乘客打开手机APP或网站,选择出发地点和目的地点 四、总结 本文介绍了打车系统的架构设计,包括需求分析、架构模式、系统模块、技术选型、系统架构图、系统交互流程和部署方案。 打车系统是一种基于互联网的出行服务,需要保证高并发、低延迟、数据安全等需求,采用微服务架构模式能够更好地满足这些需求。系统的部署方案需要根据实际情况进行调整,保证系统的稳定性和可靠性。

    4.3K71编辑于 2023-03-18
  • 来自专栏架构之家

    Uber系统架构设计

    Uber 一开始是单体架构,后来逐渐演化为面向服务的架构Uber 最早只为旧金山提供服务,他们称之为 UberBlack。 在单一代码库中添加新功能、修复 bug、解决技术债务变得非常困难,这也是为什么 Uber 后来采用面向服务的架构的原因,这也促使 Uber 工程团队重构了新的 Uber 应用。 核心架构:类名、业务逻辑单元之间的继承关系、主业务逻辑、插件点(名称、依赖关系、结构等)、响应式编程链(响应式编程之间的关系)、统一平台组件(统一的平台级模块) 解决方案 应用 iOS 架构(从 MVC 可以计算车费并向乘客收费 ---- 数据库架构 支持应用频繁读写 因为出租车每 5 秒更新一次位置信息,因此会有频繁的写操作。 从关系型数据库 PostgreSQL 到建立在 MySQL 之上的无模式 NoSQL 数据库 ---- 系统架构 ---- 系统组件 地图 — 把出租车位置发送给乘客 乘客发出出行请求,

    1.8K10编辑于 2022-09-01
  • 来自专栏数据社

    打车巨头Uber是如何构建大数据平台?

    大家好,我是一哥,最近滴滴出的技术少了,给大家分享一下Uber的大数据平台是如何建设的? 随着 Uber 业务的扩张,为公司业务提供支持的基础数据池也在飞速膨胀,其处理成本水涨船高。 以下是我们在提高查询引擎成本效率方面所做的主要工作: 专注于 Parquet 文件格式:Parquet 和 ORC 文件格式共享一些共同的设计原则,如行组、列存储、块级和文件级统计。 但它们的实现是完全独立的,并且与我们在 Uber 使用的其他专有系统具有不同的兼容性级别。 这部分是因为我们的许多上游数据集都以 JSON 格式存储(请参阅 设计无Schema),并且我们对它们强制实施了 Avro schema。 虽然我们使用的查询引擎都有一个查询优化器,但它们并没有针对 Uber 常见的模式有专门的优化。

    89450发布于 2021-09-23
  • 来自专栏大数据文摘

    Uber优步打车:想你所想,知你所达

    点击标题下「大数据文摘」可快捷关注 在众多打车软件中,相较外来的Uber,嘀嘀、快的可能更加被国人所熟知。究竟Uber在国内的打车体验如何?到底挖掘机技术哪家强? 我们这里不写软文,只做资讯的传递者~ 以下翻译自Uber官方博客,独家放送喔~ 原文链接见http://blog.uber.com/passenger-destinations 翻译:袁晶/校对:夏雅薇 我们Uber的数据 我们选取了2014年早些时候三藩市3000多名单独乘客的乘坐模式(将数据匿名化以求保护隐私)。每段行程均已被所属乘客所“标记”:当向Uber发出用车请求时,乘客已经填写了目的地。 为了解决这一难题,我们为先验添加了两个额外的组成:Uber先验和热门地点先验。 Uber先验 Uber先验 ? 采取了更宽的视角,同时探寻Uber乘客同时可能前往某处的真相。 ? 为数据库中Uber乘客曾经到访地址i的归一化次数。 ? 图1:Uber先验和乘客先验的一个样例被绘制在地图上。圆圈半径越大,意味着训练数据中有更多的行程被带入那个位置。

    77650发布于 2018-05-22
  • 来自专栏深度学习与python

    Uber 的服务网格架构设计

    本文,我们将简要介绍 Uber 目前的服务网格架构,2016 年以来,这一架构已经为 Uber 数以千计的关键微服务提供了支持。 Uber 服务网格架构 Uber 从 2014 年开始使用微服务架构。 总体概述 Uber 的服务网格架构主要通过自管理来运营。在网格架构中,每一项服务都由一个产品团队完全拥有,而且网络层对其设置几乎没有什么限制。 现在我们已经对 Uber 服务网格架构有所了解,我们将在本文中重点讨论高效负载均衡技术,所以让我们深入探讨一下。 架构 聚合控制平面 在 Uber 服务网格中,主机代理定期向流量控制服务上传流量负载报告。

    40030编辑于 2023-03-29
  • 来自专栏服务端技术杂谈

    快的打车架构实践

    快的打车从2013年年底到2014年下半年,系统访问量迅速膨胀,很多复杂的问题要在短时间内解决,且不能影响线上业务,这是比较大的挑战,本文将会阐述快的打车架构演变过程遇到的一些有代表性的问题和解决方案。 针对这些问题,我们设计了快的无线开放平台KOP,以下是一些大的设计原则。 接入权限控制 为接入的客户端分配标示和密钥,密钥由客户端保管,用来对请求做数字签名。 实时计算与监控 我们基于Storm和HBase设计了自己的实时监控平台,分钟级别实时展现系统运行状况和业务数据(架构如图2所示),包含以下几个主要部分。 ? 因此我们基于HBase和数据同步设计了实时数据中心,如图5所示。 ? 图5 实时数据中心架构图 将前台MySQL多库多表通过同步平台,都同步到了HBase; 为减少后台应用层的改动,设计了一个SQL解析模块,将SQL查询转换为HBase查询; 支持二级索引。

    1.3K40发布于 2018-04-17
  • 来自专栏架构之美

    Uber:面向领域的微服务架构设计实践

    因此,“面向领域的微服务体系结构”大量借鉴了组织代码的既定方法,例如域驱动设计,清晰架构,面向服务的体系架构以及面向对象和面向接口的设计模式。 - Uber的措施 - 域 Uber域代表一个或多个与逻辑功能分组绑定的微服务的集合。设计域时常见的问题是“域应该有多大?”有些域可以包含数十个服务,有些域只能包含单个服务。 Uber Maps组织本身分为三个域,在三个不同的网关后面有80个微服务。 层设计设计回答了“什么服务可以调用其他什么服务?”的问题。 在Uber的微服务架构中,我们可以将层设计视为“规模化的关注点分离”,或者,我们可以将层设计视为“规模化的依赖管理”。 层设计描述了一种机制,用于考虑Uber的故障影响范围和跨服务依赖的产品特异性。 新的业务和产品线 事实证明,使用DOMA设计的平台可扩展性更强,也更容易维护。Uber的大多数团队之所以采用DOMA,是因为支持新业务线的成本太高。

    1K40发布于 2021-04-29
  • 来自专栏nice_每一天

    设计模式(二) 打车装饰模式

    如果加班太晚回不去就需要打车。我们以打车这件事情去理解装饰模式。 我们知道出租车是小汽车的一种。打车可以分为几件事情去执行:叫车、等待、坐车、付费结束。 打车的类图 ?  

    52820发布于 2019-07-16
  • 来自专栏xin猿意码的公众号文章

    听说你会架构设计?来,弄一个打车系统

    设计一个“网约车系统” 面试官:“滴滴打车用过是吧!看你简历里写道会架构设计是吧,如果让你设计一个网约车系统,你会从哪些方面考虑呢?” 故我们需要开发两个 APP 应用,分别给乘客和司机打车和接单,架构图如下: 1)乘客视角 如上所示:乘客在手机 App 注册成为用户后,可以选择出发地和目的地,进行打车。 2.3 详细设计 打车平台的详细设计,我们会关注网约车系统的一些核心功能,如:长连接管理、地址算法、体验优化等。 因此,司机端的 TCP 长连接需要进行专门管理,处理司机 App 和服务器的连接信息,架构图如下: 为了保证每次消息的接收和推送都能找到对应通道,我们需要维护一个司机 App 到 TCP 服务器的映射关系 小结 4.1 网约车平台发展 目前,全球网约车市场已经达到了数千亿美元的规模,主要竞争者包括滴滴、Uber、Grab 等公司。在中国,滴滴作为最大的网约车平台已经占据了绝大部分市场份额。

    1.6K21编辑于 2023-10-18
  • 来自专栏网络

    Uber开山基石:如何从无到有设计系统架构

    欢迎回看本文原始视频 http://t.cn/RjSC0KQ 本篇为Uber系列技术文章第一篇 今天我们解读的是Uber公司的Curis所分享的Uber架构从0到1,这是Uber非常早期的视频分享,我们之后会逐渐讲从 首先谈到Uber的初心,他们想实现一键打车功能。左边是Uber最早期的界面,大家可以看到跟现在有很大的区别,按一下就可以打到车了。 Uber的最初架构 为了支持这样的服务,Uber最初的架构是怎么样的呢?会很复杂吗?其实不会。 前面是一个手机,中间是PHP来负责业务逻辑,最后是MySQL的数据。 这是一个非常简单的架构,能够快速的支撑Uber的需求。 架构扩展 那这样的架构如何扩展呢? 面向未来的程序设计 要想3个月后会有多少压力,实在想不到先把用户量乘以10再说。 雪崩雪崩雪崩 重要的事情说三遍

    1.3K101发布于 2018-01-12
  • 来自专栏性能与架构

    Uber首席架构师聊架构

    Go 的团队做一遍 再比如,在某个平台上经过奋战解决了某些bug,同样的,其他平台可能还需要战斗一遍 对于多语言混合使用的代价预估不足,超出了预期 在新员工的工作效率方面,微服务起到了很好的效果,由于Uber 的高速发展,大量新员工加入,正是因为使用了微服务,降低了系统理解的难度,使新员工可以快速进入工作状态 Uber的大体架构 Uber在全世界建立了很多数据中心,就是为了让用户与数据的距离更近,还可以提高系统的可用性 高度重视系统的质量,所以失败验证是个非常重要的工作,所有的系统都被设计为可验证的 失败验证基于 Netflix 的 Simian Army 系统,Uber在其上进行了调整,使其更适合自己 Simian Army 可以进行随机故障测试,用于验证可靠性 验证工作中,建立一套模拟环境,和开发一套集成测试集是很重要的一部分 通过验证过程,发现了之前系统设计的一个不足,以前很多接口都使用了JSON结构,因为JSON 在内部进行大量验证的同时,还在全世界建立起了一个大规模手机测试团队,让大家以用户的角度来使用,进行黑箱测试 以上内容整理自 Uber首席架构师 Matt Ranney 在 2016 QCon 大会的访谈

    71870发布于 2018-04-03
  • 来自专栏海边的拾遗者

    Uber 下一代支付平台的系统架构设计

    新系统和架构的优势 基于作业 / 订单的系统 对于运行余额和用户实体的记账来说,基于交易的系统很难扩展。跟踪和执行零和原则是很困难的。 我们的新架构现在使用基于作业 / 订单的系统。 经验教训 对于任何快速扩展并试图扩大其设计产品范围的公司来说,迁移都是一个现实。这个复杂的项目涉及多个方面,即: 构建基于订单的复式记账系统的设计选择。 总结与未来打算 我们经历了广泛的架构设计、实现和周密思考的部署和积极监控的旅程。而且我们成功地推出了平台,在所有国家的停机时间可以忽略不计。 我们希望这些实践和架构设计对其他大规模执行迁移的工程师和团队有所帮助。 职责包括确保工程设计架构质量,推动事故后审查,领导支付和金融产品领域的跨团队项目开发。

    77240发布于 2020-11-09
  • 来自专栏架构之家

    Uber 下一代支付平台的系统架构设计

    新系统和架构的优势 基于作业 / 订单的系统 对于运行余额和用户实体的记账来说,基于交易的系统很难扩展。跟踪和执行零和原则是很困难的。 我们的新架构现在使用基于作业 / 订单的系统。 经验教训 对于任何快速扩展并试图扩大其设计产品范围的公司来说,迁移都是一个现实。这个复杂的项目涉及多个方面,即: 构建基于订单的复式记账系统的设计选择。 总结与未来打算 我们经历了广泛的架构设计、实现和周密思考的部署和积极监控的旅程。而且我们成功地推出了平台,在所有国家的停机时间可以忽略不计。 我们希望这些实践和架构设计对其他大规模执行迁移的工程师和团队有所帮助。 职责包括确保工程设计架构质量,推动事故后审查,领导支付和金融产品领域的跨团队项目开发。 原文链接: https://eng.uber.com/money-scale-strong-data/

    77020编辑于 2022-07-12
  • 来自专栏架构之家

    Uber:面向领域的微服务架构

    因此,“面向领域的微服务体系结构”大量借鉴了组织代码的既定方法,例如域驱动设计,清晰架构,面向服务的体系架构以及面向对象和面向接口的设计模式。 Uber的措施 域 Uber域代表一个或多个与逻辑功能分组绑定的微服务的集合。设计域时常见的问题是“域应该有多大?”有些域可以包含数十个服务,有些域只能包含单个服务。 Uber Maps组织本身分为三个域,在三个不同的网关后面有80个微服务。 层设计设计回答了“什么服务可以调用其他什么服务?”的问题。 在Uber的微服务架构中,我们可以将层设计视为“规模化的关注点分离”,或者,我们可以将层设计视为“规模化的依赖管理”。 层设计描述了一种机制,用于考虑Uber的故障影响范围和跨服务依赖的产品特异性。 新的业务和产品线 事实证明,使用DOMA设计的平台可扩展性更强,也更容易维护。Uber的大多数团队之所以采用DOMA,是因为支持新业务线的成本太高。

    53320编辑于 2022-07-12
  • 来自专栏技术一号位指南(小诚信驿站)

    系统设计Uber滴滴后端服务

    需求 设计Uber后端,让我们设计一个像优步这样的共享乘车服务,将需要乘车的乘客与有车的司机连接起来。类似服务:Lyft、滴滴、Via、Sidecar等。 难度等级:难,基于附近人或者搜索服务前提进行设计 1.什么是优步? Uber使其客户能够为出租车司机预订服务。优步司机用他们的私家车载着顾客四处转悠。 2.系统的要求和目标 让我们从构建一个更简单的Uber版本开始。 我们的系统中有两种用户:1)司机2)客户。 •司机需要定期通知服务部门他们的当前位置以及他们是否可以接送乘客。 •一旦客户提出乘车请求,系统应能够实时联系驾驶员-时间 4.基本系统设计和算法 我们将采用设计Yelp时讨论的解决方案,并对其进行修改,使其适用于上述“优步”用例。 当客户在手机上打开Uber应用程序时,他们会查询服务器以查找附近的司机。在服务器端,在将驱动程序列表返回给客户之前,我们将向客户订阅这些驱动程序的所有更新。

    5.3K95编辑于 2022-02-13
  • 来自专栏服务端技术杂谈

    一个打车应用早期架构发展史

    快的打车从2013年年底到2014年下半年,系统访问量迅速膨胀,很多复杂的问题要在短时间内解决,且不能影响线上业务,这是比较大的挑战,看下打车架构演变过程遇到的一些有代表性的问题和解决方案。 一个打车应用架构需要面对什么问题呢? 针对这些问题,设计了快的无线开放平台KOP,以下是一些大的设计原则。 接入权限控制 为接入的客户端分配标示和密钥,密钥由客户端保管,用来对请求做数字签名。 实时计算与监控 基于Storm和HBase设计了自己的实时监控平台,分钟级别实时展现系统运行状况和业务数据(架构如图2所示),包含以下几个主要部分。 ? 图5 实时数据中心架构图 将前台MySQL多库多表通过同步平台,都同步到了HBase; 为减少后台应用层的改动,设计了一个SQL解析模块,将SQL查询转换为HBase查询; 支持二级索引。

    86220发布于 2019-10-14
  • 来自专栏超级架构师

    【微服务架构】微服务架构——探索 UBER 的微服务架构

    设计微服务时的指南 作为开发人员,当您决定构建应用程序时,将域分开并明确功能。 您设计的每个微服务应仅专注于应用程序的一项服务。 确保您以这样一种方式设计了应用程序,即每个服务都可以单独部署。 现在,您已经阅读了设计微服务时的基本指南,让我们了解微服务的架构。 微服务架构如何工作? 优步案例研究 UBER 以前的架构 与许多初创公司一样,UBER 的旅程始于为单一城市的单一产品而构建的单体架构。拥有一个代码库在当时似乎很干净,并且解决了 UBER 的核心业务问题。 请参考下图了解 UBER 的微服务架构。 微服务设计模式 3. 微服务与 SOA 4.微服务教程 5. 微服务设计模式 6.

    88020编辑于 2022-03-24
  • 来自专栏性能与架构

    揭秘 Uber API 网关的架构,建议收藏!

    来源:InfoQ 近年来,API 网关成为微服务架构中不可或缺的一部分。因此,一个架构良好的 API 网关显得尤为重要。本文详细介绍了 Uber API 网关的架构设计,以飨读者。 近年来,API 网关成了微服务架构中不可或缺的一部分。API 网关为 Uber 所有的应用程序提供一个统一入口,并提供了一个从后端微服务访问数据、逻辑或功能的接口。 在上一篇文章中,我们介绍了 Uber 几代 API 网关的演变及每个阶段的设计选择。 https://eng.uber.com/gatewayuberapi/? 数据中心亲缘性 目前,拥有冗余数据中心和区域是大型 Web 公司实际采用的架构。属于不同业务单元或域的 API 托管在网关上,每个业务单元可以定义跨多个数据中心的工作负载分片。 挑战和教训 在网关的开发过程中,我们不得不做出多方面的设计选择。有些选择让我们获得了非常令人兴奋的结果,而有些却没有提供预期的投资回报。下面我们将简要介绍几项挑战。

    1.8K20发布于 2021-06-24
  • 来自专栏让技术和时代并行

    Uber互联网架构扩展简史

    (在这段视频《为失败而设计:通过打破一切来扩展 Uber 》中了解有关 Uber 为维护服务可靠性所做的最早努力的更多信息)。 这种架构开始类似于面向服务的架构。面向服务的架构可以非常强大。 从整体架构到微服务 2013年左右 为了为下一阶段的增长做好准备,Uber 决定采用微服务架构。 这种设计模式强制开发专用于特定的、封装良好的领域(例如乘客计费、司机付款、欺诈检测、分析、城市管理)的小型服务。每个服务都可以用自己的语言或框架编写,并且可以有自己的数据库或没有数据库。 为 Uber 不断扩大的规模重写调度 最初的调度服务是为了更简单的运输而设计的(一名司机兼一名乘客)。人们普遍认为 Uber 只需要运送人员,而不需要运送食物或包裹。 这导致 Uber 开发了移动设备的RIB 架构,从重写 Uber 主应用程序开始。

    56110编辑于 2024-04-10
  • 来自专栏架构之家

    高德打车通用可编排订单状态机引擎设计

    以高德打车业务的订单状态为例,订单状态就有乘客下单、司机接单、司机已到达乘车点、开始行程、行程结束、确认费用、支付成功、订单取消、订单关闭等;订单车型有专车、快车、出租车等几种车型,而专车又分舒适型、豪华型 二 实现方案 要解决"多状态+多类型+多场景+多维度"的复杂订单状态流转业务,我们从纵向和横向两个维度进行设计。 1 纵向解决业务隔离和流程编排 状态模式的应用 通常我们处理一个多状态或者多维度的业务逻辑,都会采用状态模式或者策略模式来解决,我们这里不讨论两种设计模式的异同,其核心其实可以概括为一个词"分而治之", 这不仅仅是从可扩展性和可维护性的角度出发,其实我们做架构做稳定性、隔离是一种减少影响面的基本手段,类似的隔离环境做灰度、分批发布等,这里不做扩展。 还是有的,对于数据库状态变更和消息的一致性的问题,细节比较多,每种方案又都有相应的优缺点,本文主要是介绍状态机引擎的设计,对于消息一致性的问题就不过多介绍,后面也许会有单独的文章对数据库变更和消息的一致性的问题进行介绍和讨论

    1.9K31编辑于 2022-09-01
领券