企业IT架构转型之道——阿里巴巴中台战略 第六章
异步化与缓存原则
本章介绍了一些分布式系统的基本理论,然后结合阿里的工程实践来介绍相关的经验
个人经验,高性能高并发系统的一个先决条件即是系统必须是无阻塞的,即系统所有模块间的调用,不管是系统内还是系统外,都不能阻塞,说起来虽然就一句话,但是真的要做到还是挺难的,有时候必须要有取舍。
业务流程异步化
- 主要通过消息中间件来实现业务流程的异步
数据库事务异步化
- 将大事务拆成小事务,然后通过消息中间件来异步化
事务与柔性事务
-
CAP理论:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项
这个也不用多说了,目前绝大部分互联网实现都是牺牲一致性,来满足另外两项,阿里也一样
-
BASE理论:基本可用(Basically Available)、柔性状态(Soft State)、最终一致性(Eventual Consistency)
-
柔性事务如何解决分布式系统的问题
-
引入日志和补偿机制
-
可靠消息传递,一般做法是保证消息至少传递一次,要求消息处理实现幂等性
-
实现无锁
-
-
柔性事务在阿里内部的几种实现
-
消息分布式事务,只支持正向补偿
-
支付宝XTS框架,基于BASE思想实现的一套类似两阶段提交的分布式事务方案,同时支持正向和反向补偿
-
阿里巴巴AliWare TXC 事务服务,阿里新一代分布式事务平台
-
完全满足之前分布式事务平台所提供的对于事务服务高可用和最终一致性的基本业务要求
-
标准模式下无需开发人员自行进行事务回滚或补偿的代码,平台支持自动按事务中事务操作的顺序依次进行回滚和补偿
-
易用性是TXC的主要目标,在保证事务完整性的前提下,标准模式可不修改应用的代码,同时也提供之前平台中所提供的事务重试以及自定义事务模式
关于柔性事务的总结
-
应用程序一定要做幂等实现,特别是对数据库进行数据修改操作时
-
远程模块之前用异步消息来驱动,异步消息还可以起到检查点的作用
大促秒杀活动催生缓存技术的高度使用
-
这里就不多说了,主要是介绍了各种活动中缓存的使用经验和技巧,基本上,就算你不知道,做过几次后也能慢慢总结出经验来
-
本质就是通过合理的使用缓存,来降低对系统模块的压力