平台突然涌入几亿外国人,架构要怎么改造?

开发 架构
简单总结,单元化架构是一种能够快速扩容的多机房多活方案。但前提是,业务必须满足地域性聚集效应。

我去面试一个架构师岗位。

面试官:我们平台突然涌入几亿外国人,架构要怎么改造?

我:你们平台现在是什么架构?

面试官:单机房架构。

我:单机房架构,它最大的特点就是“全连接”分层架构。

首先,系统架构是分层的:

  • 站点层;
  • 服务层;
  • 数据库与缓存层。

其次,层与层之间的连接池是全连接的。

如上图所示:

  • 站点层集群全连接服务层集群;
  • 服务层集群全连接数据库集群;
  • 如果有缓存,它们还全连接缓存集群;

面试官:“全连接”分层架构能直接扩展到多机房多活吗,我们老板有计划在北美搞一个机房?

我:不行。

如果直接将单机房“全连接”分层架构复制到多机房多活,就会有非常多的跨机房的连接:

  • 站点层连接服务层,一半的请求跨机房;
  • 服务层连数据库,一半的请求跨机房;
  • 站点和服务连缓存,一半的请求跨机房;

面试官:一半的请求跨机房连接,有问题吗?

我:当然有问题。

同机房连接,内网的性能损耗几乎可以忽略不计。一旦涉及到跨机房的访问,即使机房和机房之间有专线,访问的时延可能增加到秒级,如果机房在北美,跨机房请求可能要几十秒。

如果一个业务请求要访问10个服务,一半请求跨机房,光花在网络上的请求都达到几十秒,用户体验不能接受。

面试官:那怎么办呢?

我:如果业务具备地域特性的聚集效应,可以使用单元化架构。

面试官:什么叫业务具备地域特性的聚集效应?什么叫做单元化架构?

我:举个例子吧,DD打车。

  • 下单用户在一个城市;
  • 接单司机在一个城市;
  • 交易订单在一个城市;

只需要按照地域,部署多个机房,机房内部站点层,服务层,缓存层,数据层都只连接同一个机房。数据层跨机房同步,即使有1分钟的延时,对业务也不会影响。这类业务,就具备地域特性。

这种只访问自己机房的多机房多活架构,就叫做单元化架构。具体到你们的场景:

  • 在东大机房部署一套,东大用户访问这一套。
  • 在北美机房部署一套,北美用户访问那一套。

就能够快速解决。

面试官:不行呀,TT就是玩这种架构,崩盘了。泼天的富贵这不才过来的吗?

我:我建议,你们又不是交易类型的业务,只需要:

  • 发布文章,评论文章;
  • 发布视频,评论视频;

UP主和粉丝,即使有个十几秒数据延时,不影响。只要不直播,用户无感知。

因此直接在东大扩容机房,就能够搞定。

我:简单总结,单元化架构是一种能够快速扩容的多机房多活方案。但前提是,业务必须满足地域性聚集效应。

知其然,知其所以然。

思路比结论更重要。

责任编辑:赵宁宁 来源: 架构师之路
相关推荐

2015-03-27 11:39:59

2015-09-22 09:17:47

苹果大数据

2015-03-20 10:25:03

苹果中国

2015-01-07 10:10:37

2015科技

2009-02-23 09:12:55

裁员微软签证

2013-07-31 09:51:40

创业中国创业创业难度

2023-08-07 09:08:25

软件微信钉钉

2019-02-22 12:25:17

人工智能翻译语言

2020-10-09 14:46:57

阿里巴巴互联网存储

2017-07-18 08:07:06

互联网+警务

2017-09-13 10:22:52

2023-10-04 20:29:15

2020-04-10 10:00:18

5G病毒网络

2009-02-16 09:06:03

技术移民美国科技企业

2022-02-07 21:30:56

机器人VR北京冬奥会

2014-06-30 09:27:09

美国国安局监听NSA

2023-03-29 18:28:51

2020-06-12 11:05:38

微信微信 ID修改微信号

2019-01-09 08:52:46

谷歌安卓中兴

2015-09-01 09:44:40

点赞
收藏

51CTO技术栈公众号