「uber地推策略」uber采用了多少种新型推销手段

博主:adminadmin 2023-03-31 21:05:08 728

本篇文章给大家谈谈uber地推策略,以及uber采用了多少种新型推销手段对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

uber和滴滴打车的盈利模式分别是怎样的

优步(Uber)作为全球领先的移动互联网创业公司,通过创新科技为乘客和合作司机高效即时匹配提供安全、可靠、便利的出行选择,早已被世界所熟知。公司创立以来,已经在全球70多个国家和地区的400多个城市开展业务,每天都有上千万用户选择使用优步出行。当然,如此庞大的网络公司是无论如何不可能放过中国这块潜力无穷的市场。中国优步通过近些年的发展,已经实现了全面的本土化。但就中国网约车市场本身来说,目前应该还处于发展用户,开辟市场的环节,简单来说,这个行业是以时间换空间,以补贴换市场的行业,为了占据市场,网约车平台只能克制营利冲动,用大量资金提供廉价的乘车服务和较高额的司机报酬。不过显然,这也是个投入与盈利成正比的行业,网约车平台的盈利期已经悄然而至。

提到优步那么就不得不说另一家与之相爱相杀的企业滴滴出行。这两家企业算的上是该行业在中国境内的两大巨头企业。多年的竞争最终还是走向了合并的大趋势,同时似乎也形成了垄断。而优步与滴滴相比,事实上并没有明显的不足,两者同样都是做着烧钱的买卖。优步中国在中国市场一两年之内便从零拿到了市场超过20%的股份,这得益于优步的哪些战略,与滴滴相比差距又在哪里?从定价优惠方面,优步用户从注册开始便能得到30元的优惠,有效时间三个月。0元起步,1.6元/公里,0.25元/分钟,用户一般集中在上下班非高峰时期。这种定价显然是优步迅速在中国市场蔓延的重要保障。从福利上与滴滴的红包难分伯仲,各有千秋,但说到本土化,优步显然和土生土长的滴滴还是有一定差距的。这种极为烧钱的定价优惠策略背后,那是需要庞大的资金支持的。与快的合并之后,滴滴已经是阿里和腾讯的共同投资对象。就腾讯来说,滴滴与之挂钩,带来的用户必然不是一个单独的软件所媲美的。这也是只有百度一家支持优步的劣势所在。

虽说是优步与滴滴从竞争走向了整合的道路,似乎对于优步来说,有种败走麦城的落寞。但作为网约车平台,包括易到用车,神州专车在内,每家都有着自己独有的特色。毕竟这是服务类平台,用最低的价格让百姓体会到了至高无上的服务水平,才是牢牢抓住用户的有效策略。而在产品上,作为移动出行行业的开创者,优步倡导的实时派单、不接受预约、动态调价、鼓励拼车等理念,已经成为目前行业普遍推崇的做法,而滴滴一开始采用了抢单机制、鼓励预约、手动加价等做法,事实上不适合专车产品。不久的将来,也许优步就会逐渐淡出中国市场,但它的功能和理念一定会被继承下来。另一方面从营销战略上讲,为了争夺中国市场,优步和滴滴长期肉搏,以几乎疯狂的姿态对每个出行订单进行补贴。结果就以2016年上半年的的专车市场份额来说,滴滴专车以85.3%的订单市场份额居行业之首。从数据上看滴滴已经遥遥领先,地位的稳固已经不可动摇。而对于优步在中国市场的长期发展来说,合并的确是比较理智的行为。但合并并不意味着垄断,竞争依然存在,神州专车、易到用车、首都约车,这些企业市场份额虽小,但却各具特色,就拿易到来说,它的优惠策略虽然不及优步滴滴,但却是经济实用型,而且用户对其APP体验很好,界面简洁、操作简单,这些优势在将来的盈利时期一定会起到极大的作用。

比较滴滴和uber的竞争战略的区别

