尝试治理微服务
在前面两篇文档中,我们介绍了一个 Dubbo 应用的完整开发与部署过程。接下来,我们会通过一个更复杂、更完整的微服务商城系统,演示 Dubbo 的服务治理相关能力。
示例商城系统的总体架构图如下所示:
部署示例应用
有两种方式可以完成商城系统部署。
方式一
首先要为目标 kubernetes namespace 开启自动注入模式,以便应用部署后能够自动连接到注册中心等组件。
kubectl label namespace dubbo-demo dubbo-injection=enabled --overwrite
接下来,使用以下命令部署整个商城系统,所有应用会自动连接到之前安装的注册中心进行地址发现:
kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-samples/master/10-task/dubbo-samples-shop/deploy/App.yml
方式二
这种方式不需要使用 dubboctl 工具单独安装组件。因为我们已经将相关组件的安装全部集成到示例脚本中,您可以运行以下命令快速部署示例应用及相关依赖组件:
kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-samples/master/10-task/dubbo-samples-shop/deploy/All.yml
运行以下命令查看示例应用是否部署成功:
kubectl get deployments -n dubbo-demo
可视化监控服务状态
应用启动成功后,可以通过 admin 控制台查看部署状态,根据你使用的 Kubernetes 集群,请按照以下步骤操作:
如果使用的本地 Kubernetes 集群,请使用以下方式访问应用验证部署状态,执行以下命令:
dubboctl dashboard admin
以上命令会自动打开 admin 控制台,如果在您的环境下没有打开,请使用浏览器访问以下地址:
http://localhost:38080/admin
Admin 控制台显示的服务注册情况界面如下:
通过监控统计
菜单, 可以查看集群的调用情况:
对于云上托管的哦 Kubernetes 集群,可以使用以下方式验证,这里以阿里云 ACK 集群为例:
ACK ingerss-controller 的访问方式……
Admin 控制台显示的服务注册情况界面如下:
通过监控统计
菜单, 可以查看集群的调用情况:
流量管控
我们围绕商城系统由 5 个微服务应用组成:
Frontend 商城主页
,作为与用户交互的 web 界面,通过调用User
、Detail
、Order
等提供用户登录、商品展示和订单管理等服务。User 用户服务
,负责用户数据管理、身份校验等。Order 订单服务
,提供订订单创建、订单查询等服务,依赖Detail
服务校验商品库存等信息。Detail 商品详情服务
,展示商品详情信息,调用Comment
服务展示用户对商品的评论记录。Comment 评论服务
,管理用户对商品的评论数据。
在此基础之上,我们设计了一系列的流量治理任务,多个应用部署有 v1、v2 两个不同的版本,我们会演示通过规则引导流量到不同的版本。完整的部署架构图如下:
Order 订单服务
有两个版本 v1
和 v2
,v2
是订单服务优化后发布的新版本。
- 版本 v1 只是简单的创建订单,不展示订单详情
- 版本 v2 在订单创建成功后会展示订单的收货地址详情
Detail
和 Comment
服务也分别有两个版本 v1
和 v2
,我们通过多个版本来演示流量导流后的效果。
- 版本
v1
默认为所有请求提供服务 - 版本
v2
模拟被部署在特定的区域的服务,因此v2
实例会带有特定的标签
接下来,就请根跟随 示例任务 体验 Dubbo 的流量治理能力吧。
更多内容
部署示例应用到 Kubernetes 集群
演示如何将当前应用打包为 Docker 镜像,并部署到 Kubernetes 集群。
示例源码解读
关于示例应用的源码讲解,学习如何定制 Dubbo Spring Boot 应用。
使用 dubboctl 创建多语言应用
如何使用 dubboctl 快速创建 go、node.js、web、rust 等多语言应用。