面向亿级订单数据中心集群方案

前言

应用系统演进过程中,应用层可以通过服务化,微服务,云化做扩展,数据库则往往成为难以扩展的点或者变为系统瓶颈。

数据库实例本身扩展可以采用主备架构,主从架构,主主架构等方案。

但如果更大规模的数据要求下,比如我们最近在设计新的面向亿级单量的新架构升级,就需要采取多机甚至多数据中心方案了。

单中心数据集群

单中心多机器方案可以采用主从式架构,数据读写请求落在主机,从机承担读请求。 主从同步问题往往是这种架构的主要问题,这也就引起了主从一致问题,线上case也有几次是因为主从同步延迟造成的。 所以我们需要在应用架构角度去考虑主从延迟造成数据不一致的问题。 主从系统的主成为了系统可用性的问题点,需要考虑主服务器健康状态监控,及如果主机出现问题,如何快速切换,且处理时间窗口内数据问题。

当然主从方式,受限于单机实例的承载能力,适用于小数据,规模小的应用场景。

针对于主机写压力的瓶颈,可以采用分散数据方式,将写数据落到多台实例上,共同承担压力,可以承载一定规模的业务场景。 当然这种问题的难点在于数据的负载均衡,数据之间的数据备份处理,同样在多实例节点上下线过程中的负载均衡和事实扩展。

多中心数据集群

当架构发展到更大规模,服务更多用户时,通常会将数据中心部署在多个地区。这也可以避免光缆被挖断的黑天鹅事件。 但是多机房同样存在数据可用性及数据一致性问题。

所以我们需要将多中心数据进行友好的切分,来将数据部署在不同的数据中心中,这样每个分区存储一部分数据,可以保证一定的数据和服务可用性。

数据中心根据地理位置划分可以解决一定的数据中心间网络同步造成的延迟。

由于一个数据中心只存储一部分数据,所以数据备份又是需要考虑的问题。这样可以避免一个地区故障造成数据问题而可能影响全局。

数据备份可以采用一下三种方式:

  • 集中式备份
  • 独立式备份
  • 互备式备份

集中式备份 是将数据同步到独立的数据中心备份以保证数据安全。这种结构简单,但是投入成本高,存在极大的资源浪费与闲置问题,同样集中的数据中心也会有单点问题。

独立式备份 是给每个数据中心建立一个对应的备份节点,来起到容灾作用。这样投入成本同样巨大,但是更简单易实现,扩展性更好。

互备式备份 上面两种数据中心数据备份都存在各自的不足,于是可以结合以上两种方案的优点及特性设计互备式备份。 这种方案成本不会特别大,不需要建立额外的数据备份中心,各个节点之间进行数据互备,比如A节点备份B节点数据,B节点备份A节点数据,如果三个以上的分区,可以做到循环备份。 当然在实现角度来说,这种方式是最复杂的,扩展性也是最差的,但是在资源使用率上是最高的。

三种备份方式各有特点,具体采用哪种方式需要结合自己的业务特点和数据量特点设计。

原文发布于微信公众号 - 服务端技术杂谈(develop_king)

原文发表时间:2018-09-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

企业监控调研指引:17个精心准备的开源运维监控系统

监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多...

1.1K60
来自专栏服务端技术杂谈

重构系统的套路-提高并发能力

比如我们在某段业务逻辑中加了一个同步写kafka的操作,tp99瞬间多了30毫秒,这样在整个监控曲线看起来非常扎眼,于是我们需要将这个同步改成异步。

10120
来自专栏Golang语言社区

一起了解什么是高并发

我们在找工作时,经常在招聘信息上看到有这么一条:有构建大型互联网服务及高并发等经验,想到高并发,我们第一想到了媒体上经常出现的新闻阿里双11每秒处理xx万订单,...

47840
来自专栏软件测试经验与教训

性能测试常见面试题

77160
来自专栏帅小子的日常

Dubbo介绍和服务架构分析

45280
来自专栏App渠道推广

简单实用:十分钟解决多渠道打包难题

多渠道打包一般是由人工进行的,意义在于:App上架应用市场后用来统计不同渠道的下载量、来源等信息。

26210
来自专栏架构师之路

朋友圈微博feed流,推拉实践

上一篇《feed流拉取,读扩散,究竟是啥?》关于feed流的拉取还是推送,只写了一半“拉取”,今天把另一半“推送”(写扩散)的坑填完。

35430
来自专栏IT大咖说

你之所以生活在光明之中,是因为有人阻挡了黑暗

摘要 当前网络已经深入我们工作和生活的方方面面,随之而来的是安全防护形势不容乐观。据我们公司内部做安全的同学统计,目前国内黑客的数量就超过了10万,每年的攻击次...

29270
来自专栏互联网杂技

产品容错性设计原则

随着互联网的飞速发展,越来越多产品尤其是2C类产品更加注重用户体验,其中错误对用户体验的影响是灾难性的,在此我总结出一些容错性设计原则供大家参考和探讨。 ? 一...

51090
来自专栏古时的风筝

如何接手一个新项目

2、为技术服务的项目,比如开源中间件项目(dubbo、spring cloud、各种数据库中间件、各种缓存方案等);

15900

扫码关注云+社区

领取腾讯云代金券