首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Uber 实时推送平台实践:gRPC 推动基础设施的发展

本文介绍了 Uber 如何通过轮询保持信息实时更新以及基于 gRPC 双向流协议构建应用。 轮询更新 在 Uber 的应用场景下,司机侧需要每隔几秒钟对服务器进行轮询,以查看是否新的订单。...乘客侧可以每隔几秒钟轮询一次服务器,以检查是否分配了司机。 这些应用程序的轮询频率取决于所轮询的数据变化率。在 Uber 这样的大型应用中,变化率的取值范围非常大,从几秒钟到几小时不等。...若客户机在 7 秒内未看到心跳或消息,则认为连接中断并重新连接。 在上述协议中,每当客户端使用更高的序列号重新连接时,它作为一个确认机制,允许服务器刷新旧消息。...该系统很快就成为服务器客户端 API 基础设施中最重要的部分。 随着流量和持久连接数量的增加,我们的技术选择也需要进行扩展。...在处理错误、超时、后退或应用程序生命周期事件(打开或关闭)、网络状态变化、主机名和数据中心故障切换方面,不同平台的客户端实现之间存在许多细微的差别。这样会在不同版本中产生性能差异。

72020

Uber 推出Movement服务,提供城市交通时间全景图

作者 Russell Brandom 本文为CDA数据分析师原创编译作品,转载需授权 CDA数据分析师编译团队 ---- 一直以来,Uber 都想利用它庞大的交通数据库做点什么。...用户可通过 Uber Movement 网址查询城市交通的行程时间,并实时监测行程时间的增减变化。目前 Movement 服务只提供给注册用户,网站声称将在未来几个月对所有用户开放。...在一份航空报告中,Uber 分析了华盛顿地铁关闭是如何引起行程时间的激增。 Movement 是由 Uber 内部团队 –Project Metropolis 所推出的第一个公共工具。...该团队旨在利用 Uber 庞大的行程数据库,帮助市政府制定更明智的交通规划。目前,华盛顿特区,悉尼和马尼拉等城市的数据率先推出。Uber 计划讲此服务覆盖到 Uber 公司营业的各大主要城市。...随着 Movement 的推出,许多城市的都希望从 Uber 获得更多的数据及类似服务。去年 12 月,纽约市提议提议服务器提供所有行程开始和结束时的地址和时间。

77980
您找到你想要的搜索结果了吗?
是的
没有找到

Uber系统架构设计

在单一代码库中添加新功能、修复 bug、解决技术债务变得非常困难,这也是为什么 Uber 后来采用面向服务的架构的原因,这也促使 Uber 工程团队重构了新的 Uber 应用。...可选代码很少被审查,并且可以在任何时候被动态关闭。这鼓励了代码级别上的相互独立,允许我们尝试新特性并随时停止它们。...Uber 使用一致性哈希环来扩展其 DISCO 服务器,从而在服务器之间有效分配负载,并自动检测集群中是否新节点被添加或是否节点从集群中移除,从而通过 SWIM/Gossip 协议重新分配工作负载。...当客户打开地图时,会向服务器发送查找附件所有司机的查询。 Kafka 提供的实时位置数据将用于计算司机到达时间,这样乘客就可以知道车辆什么时候会来,同时还会告诉乘客到达目的地的预计时间。...司机资料引擎 基于评价、服务时间精度等信息对司机进行分类 欺诈引擎 如果同一司机总是接同一用户的单子,他们很有可能是朋友,或者他试图利用 Uber 提供的激励计划

1.2K10

Uber互联网架构扩展简史

早在 2009 年,Uber 就聘请了承包商来构建 Uber 的第一个版本,并很快将其推出给旧金山的朋友们。该团队使用经典的LAMP 堆栈构建了 Uber 的第一个版本,代码是用西班牙语编写的。...“你五六个系统,它们的激励措施彼此之间 75% 相似”——Uber 前首席技术官 Thuan Pham 开发人员的生产力受到损害。 工程领导层认识到是时候提高标准化和一致性,并成立了方舟计划。...到 2021 年,Uber 寻求为越来越多的交付和移动用例提供支持。履行堆栈显老态,无法轻松支持所有这些新场景。...最后,我们继续通过优化的硬件、先进的内存和系统调整以及利用更新的运行时来提高服务器的性能。 下一步是什么?走向云端 作为一家全球性公司,Uber 从一开始就在多个本地数据中心运营。...我们现在计划在未来几年内将大部分在线和离线服务器迁移到云端!

10710

Uber是如何通过Mesos和Cassandra实现跨多个数据中心每秒100万的写入速度的?

我们是否也该这么做呢?在聆听Abhishek的演讲时,这样的想法涌入脑海。 如今,开发者许多艰难的选择要做,我们是否应当将所有的内容放在云端?应该用哪一个云?不会太贵吧?我们是否担心锁定的问题?...可能有50台机器专门负责API,50台负责存储等等,彼此工作并不重叠。 ➤现在 所有工作都要运行在Mesos上,包括那些状态的服务,比如Cassandra和Kafka。...目前Uber拥有大约20个Cassandra集群,并有计划扩展到100个。 敏捷比性能更加重要。我们需要有能力管理这些群组,并以平滑的方式对其执行不同的操作。...在案例中,dcos-cassandra-service框架有两个集群与Mesos主服务器会话。Uber在系统中使用了五个Mesos主服务器,并通过Zookeeper来选出leader。...计划执行 可以总结为计划、阶段和模块。规划好的计划包含不同的阶段,每个阶段包含多个模块。 第一阶段就是协调,系统会找出在Mesos之外已经运行的程序。

1.7K90

Uber空窗期终结,黑马掌门人Expedia CEO被选中

这位现任在线旅行公司Expedia掌门人的“黑马CEO",或将带领此前深陷丑闻的Uber重新步入正轨。...此前,Travis Kalanick因Uber内部一系列性别歧视、种族歧视丑闻而卸任Uber CEO一职。Uber董事会刚才的决议或将结束Uber两个月来“群龙无首”的尴尬局面。...已经61岁的Immelt并没有在当时谈起为什么退出通用电气,但《纽约时报》曾发表评论说,他不太可能从Uber的董事会获得足够的选票,打败其他竞争对手。...同样年61岁的Whitman此前曾表示,她计划留在惠普,并认为外界对她“或将离职前往Uber”的传闻会令她和她的团队分心。在上月,她曾发推特表示:“在惠普我们仍然很多工作要做。”...图为2005年以来Expedia的股价变化趋势,Khosrowshahi的到来令其股价一路上涨 截止目前,Uber还未正式对Khosrowshahi发出任职邀请,Khosrowshahi也仍未正式宣布是否会接任

33040

持久连接 WebSocket 到底是什么

交集,但是并不是全部。 另外Html5是指的一系列新的API,或者说新规范,新技术。Http协议本身只有1.0和1.1,而且跟Html本身没有直接关系。。...二、Websocket是什么样的协议,具体什么优点 首先,Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说。...首先是 ajax轮询 ,ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否新信息。...ajax轮询 需要服务器很快的处理速度和资源。(速度) long poll 需要有很高的并发,也就是说同时接待客户的能力。...同时,在传统的方式上,要不断的建立,关闭HTTP协议,由于HTTP是非状态性的,每次都要重新传输identity info(鉴别信息),来告诉服务端你是谁。

72320

无人车第一大案闪电结束

然而庭审远没有影视作品中那般精彩,包括卡兰尼克在内的多名证人轮番出庭,双方律师就服务器、激光雷达、硬盘等细节展开激辩。 不过直到周四,双方都没有证明Uber到底有没有从谷歌盗取14000页机密文件。...如果继续打下去,可能还要持续数年,耗费金额同样不菲的诉讼费用。 前不久,Uber获得软银投资时,给对方打了一个打折扣,所以这笔0.34%的股份,其实目前价值其实也并不大。...谷歌2013年曾2.58亿美元入股Uber。 了结这桩官司,Uber新管理层就算是跟过去清算完成了。明年,Uber启动IPO上市计划时,就不用担心自己的道路上埋着一颗谷歌的地雷。...据说其实谷歌也没提出什么新的证据,Uber还没正经展开辩护。 谷歌为什么同意和解? 其实谷歌手上实打实的证据也不多,来来回回还是之前公布过的那些。...据Benchmark诉状披露,Uber和莱万早在2015年5月20日,就开始讨论某些技术问题。2015年10月-12月11日期间,莱万和Uber的代表会见过五次。

72970

171.Spring Boot WebSocket:原理篇

一、websocket与http WebSocket是HTML5出的协议,也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算) 首先HTTP 1.1 和...3.1 ajax轮询 ajax轮询的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否新信息。...ajax轮询需要服务器很快的处理速度和资源。(速度)long poll需要有很高的并发,也就是说同时接待客户的能力。(场地大小) 所以和都有可能发生这种情况。 客户端:啦啦啦啦,新信息么?...(在程序设计中,这种设计叫做回调,即:你信息了再来通知我,而不是我傻乎乎的每次跑来问你) 这样的协议解决了上面同步延迟,而且还非常消耗资源的这种情况。那么为什么他会解决服务器上消耗资源的问题呢?...同时,在传统的方式上,要不断的建立,关闭HTTP协议,由于HTTP是非状态性的,每次都要重新传输 identity info (鉴别信息),来告诉服务端你是谁。

1.4K100

看完让你彻底搞懂Websocket原理

