第6章 异步化与缓存原则

    异步化与缓存两个技术都与系统的性能有很大的关系,当今分布式应用架构中,如果不能很好地掌握这两项技术,所设计出的应用将很难有优质的性能表现。本章将介绍阿里集团是如何使用这两种技术的。

    当淘宝平台由原来单一WAR应用包方式转换成为以共享服务中心为核心的服务化架构后,对于现有业务的开发实现也产生了不小的影响。原本当后台应用接收到来自淘宝页面上的请求时,所有业务逻辑的处理均在同一个运行容器(对应一个JVM)中完成执行,现在则需要在多台服务器间进行多次的服务交互才能完成,每一个服务所修改的数据大多还不在一个数据库中。而且后端的数据库由原来的单一数据库集群(即所有数据均在同一数据库中)按照业务的维度进行了划分,对于原来应用中利用数据库事务特性解决的事务性问题在新的技术体系下给应用开发带来了新的挑战。

    本章将首先结合淘宝平台中典型的交易场景,描述在分布式服务架构中,如何通过业务流程异步化,即通过服务异步调用的方式让业务流程中业务逻辑上允许同步执行的服务同时被调用,从而解决了大量远程服务线性调用带来的性能问题。接着介绍数据进行分库分表后,数据在进行异步操作的场景下,阿里巴巴采用哪些事务处理方式实现该场景下事务一致性与数据库处理性能的平衡。最后通过对商品秒杀场景技术架构的介绍,来说明缓存技术在此类场景中所扮演的重要角色。