部署 Spring Cloud 服务
概述
Spring Cloud 是基于 Spring Boot 的一整套实现微服务的框架,提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。
部署示例
在下面的例子中,我们将部署一套基于 Spring Cloud 的微服务,包含:
- 1 个服务提供者(hello-service),使用 CloudBase 云托管部署;
- 1 个服务调用者(hello-client),使用 CloudBase 云托管部署;
- 注册中心(eureka-server)和配置中心(config-server),使用腾讯云 CVM 部署
部署流程
以下所有涉及的 CVM 实例、云托管实例,都处于同一个 VPC 内。您可以在云托管详情内看到您的应用所属的 VPC。
第 1 步:部署注册中心(eureka-server)
首先需要您准备一个腾讯云 CVM 实例,如果您没有实例,可以前往腾讯云 CVM 购买。
CVM 实例需要与云托管服务处于同一 VPC 内。您可以在购买 CVM 时指定,也可以修改已有的 CVM 实例所处的 VPC 网络。
下载 项目示例代码,进入 eureka-server
目录下,执行:
mvn compile & mvn package
在 target
目录下,可以看到构建产物:app.jar
。
使用任意方法将 app.jar
上传至您 CVM 内的 /root
目录下,这里我们使用 scp 命令:
scp app.jar root@1.2.3.4:/root/
登录到 CVM 内,在 /root
目录下,运行:
java -jar app.jar &
此处需要您的 CVM 已经预先安装好了 Java,如果没有安装 Java,请参阅相关文档进行安装。
安装成功后,打开 CVM 对应公网的 IP 和端口(项目默认为 8280
)可查看到如下的界面:
第 2 步:部署配置中心(config-server)
首先需要您准备一个腾讯云 CVM 实例,如果您没有实例,可以前往腾讯云 CVM 购买。
为了更接近真实的服务场景,我们建议您使用与上文的注册中心不同的 CVM 示例。
进入示例项目的 config-server/src/main/resources
目录,修改 application.yml
,将 Eureka 的地址改为上文的 注册中心(eureka-server) 的地址,如下图:
进入 config-server
目录,执行:
mvn compile & mvn package
在 target
目录下,可以看到构建产物:app.jar
。
使用任意方法将 app.jar
上传至您 CVM 内的 /root
目录下,这里我们使用 scp 命令:
scp app.jar root@1.2.3.4:/root/
登录到 CVM 内,在 /root
目录,运行:
java -jar app.jar &
安装成功后,打开 CVM 对应公网的 IP 、端口(默认为 8210
)、路径 /config-client-dev.yml
(例如 http://81.68.219.131:8210/config-client-dev.yml )可查看到如下输出:
第 3 步:部署服务提供方(hello-service)
首先开通云托管,选择与上文 CVM 同样的 VPC,以及对应的子网:
新建服务 hello-service
:
进入示例项目 hello-service/src/main/resources
目录,修改 application.yml
,将 Eureka 的地址改为对应地址,如下图:
然后登录 CloudBase 云托管控制台,选择新建版本,将示例项目的 /hello-service
目录上传,同时版本配置参考如下:
部署成功后,会在云开发控制台看到版本状态为「正常」:
并且在 Eureka 控制台,可以看到有新的注册节点:
第 4 步:部署服务调用方(hello-client)
新建服务 hello-client
:
进入示例项目 hello-client/src/main/resources
目录,修改 application.yml
,将 Eureka 的地址改为对应地址,如下图:
然后登录 CloudBase 云托管控制台,选择新建版本,将示例项目的 /hello-client
目录上传,同时版本配置参考如下:
部署成功后,会在云开发控制台看到版本状态为「正常」:
并且在 Eureka 控制台,可以看到有新的注册节点:
验证服务
访问 hello-client
的 HTTP 地址,可以看到如下输出: