本文章将以OnlineShop微服务Demo为例演示如何在本地构建开发环境。
OnlineShop简介
OnlineShop是GitHub上的一个微服务应用项目。该项目包含Spring Cloud应用与Dubbo应用,其包含了完整的源代码以及构建好的容器镜像,是一个非常典型的微服务示例。
OnlineShop共包含3个微服务,分别是:Frontend、Cart Service和Product Service,其中Cart Service为购物车服务由Dubbo服务构成,Product Service为商品服务由Spring Cloud服务构成,Frontend为客户端服务分别调用了Dubbo和Spring Cloud应用。总体架构见下图:

从上述架构图可以看到该项目非常简单,只有服务注册与发现的能力,缺失了服务查询、链路监控、配置管理和服务鉴权等一系列生产级别的微服务治理能力。
本最佳实践的目标是:在保证应用服务不中断运行的前提下,将OnlineShop无缝迁移至EDAS,并在EDAS上体验强大的微服务治理与应用监控等能力。
前提条件
已安装好Java环境。
构建OnlineShop本地开发环境
创建云资源
- 创建VPC,具体操作,请参见搭建IPv4专有网络。
- 在创建的VPC内购买3台云服务器ECS,具体操作,请参见通过控制台使用ECS实例(快捷版)云服务器ECS快速入门。
- 给ECS实例安装JDK并配置Java环境。
- 下载JDK 1.8+和Maven 3.5+。
- 登录ECS实例安装JDK 1.8+并添加JAVA_HOME环境变量。
- 登录ECS实例安装Maven 3.5+并添加MAVEN_HOME环境变量。
- 在创建的VPC内创建一个MSE实例,并记录下MSE实例的私网访问方式地址,具体操作,请参见创建Nacos引擎。
在微服务应用的配置文件中配置注册中心地址
在上述创建的MSE实例的内网注册中心地址为mse-****-nacos-ans.mse.aliyuncs.com:8848。
在ECS实例上部署应用
为Frontend应用绑定公网SLB
在本地构造流量访问微服务应用
执行以下命令,在本地构造流量一直访问该微服务应用。
while :
do
result=`curl $1 -s`
if [[ "$result" == *"500"* ]]; then
echo `date +%F-%T` $result
else
echo `date +%F-%T` "success"
fi
sleep 0.1
done
执行结果如下所示。
