滴滴出行打车流程图,滴滴出行首次使用方法

首页 > 科技 > 作者:YD1662022-11-19 19:44:14

滴滴出行打车流程图,滴滴出行首次使用方法(1)

作者介绍

许令波,花名君山,现任滴滴出行技术研究员,从事容器化和资源调度方面的技术建设。曾在淘宝工作七余载,经历了淘宝网 PV 从 1 到 50 亿的增长历程。其中涉及端与管道、应用层代码级、应用架构和端到端等全链路的优化,架构方面从单个应用到分布式、无线多端、中台以及国际化的演进。这些积累的经验同时也在滴滴得到应用实践。

高可用架构建设的挑战:流量与业务复杂性

何为高可用?原则有三:故障监测排除、消除达点故障互备和容灾。大流量网站的架构建设最重要的挑战来自“流量”与“业务复杂性”两方面:

在网站建设过程中,一方面架构上要做到分布式化,业务功能域要做到服务化,这样可以保证架构的高可用、高伸缩性。另一方面业务架构与组织架构要相匹配,网站流量逐渐增大的同时组织架构与业务架构要随之变化,相互匹配。

反之,如在业务发展过程中,做系统变更会带来一系列问题。如开发和发布效率会因写码风格和发布频率(假设所有业务写到同一系统)受到影响;问题排查找不到对应的负责人等。

实践:故障检测与排除、分布式服务化改造和大流量系统高可用迭代

2011 年,淘宝 PV 处于从 1 亿到 10 亿的 PV 阶段,系统性能成为最大挑战。针对大流量系统设计高可用的静态化方案,应用在详情、购物车以及秒*系统中;参与双11大促时,交易全链路进行优化,这些经验在滴滴也得到了应用实践。主要为以下三方面:

故障检测与排除——全平台测压

压测是全业务,全流程的压测。在正常情况下制造线上系统的线上流量,也就是自己来攻击自己系统,流量可自控。

滴滴出行打车流程图,滴滴出行首次使用方法(2)

产生流量的线上发压平台

如上图,是产生流量的线上发压平台。和淘宝浏览某个商品行为相比,滴滴流量发起较复杂,涉及时间、地理位置等多维度。

平台有前台 Web 系统、后台服务系统和数据存储三层。在测压过程中,遇到一些问题。如:

由于滴滴的数据和一般数据存在差异,全平台压测数据构造要做特殊处理。发单时产生的当前位置、目的地等数据都会回传系统。这里会出现坐标问题,如用真实坐标会干扰线上某些因素。

故把坐标偏移到太平洋,模拟端,把精度、纬度等也做偏移。虚拟乘客和司机,做 ID 偏移、手机号替换。

如下都是在做全平台测压时,发现的问题:

业务线

基础平台

压测工具导致的其他问题

分布式改造

滴滴出行打车流程图,滴滴出行首次使用方法(3)

典型的分布式架构

上图是典型的分布式架构。最重要的接入层和服务层要做到服务的无状态化,每个节点都需对等,因为这两层主要做读请求且请求量较大。做无状态化是便于横向扩展,当业务量大时,就可迅速部署机器来支撑流量。

数据层大部分情况下都是有状态的,需解决的是冗余和备份,MySQL 要做存库,能读写分离,能做故障切换。

分布式改造关键的技术点有三:

去年,滴滴做了服务治理相关的事。如下图,是早期的滴滴系统架构,router 接受层,到 inrouter 上层,中间有引入代码。下面是 Redis,本身是个代理。

滴滴出行打车流程图,滴滴出行首次使用方法(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.