在有关动物的新闻中常会出现一句极具喜感的评论“现已加入肯德基豪华午餐”,网友对洋快餐的调笑成就了一个无心插柳的网络热词,其实对企业来说,整合现有的供应链提供额外的产品或服务,是一种常见的商业策略,如Uber就有从快递到送餐的个性化服务,滴滴则在打车、专车之后,连续推出快车、顺风车等产品。很多人不解的是,为什么像Uber和滴滴不是深耕现有的专车服务,坐待意料之中的收获,反而匆忙进入那些前景不明的细分市场,急于打造互联网出行全平台?不合情理的抉择背后有着怎样的商业考量?

抢占潜在风口,抑制资本盲动

李彦宏曾经教导创业者:总是提防腾讯没有前途!而腾讯何尝不对创业者心怀敬畏,创新发展到今天,破坏性和颠覆性愈益明显,看似恢宏的商业帝国很可能瞬间崩塌,共享经济的崛起令创新的门槛不断下探,Uber商业神话就是一个具体而微的例子。最近估值达到500亿美元的Uber受到风投的追捧,那些曾经的明星公司都被它抛在身后:携程市值107美元,去哪儿58亿美元,艺龙不到7亿美元,甚至携程的股东—美国头号在线旅游公司Priceline的市值也不过610亿美元左右。

在中国,Uber的成功被滴滴快速复制,但这个双雄并立的市场显然并不平静:

共享是把双刃剑,闲散的私车资源可以被Uber和滴滴用来破解出租车困局,也可以实现别人的雄心壮志,这里只有赢者通吃,没有所谓的良性竞争。在美国,Airbnb和Uber各霸一方,并无可与匹敌的对手。以Uber来说,日均订单早破百万,以每单抽取20%的佣金计算,赢利可观,但家底殷实的Uber在资本市场却仍然激进,筹划的新一轮融资规模将达15亿美元,Travis Kalanick甘冒原始股权被稀释的风险其实有不得已的苦衷。

因为Uber必须狙击Lyft、Getaround这样的创新公司,后者的业务形态决定了他们一旦获得资本支持,就有可能用补贴争夺和瓦解Uber的供应链,即使他们无法赢利。对此,深谋远虑的Travis Kalanick采取了两条对策:

一是通过不断融资将资本市场与Uber结成利益共同体,打压Lyft、Getaround的融资空间。迄今为止,Lyft的F轮估值只有25亿美元,Getaround和Relayrides仍然无足轻重,Uber还特别注意引入战略投资者,例如此前与百度的合作,主要是为了防止竞争对手突然获得有力的渠道资源,在特定市场对Uber构成威胁,此前阿里参投Lyft即是信号;

二是通过不断扩张的产品线,维系订单量的持续增长,保持和提升平台的粘性和稳定性,这对于在舆论漩涡中挣扎的Uber有着特殊意义。

在这方面,程维要算是Travis Kalanick的知音,滴滴启动快车、顺风车等业务有着与Uber相似的诉求,前段时间,P2P租车在资本市场风头正劲,之后则是拼车公司屡获风投,但经过Uber和滴滴的打压,纷纷偃旗息鼓,爱拼车的停止运营即是一例。

以体量换时间,牵制政策、舆论和对手

某种程度上说,互联网出行服务是在与时间赛跑,变成大而不倒、强壮有力并能够支配诸多公共资源的商业巨无霸,可算是洗雪创新原罪的一种有效方法。

无限延伸的产品线能够帮助Uber和滴滴聚集更多的社会资源,宣传共享创新和绿色出行理念,保持足够的公关热度,影响未来的政策走向。当然反对派和既得利益者总是存在的,Uber和滴滴在聚拢更多同盟军的同时,也制造了更多敌人,不得不在三条战线上艰苦奋战。

在舆论方面,Uber和滴滴极为成功,这既得利于80后迅速成长为社会中坚力量,也受益于自下而上推动变革的观念深入人心,互联网出行公司通过提供质优价廉的服务赢得了消费者,而批评者则被描绘成陈腐的保守主义者,这是营销和公关的双重胜利。

近来各地查处专车事件频出,有关出租车改革办法和专车管理新规也都在酝酿,在这个关键时间节点,备受关注的互联网出行公司亟需发出整齐划一的声音,所以Uber和滴滴快速进入各个细分市场,依托自身体量将小型初创公司从市场中排挤出去或边缘化,减少杂音的同时也将自己变成政府对话的唯一对象,才是破局之道,否则类似北京破窗和广州围堵这样的戏码持续上演终非了局。上海交通委在多番踟蹰之后终于将出租车公司和滴滴整合为出租车信息服务平台可说是这种努力的结果。

另一个因素是Uber和滴滴的巨人之争,同是立足于私车资源,零和博弈现象严重,一家所得必为一家之失,所以无论Uber还是滴滴都拼命扩充和维持哪怕是并不赚钱的产品,这也成了一条隐蔽的竞争辅线。

规模第一,赢利第二的生态系统

互联网出行是Big business已然毫无争议,但是否赚钱以及如何赚钱仍是一个复杂的问题,而且在中国和美国有着迥然不同的答案。在美国,Uber虽然处处渗透着创始人那种“与天斗,与人斗,其乐无穷“的战斗哲学,但它的经营管理仍然遵循着传统的商业逻辑,也就是MBA教程中那些凛然不可侵犯的核心原则。Uber更多乞灵于技术手段而不是价格杠杆调节需求,支撑Travis Kalanick那些宏大愿景的秘密在于:Ube仍是一家赚钱的公司。

但在中国一切都不同了,年轻一代是吃着互联网的免费大餐成长起来的,他们期待用最低的价格享受最好的服务,他们会精心计算返券和优惠的最佳用法,并乐于分享,以此为荣,Uber和滴滴不得不用低价+补贴轮番刺激和洗脑,才能吸引他们共同来完善这个商业模式,这就催生了一个规模第一,赢利第二的生态系统。

单以目前展开的几条出行产品线而论,专车本是定位高于出租车的产品,由于竞争激烈,司机的赢利空间已经摊薄,快车等低端产品的加入更是雪上加霜,但他们必须咬牙坚持,因为价格从来是基于市场而不是成本,Uber和滴滴只能从动态定价等收益管理手段上寻求解决之道。拼车是看不出任何赢利前景,因为单均金额过低,司机只有尝鲜心态,缺乏服务意识,乘客的期望值也不高,整套体系的运转全靠补贴支撑。拼车有许多细分市场,通勤拼车虽然有稳定需求,但在中国这样的人情社会,低成本的解决方式并不少。Uber推出Uberpool和人民优步的核心目的,是以低廉的价格赢得更广泛的用户,稳定供应链,快速创造足够规模的现金流。电商巨子Jeff Bezos在解释Amazon的成功之道时,曾说:“世界上只有两类公司,一类拼命想收更多的钱,一类是努力想收少一点。我们是后者。”Uber显然从中深受启发。

滴滴顺风车则有另一番野心,程维和柳青当然知道这个产品不可能赢利,而且是订单越多、亏损越多的恶性循环,但滴滴通过引导加强了它的社交属性,“相逢是一种默契,缘分妙不可言,希望你坐在副驾位置”,这样的短信话术显然试图淡化服务的商业色彩,而渲染一种邂逅的氛围。易到用车的周航曾经憧憬:司机和乘客不应该是冰冷的服务关系,而应该有良性的互动,司机可以被收藏,然后像老朋友一样被时不时的翻出来。滴滴显然正在实践。

滴滴快车的产品属性比较复杂,它虽然有效对冲了Uber的低价策略,但与滴滴的其他产品也存在双手互搏,快车的另一个定位是传统出租车的替代品,显示出滴滴已经对整合现有出租车资源不抱希望,开始提前布局,但广告文案强调低价并对出租车猛烈开火在最近严苛的大环境下显得格格不入,直接导致了北京交通委的约谈。

归根结底,Uber和滴滴们“尽人事而安天命”的努力是否奏效,最终还是要由正在酝酿的专车新规来决定,假如这份新规真如目前所披露的那样,坚持营运资质和私家车禁入两大门槛,那么互联网出行市场很可能面临重新洗牌。

APP推广的推广模式有哪些?

地推模式、异业合作、广告投放、社交传播。以上都是APP的推广模式,根据APP生命周期的不同阶段,可采取不同的模式进行获客。

1、地推模式:这是一种非常重的获客模式,也就是早些年北京望京的扫码一条街的来源。在人流密集处架个帐篷,放些礼品,拿上传单,就可以做获客,精细点的推广人员会看人发传单,看人用不同的话术。

2、异业合作:异业合作的本质是流量的合作,在这个模式中,具体包含线下的互推、线上的合作以及品牌的联合。如:京东和爱奇艺将两者的会员打通,在各自的场景下,给对方做引流获客;uber在中国推广时,与梦龙合作,打uber送冰激凌。

3、广告投放:不管是偏向于品宣的按展示结算的模式,还是偏向于获客的按转化结算的模式,广告投放模式都是APP获客模式中非常重要的一环。但在具体操作时,还得从成本、效果、目的等多角度出发,进行成本和效果控制。

4、社交传播:社交传播式的APP获客模式,常常能通过其有趣的创意或者小恩小惠的利益而引爆朋友圈,这也是一种从点到面的推广模式。从具体的模式而言,大致可以分为红包裂变、关系裂变和团购裂变。

扩展资料

1、真实的用户留存曲线应该是平滑下降的,如果一个App的次日留存率能达到40%的话,那么7日留存率达到20%,30日留存率达到10%,这个App的留存率就高过业内标准了,需要警惕。

2、查看数据时,如果有部分用户来自重点投放区域外,或者过于集中在某个地区,那么数据来源可能来自某个作弊工作室。

Uber实时推送平台是如何打造的

原文:Uber’s Real-Time Push Platform

译者:LZM

Uber 建立的出行平台每天在处理全球数以百万计的打车订单。

实时打车市场是一个十分活跃的市场。一次行程包括多个参与者(乘客、司机),他们需要能在 APP 上实时查看、修改当前旅程的状态。因此,Uber 需要保证每个参与者和他们的 APP 实时同步相关信息,无论是接车时间、达到时间还是行驶路线和附近的司机。

今天,手机端呈现的功能日益丰富,而这些功能对实时信息同步的需求也逐渐增多。本文将介绍 Uber 工程团队如何把 Uber 平台信息同步机制从轮询转为基于 gRPC 的双向消息流协议。

在 Uber 后台,一个行程连接了现实世界中的乘客和司机。在行程过程中,这两个实体需要实时更新后台系统的信息。

我们思考一个场景:乘客发出打车请求,而司机在系统上等待接单。Uber 配对系统在后台自动匹配二者,向司机发送订单。到此为止,每一方(乘客、司机、后台)应该彼此同步他们的内容。

如果一个新订单带来,司机 APP 会每隔几秒轮询一次信息以及时更新订单状态。与此同时,乘客 APP 也会每隔几秒轮询一个信息来查看司机时候接单。

轮询的频率由数据改变的速率决定。对于一个大型 APP(例如 Uber APP),这个变化速率从几秒到几个小时不等,变化范围十分宽泛。

80% 的后台 API 请求都是来自客户端的轮询请求。激进的轮询策略能让 APP 的消息保持最新,但也会导致服务器资源耗尽。任何轮询过程中的 bug 都可能频繁导致后台负载显著加剧,甚至崩溃。随着需要动态实时数据的功能的增加,这个方法变得不再可行。

轮询会导致更快的电池消耗、应用程序延迟和网络级拥塞。这在城市中使用 2G/3G 网络或网络不稳定的地方尤其明显。在这些地方,应用程序每次尝试拉取信息时,都会重试多次。

随着功能增加,开发者们尝试重载轮询 API 或重建一个新的 API。在高峰期,APP 同时向多个 API 发送轮询请求。每个 API 负载数个功能。这些轮询 API 本质上成为一组分片负载 API。但是,在 API 级别上保持一致性和逻辑分离仍然是一个越来越大的挑战。

冷启动问题是其中最具挑战性的问题之一。每当 APP 启动,所有功能都希望从后台获取最新状态,以渲染用户界面。这导致多个 API 并发竞争,APP 不能成功渲染出正常界面,直到关键组件的消息被返回。在没有优先级的情况下,因为所有的 API 都有一些关键信息,所以应用加载时间会持续增加。糟糕的网络条件会进一步恶化冷启动问题。

很明显,我们需要一个彻头彻尾的、对消息同步机制的改变。我们开启了建立一个全新的实时推送平台的旅程。在这个平台上,服务器可以根据需要向应用程序发送数据。当我们采用这种新架构时,我们发现效率有显著的改进,同时也解决了不同的问题和挑战。

接下来,来看看我们对推送平台的几代改进以及该平台是如何演变的。

虽然使用消息推送是取代轮询的自然选择,但在如何构建推送机制上有很多需要考虑的问题。四个主要设计原则如下:

1)从轮询到推送的简单迁移

目前存在大量端设备在进行轮询。新系统必须利用现有的、分配给轮询 API 的负载和逻辑,而不是完全推倒重来。

2)简易开发

与开发轮询 API 相比,开发人员在推送数据方面不应该做截然不同的事情。

3)可靠性

所有消息应该通过网络可靠地发送到客户的 APP 上,并在发送失败时重试。

4)高效率

随着 Uber 在发展中国家的迅速发展,数据使用成本对我们的用户来说是一个挑战,对于每天要在 Uber 平台上呆上几个小时的司机来说尤其如此。新协议必须最小化服务器和移动应用程序之间的数据传输量。

我们将这个消息推送系统命名为 RAMEN (Realtime Asynchronous MEssaging Network,实时异步消息网络)。

任何时候,实时信息都在变化。消息的生命周期开始于决定生成一条信息的那一刻。微服务 Fireball 用于决定何时推送消息。很大部分决策都由配置文件决定。Fireball 在系统间监听多种类型的事件,并决定是否推送给该消息涉及的客户。

例如,当一个司机加单,司机和行程的状态都会改变,并触发 Fireball。之后,根据配置文件的内容,Fireball 决定何类消息应该推送给客户。通常,一个触发器会向多个用户发送多个消息。

任何事件都可能被触发器捕获,例如一些客户行为(如发出打车请求、打开 APP)、定时器到期、消息总线上的后端业务事件或是地理上的驶出 / 驶入事件。所有这些触发器都被过滤并转换为对各种后台 API 的调用。这些 API 需要客户的上下文信息,如设备定位、设备的操作系统以及 APP 的版本号,来生成一个响应。Fireball 获取设备上下文 RAMEN 服务器,并在调用 API 时将它们添加到头部。

所有来自 Uber APP 的服务器调用都由我们的 API 网关提供。推送有效负载以同样的方式生成。一旦 Fireball 决定了推送消息的对象和时间,API 网关就负责决定推送什么。网关会调用各类域服务来生成正确的推送负载。

网关中的所有 API 在如何生成有效负载方面是相似的。这些 API 分为拉取式和推送式两种。。拉取式 API 由移动设备调用来执行任何 HTTP 操作。推送 API 由 Fireball 调用,它有一个额外的 “推送” 中间件,可以拦截拉取式 API 的响应,并将其转发给推送消息系统。

将 API 网关介乎于二者之间有以下好处:

l  拉式和推式 API 共享端设备上的大部分业务逻辑。一个给定的负载可以从拉式 API 无缝切换到推式 API。例如,无论你的 APP 是通过拉式 API 调用拉出一个客户对象,还是 Fireball 通过推式 API 调用发送一个客户对象,他们都使用相同的逻辑。

l  网关负责处理大量业务逻辑,如推送消息的速率、路由和消息验证。

在适当的时候,Fireball 和网关一起生成发送给客户的推送消息。负责将这些信息传递到移动设备的是 “推送消息传递系统”。

每条消息推送会根据不同的配置执行,这些配置项包括:

1)优先级

由于为不同的用例生成了数百个不同的消息负载,因此需要对发送到 APP 的内容进行优先排序。我们将在下一节中看到,我们采用的协议限制在单个连接上发送多个并发负载。此外,接收设备的带宽是有限的。为了给人一种相对优先级的感觉,我们将信息大致分为三个不同的优先级:

l  高优先级:核心功能数据

l  中优先级:其他有助于提升客户体验的功能数据

l  低优先级:需要发送的数据规模大且使用频率不高

优先级配置用于管理平台的多种行为。例如,连接建立后,消息按照优先级降序排列在套接字(socket)中。在 RPC 失败的情况下,通过服务器端重试,高优先级消息变得更加可靠,并且支持跨区域复制。

2)存活时间

推送消息是为了改善实时体验。因此,每个消息都有一个预先定义的生存时间,从几秒到半个小时不等。消息传递系统将消息持久化并在发生错误时重试传递消息,直到有效值过期为止。

3)去重复

当通过触发器机制或重传机制多次生成相同的消息时,此配置项确定是否应该删除重复的消息推送。对于我们的大多数用例,发送给定类型的最新推送消息足以满足用户体验,这允许我们降低总体数据传输速率。

消息推送系统的最后一个组件是实际的有效负载交付服务。该服务维持着与世界各地数百万 APP 程序的活跃连接,并在它们到达时将有效信息同步。世界各地的移动网络提供了不同级别的可靠性,因此传输系统需要足够鲁棒以适应故障。我们的系统保证 “至少一次” 交货。

为了保证可靠传输,我们必须基于 TCP 协议,建立从应用程序到数据中心的持久连接。对于 2015 年的一个应用协议,我们的选择是使用带有长轮询、网络套接字或最终服务器发送事件 (SSE) 的 HTTP/1.1。

基于各种考虑,如安全性、移动 SDK 的支持和数据大小的影响,我们决定使用 SSE。Uber 已经支持了 HTTP + JSON API 栈,它的简单性和可操作性使它成为我们当时的选择。

然而,SSE 是一种单向协议,即数据只能从服务器发送到应用程序。为了提供之前提到的 “至少一次” 的保障,需要确认和重传机制以构建到应用程序协议之上的交付协议中。在 SSE 的基础上,我们定义了一个非常优雅和简单的协议方案。

客户端开始接收第一个 HTTP 请求的消息 /ramen/receive?seq=0,在任何新会话开始时序列号为 0。服务器以 HTTP 200 和 “Content-Type: text/event-stream” 响应客户端以维护 SSE 连接。接下来,服务器将按照优先级降序发送所有挂起的消息并依次递增序列号。由于底层传输协议是 TCP 协议,如果没有交付带有 seq#3 的消息,那么该连接应该已断开、超时或失败。

客户端期望在下一个看到的带有最大序列号重新连接 (在本例中 seq=2)。这就告诉了服务器,即使编号 3 写到了套接字上,它也没有被正常传递。然后服务器将重新发送相同的消息或以 seq=3 开始的任何更高优先级的消息。该协议构建了流连接所需的可恢复性,服务器负责大部分的存储工作,在客户端实现起来非常简单。

为了获知链接是否存活,服务器每 4 秒会发送一个心跳包,这类数据包大小只有一个比特。如果超过 7 秒没有收到来自服务器的消息或心跳,客户端会认定服务终端并重新发起链接。

在上面的协议中,每当客户端重新以一个更高的序列号发起连接时,它就充当服务器刷新旧消息的确认机制。在一个环境良好的网络中,用户可能会保持连接数分钟,从而导致服务器不断积累旧消息。为了缓解这个问题,应用程序会每 30 秒一次调用 /ramen/ack?seq=N,不管连接质量如何。协议的简单性允许用许多不同的语言和平台非常快速地编写客户端。

在设备上下文存储上,RAMEN 服务器在每次建立连接时存储设备上下文,并将此上下文暴露给 Fireball。每个设备上下文的 id 是用户及其设备参数对应的唯一哈希值。这允许隔离推送消息,即使用户在不同的设置下同时使用多个设备或应用程序。

第一代 RAMEN 服务器使用 Node.js 编写,并使用 Uber 内部的一致性哈西 / 分片框架 Ringpop。Ringpop 是一个去中心化的分片系统。所有连接都使用用户的 UUID 进行分片,并使用 Redis 作为持久性数据存储。

在接下来的一年半时间里,消息推送平台在整个公司得到了广泛的应用。高峰期时,RAMEN 系统通过维持高达 60 万个并发数据流连接,每秒向三种不同类型的应用程序推送超过 70000 个 QPS 消息。该系统很快成为服务器 - 客户端 API 基础结构中最重要的部分。

随着通信量和持久连接的快速增加,我们的技术选择也需要扩展。基于 Ringpop 的分布式分片是一个非常简单的架构,不会随着 ring 中的节点数量的增加而动态扩展。Ringpop 库使用一种 gossip 协议来评估成员资格。gossip 协议的收敛时间也随着环的大小增加而增加。

此外,Node.js 是单线程的,并且会有更高级别的事件循环延迟,从而进一步延迟成员信息的收敛。这些问题可能引发拓扑信息不一致,进而导致消息丢失、超时和错误。

2017 年初,我们决定重新启动 RAMEN 协议的服务器实现,以继续扩大应用规模。在这次迭代中,我们使用了以下技术:Netty、Apache Zookeeper、Apache Helix、Redis 和 Apache Cassandra。

1)Netty: Netty 是一个用于构建网络服务器和客户端的高性能库。Netty 的 bytebuf 允许零拷贝缓冲区,这使得系统非常高效。

2)Apache ZooKeeper: Apache ZooKeeper 对网络连接进行一致性哈希,可以直接传输数据,不需要任何存储层。但是与分散的拓扑管理不同,我们选择了 ZooKeeper 的集中共享。ZooKeeper 是一个非常强大的分布式同步和配置管理系统,可以快速检测连接节点的故障。

3)Apache Helix: Helix 是一个健壮的集群管理框架,运行在 ZooKeeper 之上,允许定义自定义拓扑和重新平衡算法。它还很好地从核心业务逻辑中抽象出拓扑逻辑。它使用 ZooKeeper 来监控已连接的工作者,并传播分片状态信息的变化。它还允许我们编写一个自定义的 Leader-Follower 拓扑和自定义的渐进再平衡算法。

4)Redis 和 Apache Cassandra: 当我们为多区域云架构做准备时,有必要对消息进行正确的复制和存储。Cassandra 是一个持久的跨区域复制存储。Redis 被用作 Cassandra 之上的容量缓存,以避免分片系统在部署或故障转移事件中常见的群发问题。

5)Streamgate: 这个服务在 Netty 上实现了 RAMEN 协议,并拥有所有与处理连接、消息和存储相关的逻辑。该服务还实现了一个 Apache Helix 参与者来建立与 ZooKeeper 的连接并维护心跳。

6)StreamgateFE (Streamgate Front End): 该服务充当 Apache Helix 的旁观者,从 ZooKeeper 上侦听拓扑变化。它实现了反向代理。来自客户机 (火球、网关或移动应用程序) 的每个请求都使用拓扑信息进行分片,并路由到正确的 Streamgate 工作程序。

7)Helix Controllers: 顾名思义,这是一个 5 节点的独立服务,单独负责运行 Apache Helix Controller 进程,是拓扑管理的大脑。无论何时任何 Streamgate 节点启动或停止,它都会检测到更改并重新分配分片分区。

在过去的几年中,我们一直在使用这种架构,并且实现了 99.99% 的服务器端可靠性。我们推动基础设施的使用持续增长,支持 iOS、Android 和 Web 平台上的十多种不同类型的应用程序。我们已经使用超过 1.5M 的并发连接来操作这个系统,并且每秒推送超过 250,000 条消息。

服务器端基础设施一直保持稳定运行。随着我们为更多新城市提供各种各样的网络服务和应用程序,我们的重点将是继续提高向移动设备消息推送机制的长尾可靠性。我们一直在试验新协议、开发新方法,以弥合和现实需求的差距。在检查以往的不足时,我们发现以下方面是导致可靠性下降的原因。

1)缺乏认证

RAMEN 协议在减少数据传输进行了优化,仅在每 30 秒或客户端重新连接时才发送确认消息。这将导致延迟确认,在某些情况下无法确认消息达到,因此很难区分是真正的消息丢失还是确认失败。

2)连接不稳定

维持客户端和服务器的正常连接至关重要。跨不同平台的客户端实现方式在处理错误、超时、后退或应用生命周期事件 (打开或关闭)、网络状态更改、主机名和数据中心故障转移等方面有许多细微差别。这导致了不同版本间的性能差异。

3)传输限制

由于该协议在 SSE 协议基础上实现,因此数据传输是单向的。但是,许多新的应用程序要求我们启用双向消息传输机制。没有实时的往返行程时间测量,确定网络状况、传输速度、缓解线路阻塞都是不可能的。SSE 也是一个基于文本的协议,它限制了我们传输二进制有效负载的能力,不需要使用像 base64 这样的文本编码,从而获得更大的有效负载。

2019 年底,我们开始开发下一代 RAMEN 协议以解决上述缺点。经过大量考量,我们选择在 gRPC 的基础上进行构建。gRPC 是一个被广泛采用的 RPC 栈,具有跨多种语言的客户端和服务器的标准化实现,对许多不同的 RPC 方法提供了一流的支持,并具有与 QUIC 传输层协议的互操作性。

新的、基于 gRPC 的 RAMEN 协议扩展了以前基于 SSE 的协议,有几个关键的区别:

l  确认消息立即通过反向流发送,提高了确认的可靠性,而数据传输量几乎没有增加。

l  实时确认机制允许我们测量 RTT,了解实时的网络状况。我们可以区分真正的消息损失和网络损失。

l  在协议之上提供了抽象层,以支持流多路传输等功能。它还允许我们试验应用级网络优先级和流控制算法,从而在数据使用和通信延迟方面带来更高的效率。

l  协议对消息有效负载进行抽象,以支持不同类型的序列化。将来,我们会探索其他序列化方法,但要将 gRPC 保留在传输层。

l  不同语言的客户端实现也让我们能够快速支持不同类型的应用程序和设备。

目前,这项开发工作处于 beta 版阶段,很快就能上线。

消息推送平台是 Uber 出行体验的组成部分之一。今天有数百种功能建立在该平台的基础服务之上。我们总结了消息推送平台在 Uber 出行生态中取得巨大成功的几个关键原因。

1)职能分离

消息触发、创建和传递系统之间明确的职责分离允许我们在业务需求发生变化时将注意力转移到平台的不同部分。通过将交付组件分离到 Apache Helix 中,数据流的拓扑逻辑和核心业务逻辑被很好的区分开,这允许在完全相同的架构上使用不同的有线协议支持 gRPC。

2)行业标准技术

构建在行业标准技术之上使我们的实现更加鲁棒且低成本。上述系统的维护开销非常小。我们能够以一个非常高效的团队规模来传递平台的价值。根据我们的经验,Helix 和 Zookeeper 非常稳定。

我们可以在不同的网络条件下扩展到数百万用户的规模,支持数百个功能和几十个应用程序。该协议的简单性使其易于扩展和快速迭代。

原文:

关于uber地推策略和uber采用了多少种新型推销手段的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。