正文
后端系统
相对更注意吞吐能力和数据一致性等方面的要求,可用性要求和响应速度相对低,往往采用较简单的主从备架构或者应用多活架构,没有分中心的设计,这样系统建设成本和维护成本都相对低,即使出现机房故障,也允许花较长时间来切换机房。
多中心交易系统建设过程遇到不少挑战:
-
数据一致性问题
,这是比较大的挑战,多中心交易方案从本质上是一个分布式系统,天然地存在数据分区,也就有数据分区问题,在解决这类问题时,采用了场景化数据分类处理的策略。在正常场景下,交易数据只能从分中心产生,同步到主中心;而交易所需要的主数据则从主中心同步到分中心,在分中心故障场景下交易数据才可以在主中心产生。
-
数据同步问题
,MySQL数据库提供的同步机制无法满足及时性问题和异构数据之间的同步问题,我们专门为此开发了一套数据同步中间件系统,它采用总线结构,解决了多数据源间的数据异构同步难题;通过并发处理提升了吞吐能力,节省了同步时间;本身通过HA机制实现了高可用。
InfoQ:您谈到越来越多的互联网企业在建设自己的数据中心,为什么会有这样的趋势?如何评估从租赁到自建的转折点?
林世洪
:首先,自建数据中心需要充足的资金,投入的内容包括土地、基建、风火水电等基础设施、电信资源、IT基础设施、整个运营环境等等,并且需要专业的运营管理能力。如此巨大的投入,为什么还要自建呢?
自建数据中心通常是为了解决市场已有数据中心无法满足需求的矛盾,通常表现在数据中心的规模容量、功能设计、服务保障等等,当商业数据中心在某些方面无法满足企业的刚需时,企业会选择自建。
关于由租转建的转折点,可以是投入产出比,也可以是核心生产力长期回报,也可以是某种特殊的契机、情景,这要
看企业当前发展阶段的诉求和矛盾是什么
。但相信,如果自建数据中心带来的综合收益明显大于租用、解决了企业的切实需求,企业就可能要考虑自建,甚至在出现这种趋势时就会考虑自建,毕竟自建周期比较长,而且需要积累经验。
另外自建数据中心是企业综合实力的体现,对整个技术体系和格局会带来积极的推动作用,形成良性局面后对企业的技术核心竞争力长期发展、成本优化、人才培养都会带来积极的作用,例如:Google、Facebook等已经从中获得了显著的成效。通过足够的规模效应、技术和管理优化,压缩成本。通过选择更低成本的地区、甚至国家,以获得相对更低的成本。
InfoQ:架构设计要与企业的业务规模和发展趋势相匹配,架构设计往往需要考虑前瞻性,您认为在业务快速扩张阶段如何避免在架构设计上滞后或超前于发展趋势?
林世洪
:凡事预则立,不预则废,需要给架构设计者一个设计原则,必须遵守,
即did原则:design 20倍体量,implement 3倍的体量,deploy 1.5倍的体量
。这里的体量结合非功能要求来说,可以是吞吐量、存储容量等。
要贯彻这个原则,需要对业务量的发展有预判,对系统处理能力有评估,对设计方案有评审,对资源申请有审核,对线上资源利用率有监督,这些流程对应的手段很多,这里不多赘述。
除了体量之外,还是一个
先进性跟踪
的问题,架构设计上如果过于超前,对于技术开发人员要求较高,往往需要专业的团队,这样成本会有相应的增加。如果技术开发人员的水平跟不上的话,就会影响业务的变化。
随着业务的发展、业务的迅速迭代,系统会变得越来越复杂,系统架构越来越重,往往事与愿违。但无论如何,一个企业应该及早地实施服务化,因为它能将一个较大的问题分解为多个较小的问题,非常适合快速成长的企业快速多变的需求特征;同时应该注意通过流程控制系统将流程控制逻辑集中处理,避免流程控制分散带来的数据不一致问题。