微服务扩展与响应式编程:原理、实践与优势
1. 微服务扩展基础
1.1 Azure 容器服务与 AKS
Azure 容器服务曾是使用 DC/OS、Docker Swarm 或 Google Kubernetes 对 Linux 或 Windows 容器进行扩展和编排的优质解决方案,但自 2020 年 1 月 31 日起,Azure 容器将不再可用,微软转而大力投入 Azure Kubernetes 服务(AKS)。你可以访问 https://docs.microsoft.com/en-us/azure/aks/ 了解更多关于 AKS 的详细信息。
1.2 服务设计扩展考虑
在设计或实现微服务时,需要关注多个组件和方面,以充分发挥微服务架构的强大功能并创造业务价值。以下是一些关键方面:
- 数据持久化模型设计 :传统应用常依赖关系型数据库来持久化用户数据,关系型数据库基于 ACID 模型,能确保数据的一致性和关系约束。但在微服务环境中,读写操作混合在单个数据库会给扩展性带来挑战。因为读操作通常要求更快,可使用不同过滤条件返回单行或结果集;而写操作一般涉及单行或单列,且耗时较长。为解决此问题,可以采用 CQRS(命令查询职责分离)架构,将数据模型拆分为读操作和写操作两部分,这样能简化操作并便于分别优化,使微服务在两种操作上都具备高扩展性。
- 缓存机制 :缓存是提高应用吞吐量的简单有效方法,其原理是将从数据存储读取