交集,但是并不是全部。 另外Html5是指的一系列新的API,或者说新规范,新技术。Http协议本身只有1.0和1.1,而且跟Html本身没有直接关系。。...ajax轮询 ajax轮询的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否新信息。...ajax轮询 需要服务器很快的处理速度和资源。(速度)long poll 需要有很高的并发,也就是说同时接待客户的能力。...那么为什么他会解决服务器上消耗资源的问题呢? 其实我们所用的程序是要经过两层代理的,即HTTP协议在Nginx等服务器的解析下,然后再传送给相应的Handler(PHP等)来处理。...同时,在传统的方式上,要不断的建立,关闭HTTP协议,由于HTTP是非状态性的,每次都要重新传输 identity info (鉴别信息),来告诉服务端你是谁。

1.6K30

websocket教程(一) 非常有趣的理解websocket

一、websocket与http WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算) 首先HTTP 1.1...交集,但是并不是全部。 另外html5是指的一系列新的API,或者说新规范,新技术。Http协议本身只有1.0和1.1,而且跟Html本身没有直接关系。。...ajax轮询 ajax轮询的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否新信息。...ajax轮询 需要服务器很快的处理速度和资源。(速度)long poll 需要有很高的并发,也就是说同时接待客户的能力。...同时,在传统的方式上,要不断的建立,关闭HTTP协议,由于HTTP是非状态性的,每次都要重新传输 identity info (鉴别信息),来告诉服务端你是谁。

76870

萌萌的websocket原理解析

交集,但是并不是全部。 另外Html5是指的一系列新的API,或者说新规范,新技术。Http协议本身只有1.0和1.1,而且跟Html本身没有直接关系。。...二、Websocket是什么样的协议,具体什么优点 首先,Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说。...首先是 ajax轮询 ,ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否新信息。...ajax轮询 需要服务器很快的处理速度和资源。(速度) long poll 需要有很高的并发,也就是说同时接待客户的能力。...同时,在传统的方式上,要不断的建立,关闭HTTP协议,由于HTTP是非状态性的,每次都要重新传输identity info(鉴别信息),来告诉服务端你是谁。

85430

WebSocket 是什么原理?为什么可以实现持久连接?--装

一、WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算) 首先HTTP1.1和1.0之说,也就是所谓的keep-alive...交集,但是并不是全部。 另外Html5是指的一系列新的API,或者说新规范,新技术。Http协议本身只有1.0和1.1,而且跟Html本身没有直接关系。。...首先是 ajax轮询 ,ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否新信息。...ajax轮询 需要服务器很快的处理速度和资源。(速度) long poll 需要有很高的并发,也就是说同时接待客户的能力。...同时,在传统的方式上,要不断的建立,关闭HTTP协议,由于HTTP是非状态性的,每次都要重新传输identity info(鉴别信息),来告诉服务端你是谁。

1.1K70

Websocket 概述

]] 一、WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算) 首先HTTP1.1和1.0之说,也就是所谓的...交集,但是并不是全部。 另外Html5是指的一系列新的API,或者说新规范,新技术。Http协议本身只有1.0和1.1,而且跟Html本身没有直接关系。。...首先是 ajax轮询 ,ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否新信息。...ajax轮询 需要服务器很快的处理速度和资源。(速度) long poll 需要有很高的并发,也就是说同时接待客户的能力。...同时,在传统的方式上,要不断的建立,关闭HTTP协议,由于HTTP是非状态性的,每次都要重新传输identity info(鉴别信息),来告诉服务端你是谁。

84150

互联网10年,激战如梦

---- — 1 — 1969年,美国国防部研究计划署第一次将互联网应用于军事连接。随后美国西南部四所名校的四台计算机通过这项技术连接起来。 谁也没想到,这项计划会对人类的命运产生如此重大影响。...2002年,用户大量的涌入让腾讯的服务器不堪重负。千万级的流量带来的却是无尽的烦恼,马化腾到处兜售QQ,却没人能看懂QQ的未来。...彼时大洋彼岸,团购网站鼻祖Groupon如日中天。 2009年7月,王兴的饭否网因故障被关闭,直到2010年1月,饭否依然开张无望,于是他萌发了创建一个类似Groupon网站的念头。...在王刚的支持下,很快滴滴打车成立了。 因为自己曾经打不到车的痛点,程维就这样拿着100万的投资杀入打车领域。 2012年,早年就通过游戏发家的陈伟星在泛城国际内部孵化了快的。...很快,滴滴快的吞并中国UberUber拿到股份开心离场。 这场战况空前的烧钱大战,就此结束。 ---- — 6 — 打车大战,虽然堪称烧钱之最,但要比肉搏程度,远不及外卖大战。

46910

我在Uber亲历的最严重的工程灾难

