67 基于云计算的无服务架构
你好,我是周志明。
首先我们要知道,无服务架构(Serverless)跟微服务架构本身没有继承替代的关系,它们并不是同一种层次的架构,无服务的云函数可以作为微服务的一种实现方式,甚至可能是未来很主流的实现方式。在课程中,我们的话题主要还是聚焦在如何解决分布式架构下的种种问题,所以相对来说,无服务架构并不是重点,不过为了保证架构演进的完整性,我仍然建立了无服务架构的简单演示工程。
另外还要明确一点,由于无服务架构在原理上就决定了它对程序的启动性能十分敏感,这天生就不利于Java程序,尤其不利于Spring这类启动时组装的CDI框架。因此基于Java的程序,除非使用GraalVM做提前编译、将Spring的大部分Bean提前初始化,或者迁移至Quarkus这种以原生程序为目标的框架上,否则是很难实际用于生产的。
运行程序
Serverless架构的Fenix's Bookstore是基于亚马逊AWS Lambda平台运行的,这是最早商用,也是目前全球规模最大的Serverless运行平台。不过从2018年开始,中国的主流云服务厂商,比如阿里云、腾讯云也都推出了各自的Serverless云计算环境,如果你需要在这些平台上运行Fenix's Bookstore,你要根据平台提供的Java SDK对StreamLambdaHandler的代码做少许调整。