什么是逻辑机房

随着互联网发展,服务器后端架构在分布式这条道路越走越远,途中诞生了逻辑机房的概念。逻辑机房本质上是将物理机房进行逻辑拆分,将一个或多个较大的物理机房假象为更多个较小的机房。其可以解决分布式场景下高可用、高性能等问题。

分布式面临的问题

我们通过分布式面临的各种问题,逐步引导出逻辑机房在解决这类问题时做出的贡献。

数据库负载过大(Rzone)

数据库负载过大是企业在前中期就会遇到的问题,分为数据量过大和连接数过多两种情况,一般采用垂直拆分、水平拆分分散数据和连接。

我们都知道数据库拆分后,数据自然就拆分开来,但是数据库连接又如何拆分呢?其实我们耳熟能详的微服务就拥有拆分连接的能力,对于垂直拆分的数据库,我们一般采用拆分上层应用的方式来减少单库连接;而对于水平拆分的数据库,我们需要使用逻辑机房,如下图:

上图使用到逻辑机房拆分 zone 的部署方式,每个单独 zone 内的集群只连一个库,以前需要多库查询的事务改为跨 zone 应用间事务。zone的拆分规则和数据库水平拆分相同,zone 之间也可以添加相互路由的功能。

数据不利于查询(Gzone)

如果我们根据 zone 进行数据和应用拆分,虽然解决了数据集中和访问压力的问题,但是跨 zone 数据查询却变得更加困难,此时我们将使用另一种逻辑机房(Gzone)来解决问题。

Gzone 是没有对数据进行 zone 拆分的逻辑机房,Gzone 中所有应用实例可以访问每一个库,其用来存储需要被广泛使用的全局数据,如:应用配置、降级策略、限流策略、商家基础信息、商家信用等等。

一般的 Gzone 集群可以承接所有的读写请求,如果是基于 Rzone 高水平拆分后的应用,也可以用 Gzone 来存储需要提供外部使用的公共数据,此时 Gzone 只处理读请求。如下图:

大家应该会发现,如果采用上图的架构方案,那么Gzone将会冗余一份全量数据。在实际使用场景中,我们对上图进行了部分改造:

  1. 对于符合Rzone拆分的业务,只从Rzone中读写数据,所有读写请求通过路由层进行分发。
  2. 对于不能拆分的业务,抽离出来后单独部署于 Gzone 中。

经过改造后,Gzone 中将不会存在 Rzone 的数据,减少了数据冗余以及数据同步造成的网络开销。

跨机房跨城市延迟(Czone)

通过 Rzone 和 Gzone 解决了负载问题后,服务间调用延时开始成为性能瓶颈。为了减小跨机房延时的影响,我们用了诸多手段,其一:服务间调用优先 zone 内调用,减少跨zone的请求;其二 :跨 zone 调用优先请求同一物理机房;其三:Rzone 调用 Gzone 情况下,无法避免跨机房访问,则在每个物理机房添加一个 Czone 用来同步 Gzone的数据,提供给同一机房内其他 zone 调用。

总体架构如下图:

上图流程中机房4中的 Gzone 也可以去除,直接通过 Rzone 同步给各 CZone。

微服务基础组件如何灰度

当我们微服务达到一定规模后,基础组件也会多样化,组件的可用性可能影响生态内所有应用的可用性,那么我们如何保证组件的可用性呢?

业内通常使用的方式为组件冗余,即同时在多个机房部署多套基础组件,这样即使某台组件宕机也不会影响整个集群的使用。该方案确实解决了组件的单机问题,但是面临内部逻辑问题导致服务异常时将无能为力(例如访问正常,但是响应内容错误)。

那么如何是好?既然我们将物理机房分为若干个 zone,那为何不以 zone 为单位隔离这些组件呢?我们可以在每个 zone 中独立部署几乎全套的组件,如果组件因为宕机或迭代造成不可正常使用时,只会影响本 zone 内部的可用性。由于应用是多 zone 部署的,部分 zone 不可用最多只会影响少部分用户使用。另一个好处在于我们可以方便的建立单独的 zone 来进行灰度发布和验证,确保每次发布的影响是可控的。

总结:

通过学习逻辑机房的运用,我们可以根据其思想灵活的解决分布式场景下各个业务场景面临的架构问题。分布式需要解决的问题还有很多,希望大家阅读本文后能够举一反三,结合自身实际业务做出合理的选择:)。

