本文以对一个部署在Kubernetes上的微服务应用进行强弱依赖治理为例,介绍通过场景化演练来发现依赖问题、暴露风险的整个过程。
背景信息
示例说明
本文示例的应用是一个开源电商Demo,提供了商品选购、购物车、下单等功能。由于应用程序不存在对外部云服务的依赖,并且提供了预构建镜像,所以该应用可以直接部署在任意Kubernetes集群上。Demo应用架构如下图所示。

该微服务Demo由9个服务构成:
- nacos-server:注册中心。
- frontend:前端。
- recommendationservice:推荐系统,负责对首页的产品列表进行排序。
- cartservice:购物车。
- cart-redis:购物车信息储存的数据库。
- checkoutservice:下单。
- checkout-mysql:下单信息储存的数据库。
- productservice:商品。
- product-mysql:商品数据库。
部署应用
部署应用支持以下2种方法:
- 部署方法1:使用预构建镜像快速部署。
运行prebuild中的所有YAML文件,使用预构建的镜像快速部署。
cd prebuild/ for i in *.yaml; do kubectl apply -f $i; done
- 部署方法2:手动编译并部署。
- 在根目录下运行
mvn clean install
。 - 进入每个子模块目录src/{submodule},运行
./build.sh
,编译并构建镜像文件。 - 修改YAML文件中镜像。
- 部署应用。
- 在根目录下运行
创建治理方案
一个治理方案针对一个应用,例如需要对电商Demo的前端页面进行治理,则选择frontend应用。在主机模式下,接入探针时需填写应用名;在K8s环境下,您需要通过Label来识别应用名。
总结
强弱依赖治理提供了一系列自动化功能,包括应用接入、依赖智能识别、对应演练自动创建、依赖验证等。为了实现全面准确的依赖分析,您需要提供全面覆盖依赖的流量。
利用强弱依赖治理梳理出应用的依赖关系的强弱,能够提前发现风险、发现不合理的依赖关系,进而提升应用的高可用能力。
演示操作
以下通过3个视频,演示下强弱依赖治理的整个过程。
- 准备工作
- 操作步骤
- 总结