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

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

早期的滴滴系统架构

这里存在的问题:

分布式 RPC 框架图

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

目标是把一些服务之间的调用能够通过规范化方式串联起来。上下游通过名字服务,从上游和下游端口解耦,名字服务需要在全公司统一且名字唯一。

这里需要提醒的是,目前滴滴技术栈还不统一,所以导致中间件会复杂一些,应该最早期把技术栈统一,选择 Java 或者 Go 等,可以避免后续的问题。

服务命名要规范,服务名自描述,要构建统一服务树。为了效率和规范性,协议建议选择私有 RPC 协议。公有如 http 协议,测试方便,带来方便性的同时也带来的其他问题,就是容易被滥用。

服务路由建议是全局摘除,像机器一旦不可用就通知上游,及时摘掉,但也有一定的风险。如网络闪断,下面机器全挂,会导致所有服务都不可用。所以需在全员镇守情况下做全局确认,不要拖着整个服务,要从上游做决策,再换个IP,重新做一次。

分布式服务化改造的大团队协作,从单业务系统做分布式改造的一个出发点就是解决大团队分工和协作问题。代码的分支拆分,减少代码冲突,使得系统独立,打包和发布效率都会提高;部署独立,线上故障排查和责任认定会更加明确。

同时,带来的问题是依赖的不确定性增加,性能上的一些损耗。像一次请求,如果一下调来七八个请求,这也会带来一些问题,所以这个过程要有一定的合理性,就是公司现在处于什么阶段,现在需不需要拆分。所以系统、效率等方面要做一个平衡。

大流量系统的高可用迭代

大流量系统的架构实现高可用的策略部署,带有分组功能的一致性 Hash 的 Cache静态内容前置到 CDN热点侦测等。

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

系统 APS 和服务层有五层代码

如上图,一个系统 APS 和服务层有五层代码,通过水平扩展加机器也解决不了问题。在业务层,没办法做水平扩展,必须做有状态的变化,部署带有分组功能的一致性 Hash 的 Cache。

为了具备更大的伸缩性需要把静态内容前置到CDN。

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

静态内容前置到 CDN

在服务端即使做扩展,量还是有限,读的请求,读的数据往前推,最终推到 CDN 上。CDN 体系比较多且有地域性,可抗百万级别的流量,但要解决冗余带来的时效性、一致性的问题。这样做带来的好处,除提高伸缩性,还节省带宽,节点分散,可用性更高。这里提醒下,CDN 可用性需要做评估,如不是自建,需要让提供 CDN 的供应商给出可用性指标,避免后续维系困难。

热点侦测

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

上一页123下一页

栏目热文

文档排行

本站推荐

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