读书笔记: 尽在双11:阿里巴巴技术演进与超越

https://book.douban.com/people/fleure/annotation/26998040/

五彩石

中间件的意义就像阿里技术采用了相同的铁轨宽度、电器采用了相同的电压、沟通采用了同一种语言一样,持续地降低了学习、研发和运维的成本。

五彩石项目是分三期来实施的,三期项目都带有明显的业务目标,以业务目标为驱动的架构演进方式也成为阿里后续很多项目实施的参考。… 第一期打通商品,第二期打通交易,第三期打通店铺。另外一条项目主线是架构重构,通过不断抽取共享服务,形成服务化架构的电商平台。

我们希望研发人员仍然像以前开发单机版的软件一样开发系统,把分布式的问题控制在一些通用的组件里面。这就需要引入解决分布式问题的中间件技术。

五彩石项目第一次大规模地使用了中间件。系统分布式之后,需要有一套统一的组件来解决分布式带来的共性技术问题。比如提供服务的发现机制、提供服务的分组路由机制、同机房优先机制等,我们把这些能力沉淀在了一个框架里,这个框架就是 HSF。为了解决单库性能瓶颈问题,使用分库分表的技术,这个计数被沉淀在了 TDDL 框架上面。为了解决分布式事务的性能问题,把原本一个事务里的工作拆成了异步执行,同时必须要保证最终数据的一致性,我们采用了异步发布订阅的方式来解决,这个消息框架就是 Notify。

异地多活

客观上说,出现如此大规模水平伸缩能力问题的业务并不很多,目前只有在交易业务上出来了,所以我们把这轮改造又称为“交易单元化改造”。

经过详细分析论证之后,我们认为交易是必须做到单元化的,其他的非交易业务(例如卖家业务等)在伸缩和容灾上所面临的挑战尚不需要采用单元化如此复杂的方案来支撑。根据这样的分析,我们把做到了单元化的交易成为交易单元,把其他没做单元化的业务称为中心——中心只能在同城部署,交易单元则可以在异地部署。

基于买家数据划分单元,将卖家/商品数据从中心同步到所有单元。