这个团队的目标是构建一个能够“在未来 5 年内支撑 Uber 移动开发”的架构。 我们要同时支持两个平台,产品和设计也重新来过。...一个 Uber 工程师在 Xcode 中输入了一行代码,等了 45 秒之后,字母才慢慢地、一个接一个地出现在编辑器中。 随后,我们又遇到动态链接器问题。...但随着 App 的不断发展,很快就达到了二进制文件(iOS 8 和更早的版本)的下载限制 (100MB),这意味着大量用户无法注册。 此时距离公开发布日期只有几周时间。...受到“惊吓”的人们关闭了手机的位置权限,但新 App 并没有相应的解决办法。 我们赶紧想办法讨论对策。我们想过关闭后台位置收集,但这样会破坏用户体验。...当然,这完全取决于你所写的代码是什么样的,因此很难对 pass 的顺序进行通用的优化。 阿姆斯特丹的这位工程师在构建过程中使用退火算法来重新排序编译器优化,最小化生成的机器码。

63220

websocket 实现长连接原理「建议收藏」

一、WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP1.1和1.0之说,也就是所谓的keep-alive...二、Websocket是什么样的协议,具体什么优点 首先,Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说。 简单的举个例子吧,用目前应用比较广泛的PHP生命周期来解释。...首先是 ajax轮询 ,ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否新信息。...ajax轮询 需要服务器很快的处理速度和资源。(速度) long poll 需要有很高的并发,也就是说同时接待客户的能力。...同时,在传统的方式上,要不断的建立,关闭HTTP协议,由于HTTP是非状态性的,每次都要 重新传输identity info(鉴别信息),来告诉服务端你是谁。

4.7K10

介绍Kubernetes 1.14的本地持久卷GA和Uber的使用分享

https://kubernetes.io/docs/reference/using-api/deprecation-policy/ 什么是本地持久卷?...使用本地持久卷插件,Kubernetes工作负载现在可以使用应用程序开发者习惯使用的相同卷API来使用高性能本地存储。 它与HostPath卷什么不同?...GA什么新功能? 从1.10开始,我们主要致力于提高功能的稳定性和可扩展性,以便生产就绪。 唯一的主要功能是能够指定裸盘并让Kubernetes自动格式化并挂载文件系统。...如果某个节点不可用,例如,如果该节点已从群集中删除或耗尽(drained),则使用该节点上的本地卷的pod将处于“未知(Unknown)”或“待处理(Pending)”状态,具体取决于该节点是否优雅地删除...我们在为M3DB构建operator时考虑到了这一点,当重新调度pod时,会对集群拓扑进行更改,以便新节点从其余两个节点优雅地流式传输数据。最终我们计划完全自动删除和重新安排过程。

1.2K20

Uber:用司机手机做数据中心备份

Uber并没有这样做,他们在司机的手机上存储足够的状态,这样,当数据中心发生失效转移时,用户的行程数据也不会在失效转移中丢失。 为什么选择这种方式呢?事实上,传统的方法更加简单。...(一个好处在这里并没有被讲到,可能对Uber来说不重要,但对一些小的公司来说影响很大,即使用司机手机的计划所需要补贴的带宽成本没有数据中心之间传输所需要的带宽成本高。)...即使在系统关闭的情况下,系统中的任何后端应用程序应该能够更新。应用程序更新应该付出的唯一代价是,它可能需要一段时间将数据存储在手机上。 数据中心之间的数据可以移动,因此没有必要担心数据在什么地方。...他们希望能够不断地测试系统是否成功,因此当故障发生时他们能够信心进行失效转移。 流程 一个司机在发生更新或状态变化时,例如,接上了一个乘客。当请求调度服务的时候,更新就开始了。...然后将数据进行比较,以查看数据是否符合预期。这就产生了很多不错的健康指标,如失败比例。 按区域和应用程序版本分解指标对查明问题很大的帮助。

1.1K60

无人驾驶汽车革命为何停滞不前?

事实上,在2020年的最后几周,最大的玩家和本应的受益者之一的Uber决定停摆其自动驾驶出租车计划,以约40亿美元的价格将其自动驾驶部门出售给Aurora,这大约只有它在2019年估值的一半。...Uber首席执行官辩称这一决定并不意味着该公司不再看好自动驾驶汽车。Dara Khosrowshahi说:“几乎没有什么技术(像自动驾驶技术一样)能通过安全、便捷和环保的交通方式改善人们的生活。”...在其他地方,自动驾驶出租车项目处于停滞。...Addison Lee的首席执行官Liam Griffin说:“自动驾驶汽车最好留给OEM(制造商)应用,并且不作为我们当前计划的一部分。”...我认为越来越多的人对我们将很快乘坐自动驾驶汽车的思路表示怀疑。相反,行业现在正在谈论一些特定用途。”

47520
领券