逻辑机房(LDC)是什么相关推荐

  1. 支付宝的架构到底有多牛逼!还没看完我就跪了!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:uee.me/cFgQC 自 2008 年双 11 以来,在 ...

  2. 支付宝应用的架构到底有多牛?

    源 /  网络    文 /  汤波 自 2008 年双 11 以来,在每年双 11 超大规模流量的冲击上,蚂蚁金服都会不断突破现有技术的极限.2010 年双 11 的支付峰值为 2 万笔/分钟,到 ...

  3. 阿里大佬告诉你,支付宝的架构到底有多牛逼!还没看完我就跪了!

    自 2008 年双 11 以来,在每年双 11 超大规模流量的冲击上,蚂蚁金服都会不断突破现有技术的极限. 2010 年双 11 的支付峰值为 2 万笔/分钟,到 2017 年双 11 时这个数字变为 ...

  4. 蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践

    http://www.infoq.com/cn/articles/technical-architecture-of-alipay-and-ant-check-later 每年"双11&qu ...

  5. 第一百一十九期:支付宝历年双十一背后的技术揭秘

    和过去10年一样,2019年天猫双11又创造了一个全新的纪录.这个数字背后,是数代支付宝工程师们殚精竭虑.不断突破技术难关. 作者:蚂蚁金服科技 自从有了双十一这个电商节日,很多技术人的生命轨迹都改变 ...

  6. 支付宝的架构到底有多牛逼?还没看完我就跪了!

    自 2008 年双 11 以来,在每年双 11 超大规模流量的冲击上,蚂蚁金服都会不断突破现有技术的极限.2010 年双 11 的支付峰值为 2 万笔/分钟,到 2017 年双 11 时这个数字变为了 ...

  7. 超燃!支付宝技术双11纪录片《一心一役》全球独家首发

    ​和过去10年一样,2019年天猫双11又创造了一个全新的纪录. 这个数字背后,是数代支付宝工程师们殚精竭虑.不断突破技术难关. 今年双11之前,小编邀请到11位经历双11的技术同学口述实录,特别筹备 ...

  8. 干货:通过双十一等项目实战看架构技术

    每年"双 11"都是一场电商盛会,消费者狂欢日.今年双 11 的意义尤为重大,它已经发展成为全世界电商和消费者都参与进来的盛宴.而对技术人员来说,双十一无疑已经成为一场大考,考量的 ...

  9. 支付宝架构有多牛?还没看完我就跪了...

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 每天 14:00 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java ...

  10. 深度解析:一文让你领略支付宝应用架构的厉害之处!

    导读:本文详解支付宝架构的原理,希望对大家有帮助. 自 2008 年双 11 以来,在每年双 11 超大规模流量的冲击上,蚂蚁金服都会不断突破现有技术的极限.2010 年双 11 的支付峰值为 2 万 ...

最新文章

  1. 大三Java后端暑期实习面经总结——JVM篇
  2. 一篇论文摘要计算机英语,推荐:计算机毕业论文英文摘要的写作方法
  3. My first App EncryptWheel is in WAITING FOR REVIEW status
  4. 题解报告:hdu 5695 Gym Class(拓扑排序)
  5. sqlserver垮库查询_SQLServer跨库查询--分布式查询
  6. 深入解析oracle电子版,深入解析Oracle数据库
  7. 指针变量使用规则实例
  8. Atitit  信息管理 艾提拉著作 CAPT1信息源数据源 目录 1. 数据元的数据格式 图片 文本 视频 音频 2 2. 按照应用功能使用分类 2 2.1. Diary Cyarlog 2
  9. 免费甘特图模板直接套用,分分钟完成!
  10. matlab编写算法,Matlab 入门宝典 编程算法大全
  11. 进击系列2.0:进击的骑士-----用funcode与C语言实现射击游戏制作
  12. 电子海图的航线多尺度生成方法
  13. DNSPod十问党霏霏:充电桩是披着高科技外皮的传统基建?
  14. codeforce 460B Little Dima and Equation
  15. 2021-06-10 MYSQL存储过程与触发器作业
  16. [转] 校园职场』 [公告]兰州城市学院学生因自习室“抢座位”引发血案,造成7人伤亡(转载)
  17. 使用jcrop实现裁切图片
  18. LSB隐写(最低有效位隐写)
  19. 物流货运平台大数据风控解决方案
  20. 【web自动化测试】

热门文章

  1. Freeze the Discriminator a Simple Baseline for Fine-Tuning GANs
  2. 金蝶服务器组件无法正常工作,K3组件kdsvrmgr无法正常工作
  3. idea中module项目没有蓝色小方块问题
  4. excel 的lookup和sumifs函数使用
  5. vue实现预览pdf组件(vue-pdf插件使用)
  6. iOS对sqlite3进行封装
  7. A Piece of ODE
  8. 【MYSQL】学习笔记
  9. 解构ODL:从代码到架构设计
  10. 读博后降维打击数学建模!