跳到主要内容

部署 Spring Cloud 服务

概述

Spring Cloud 是基于 Spring Boot 的一整套实现微服务的框架,提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。

部署示例

在下面的例子中,我们将部署一套基于 Spring Cloud 的微服务,包含:

  • 1 个服务提供者(hello-service),使用 CloudBase 云托管部署;
  • 1 个服务调用者(hello-client),使用 CloudBase 云托管部署;
  • 注册中心(eureka-server)和配置中心(config-server),使用腾讯云 CVM 部署

示例代码仓库:https://github.com/TencentCloudBase/Cloudbase-Examples/tree/master/cloudbaserun/spring-cloud-docker-demo

部署流程

注意

以下所有涉及的 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 地址,可以看到如下输出: