快手、孩子王、华为等专家分享大模型在电商运营、母婴消费、翻译等行业场景的实际应用 了解详情
写点什么

达达 CTO 谈众包物流系统的复杂性

  • 2015-10-25
  • 本文字数:2666 字

    阅读完需:约 9 分钟

达达是一个聚焦最后三公里物流的众包平台,连接兼职配送员和有配送需求的商户,目前已拥有 50 万兼职配送员,服务超过 15 万家商户,日订单量达 90 万单的庞大体量。

InfoQ 记者采访了达达 CTO 杨骏,一位来自硅谷的 growth hacker、Facebook 早期的华人工程师,与他探讨了众包物流平台。本文根据采访整理而成。

InfoQ:相对于其他业务,物流业务有哪些独特的地方?

杨骏:物流是一个很大的行业。这个行业中有很多细分,比如干线物流,同城物流,也有像我们专注的最后三公里物流。三公里并不是一个非常严格的数字,它指的是城市毛细血管的物流。从另外一个角度来看,伴随电商而兴起的传统物流往往是计划性的。即使淘宝、天猫、京东这样的电商平台上的配送速度越来越快,其订单还是计划性的。相比之下,达达配送的订单都是即时性的,是实时产生的外卖、水果、生鲜等商品的配送,而且往往要求在 1 个小时内完成。

因此,我们专注的物流业务具有很强的区域性和即时性。这样的物流需求随着各类 O2O 电商而爆炸性增长,但又无法被传统物流满足。我们用了众包的模式很好地解决了这个问题,在很短的时间内实现了业务的飞速发展。

InfoQ:这些独特的地方肯定有一些技术进行支撑的,业务的快速发展给技术带来一些什么样的挑战呢?

杨骏:首先我们是完全搭建在移动互联网上的。我们的模式跟滴滴很类似,商家通过 App 发出配送需求,配送员通过 APP 可以看到附近商家的需求,通过抢单的模式来匹配这个需求并完成配送。这一切都通过移动互联网来完成。

我们面临的挑战会有以下两方面:一方面是面对快速增长的业务,如何确保系统的稳定性和可用性。面对海量业务的增长,我们在后台架构上做了很多的升级改进,以和时间赛跑的速度去 Hold 住单量的飞速增长,这块是很大的挑战。另外一方面是效率的挑战,简单来说就是如何让配送员每小时完成更多的配送订单。我们的技术团队做了大量的合并订单(把取货地和目的地接近的单子合并在一起,由一个配送员来完成),订单的推荐和指派,路径规划等方面的工作,使配送的效率随着规模得以提高。

对于这两方面的挑战,首先保证的是稳定性,因为效率是节省和浪费的问题,但是稳定性是关系到是否可用的问题。当规模迅速发展的时候,我们首先用稳定性扛住规模,而规模又提供了效率上的优化空间,使我们建立起规模和效率的双重壁垒。

InfoQ:达达在构建技术架构方面有哪些探索?

杨骏:面对上述所说的挑战。首先是研发团队的构建,在面对挑战的时候,找到合适的人比选择某项技术更显得重要。

其次我们做了很多数据库架构方面的优化,包括数据库的主从分离,读写分离,垂直分库,以及正在进行中的水平分库 (sharding) 等。简单的说,就是当一台数据库无法支持巨大的访问量时,我们把数据库中不同的表,甚至是同一表中的不同数据,拆分到不同的逻辑数据库中,实现了数据的分布式读写。这也为后续的业务发展提供了可扩展性。

我们也对上层的调用代码做了很多修改,并且做了服务的隔离,以保证核心业务和不核心的业务完全隔离开,这样不核心业务出现的问题不会影响到核心业务。

还有就是缓存的服务。面对这么高的访问量,我们基于 Redis 搭建了缓存系统,把大部分原先通过数据库的访问都用缓存来解决,以减轻数据库的压力。

我们现在已着手建设灾备机房,以保证有任何不可抗拒因素出现时我们的服务还能够可用。

InfoQ:从达达的角度来说,移动技术带来的最大不同是什么?

杨骏:移动技术使达达的商业模式成为可能。正因为有了移动互联网,我们才能用众包的模式去解决最后三公里配送,来匹配数以十万计的配送员和他们身边不断涌现的即时性的配送需求。这一点和滴滴和 Uber 都是相似的。

InfoQ:从达达官网提供的信息我们可以知道,达达的业务已经分布在非常广的区域。请问达达是怎么做服务的本地化的?

杨骏:从两个方面看这件事情。首先,我们的模式具有非常强的复制性的。互联网公司飞速发展的一个关键能力是低成本的扩张,就是说你能用非常低的代价非常快地复制自己。达达的商业模式和产品都能被迅速复制到一个新的城市,也就是说我们的可复制性很好。

其次每个城市在经济、互联网普及程度都不一样。我们在后台有一套很好的运营系统,可以对包括定价、配送时效等各种运营参数按城市级别进行配置,符合对每个城市的特点。具体实施时我们会和每个城市的的团队沟通,明确所在城市特殊的地方,同时快速在系统中做出修改和配置。我们把整个运营中所有的参数都做成了工具,很容易的由一个非工程师做配置,而不需要一个工程师做配置。

InfoQ:我们知道服务的可用性对于达达的业务来说是非常重要的,在技术方面达达是如何保证服务的“全天候”可用?

杨骏:首先是我们在数据库架构上做了非常多的优化,上面已经提及了。除此之外我们还做了服务的可降级化,也就是说在服务压力非常大的时候,我们能够牺牲掉一些不是核心的服务,保证核心业务的可用性。另外,我们还大量使用缓存,尽可能的让重复读写操作在缓存中被消耗掉,而不影响数据库。

除了上述两方面,我们还会通过一定的激励政策使团队中的每一个成员都去关注后台的稳定性。

InfoQ:刚才你说你们的主要业务都是基于云的,那开放平台会带来哪些不同?

杨骏:为了满足不同规模的商户,我们很早就创建了开放式平台 (OpenAPI)。通过这个平台,各类 O2O 电商可以很方便的实现和达达的系统对接,通过系统发出配送的需求,并完成订单跟踪、反馈、结帐等一系列动作。OpenAPI 让我们把线下的配送服务变成了线上的一系列标准化的 API。对于一些比较大的 O2O 电商,我们还会做很多定制服务,比如通过出仓扫码可以把出仓的动作直接反馈到我们平台上去,使双方的效率都得到了很大的提高。

InfoQ:您对 12 月份开幕的 ArchSummit 北京 2015 有什么寄语?

杨骏:一直在关注这个大会,大会为技术人员提供了一个很好的学习交流的平台。如果时间允许的话,我希望有时间去大会向国内的很多同行学习,也做一个交流。我之前一直在美国工作,我觉得在美国这十多年看到的情况是中国和美国的差距在迅速被缩小,甚至在某些领域已经出现了反超的情况。在商业模式上,其实中国有非常多创新的地方,同时在技术上我觉得两边的距离已经很接近,或者说几乎不可分辨了。我以前在美国也待过不少创业公司,他们的技术架构,和我今天在达达以及我所知道的中国其他这些公司的架构上没有什么区别,大家用的都是非常先进的技术,每次有新技术出现时都会很快的去采用。甚至中国在某些领域上,对于新技术的采用其实走在了美国一些公司的前面,因为中国新的公司非常多。其实我是很希望去那儿跟同行有一个很好的交流,也学习一下国内的很多经验。

2015-10-25 19:004401

评论

发布
暂无评论
发现更多内容

Hazelcast在openLooKeng中的应用(Cache篇)

openLooKeng

大数据 cache 计算引擎 openLooKeng

2020 更新 - 腾讯 Android 面试 (已拿到月薪22K offer)

android 程序员 移动开发

基于Hive Connector的openLooKeng Connector 创建复用机制剖析

openLooKeng

大数据 hive 多数据源配置 计算引擎 openLooKeng

性能优化反思:不要在for循环中操作DB

CRMEB

硬核干货!TDSQL全局一致性读技术详解|

腾讯云数据库

tdsql 国产数据库

恒源云(GPUSHARE)_U1S1,1年1度GPU云种草大会

恒源云

深度学习

飞鹤乳业数智化转型之路

大咖说

云计算 数字化转型 数字化 企业上云

2020 国内互联网公司的Android工程师薪酬排名!看看你是什么水平

android 程序员 移动开发

2020Android 开发年度总结:“这一年里我到底做了些啥,面试阿里的时候一定会问到的

android 程序员 移动开发

云上远程运维的最后那点担心,“云梯”帮你解决

华为云开发者联盟

运维 华为云Stack 远程运维 安全可信 云梯

超简单教程!自动部署openLooKeng

openLooKeng

大数据 计算引擎 openLooKeng 安装部署

实用推荐系统:寻找有用的用户行为

博文视点Broadview

TDSQL将发布免费版本,助力国产数据库生态完善

腾讯云数据库

数据库 tdsql

新版本发布!openLooKeng v1.4.0上线

openLooKeng

大数据 计算引擎 openLooKeng

双11在即,分享一些稳定性保障技术干货

老张

系统稳定性 大促 生产环境全链路压测

2020Android面经,历时一个半月,斩获3个大厂offer,移动端开发工程师面试题

android 程序员 移动开发

使用JPA + Eclipselink操作PostgreSQL数据库

汪子熙

eclipse 数据库 11月日更

TDSQL | 深度解读HTAP系统的问题与主义之争

腾讯云数据库

tdsql 国产数据库

助力邯钢工业4.0!TDengine在深度(平潭)节水减排项目中的应用

TDengine

数据库 tdengine 后端

TDSQL已助力20余家金融机构完成核心替换

腾讯云数据库

tdsql 国产数据库

2020-Android-面试重难点(万字篇),android屏幕适配的五种方式

android 程序员 移动开发

2020 年需要关注的 5 大 Android 开发技术(1),Android知识总结

android 程序员 移动开发

模块三作业

doublechun

「架构实战营」

2020Android-目前最稳定和高效的UI适配方案!你头秃都没想到还能这样吧!

android 程序员 移动开发

2020Android开发者学习路线(快速篇),分析android进程管理机制

android 程序员 移动开发

推荐!DevOps工具正越来越自动化

SoFlu软件机器人

浅析openLooKeng安全认证机制

openLooKeng

大数据 ldap openLooKeng 安全认证

【Java原理剖析系列】深度synchronized工作原理分析

洛神灬殇

java 11月日更

用一套代码实现APP和小程序

Speedoooo

容器 移动开发 ios开发 APP开发 Andriod开发

JPA + EclipseLink + 云平台 = 运行在云端的数据库应用

汪子熙

数据库 Cloud Cloud Native 11月日更

教你如何在Spark Scala/Java应用中调用Python脚本

华为云开发者联盟

Java Python spark JVM Spark Scala

达达CTO谈众包物流系统的复杂性_移动_龙永昕_InfoQ精选文章