领先一步
VMware 提供培训和认证,以快速提升您的进度。
了解更多嗨,Spring 粉丝们!在这个简短的八部分系列文章中,我们将介绍用于 Google Cloud Platform 的 Spring Cloud 集成,称为 Spring Cloud GCP。Spring Cloud GCP 代表了 Google 和 Pivotal 之间的共同努力,旨在为使用 Google Cloud Platform 的 Spring Cloud 开发人员提供一流的体验。Pivotal Cloud Foundry 用户将享受更轻松与 GCP 服务代理集成。我撰写这些部分时参考了 Google Cloud 开发者倡导者,我的朋友,Ray Tsang的意见。您还可以在我们的 Google Next 2018 会议上观看 Spring Cloud GCP 的演练,Bootiful Google Cloud Platform。感谢老兄!一如既往,如果您有任何反馈,我很乐意听到您的声音。
本系列共有八篇文章。以下是所有文章:
在本节中,我们将介绍 Spring Cloud GCP,然后使用 Spring Cloud GCP 设置一个简单的项目。
Google Cloud Platform 非常庞大!它拥有大量功能。但是其他平台也是如此。那么,为什么选择 Google Cloud Platform 呢?我认为使用 GCP 有两个主要原因。首先,Google 的数据中心无疑是世界上最先进的,其运营能力首屈一指。让 Google 运营和保护您的数据中心。除此之外,Google 不得不解决一些在其规模上令人惊叹的问题,通过 GCP,我们可以从 GCP 上的这些发展中受益。独特于 Google 的数据服务是传奇的。Google 的 TensorFlow,例如,代表了机器学习的尖端技术,GCP 甚至提供了对专门的专用集成电路 (ASIC) *张量处理单元 (TPU)* 的访问,这些单元经过优化以运行 TensorFlow 工作负载。Google 的 Spanner 是唯一一款为云专门构建的企业级、全球分布式且强一致性的数据库服务,它结合了关系数据库结构和非关系水平扩展的优势。
您需要注册一个GCP 帐户。为了在本地机器上使用 Spring Cloud GCP 项目,您需要在 GCP 上设置一个项目并在本地安装 gcloud
CLI。
在开始使用 GCP 之前,有一些事项需要注意和操作。首先,您需要登录。运行以下命令登录到 GCP
gcloud auth application-default login
这将简化提供默认凭据以支持您与平台交互的工作。在这种情况下,您声明您希望允许某些操作代表*您*执行。
某些操作独立于特定用户存在。它们可能需要表示您权限子集的细粒度权限。它们可能独立于给定用户运行,例如批处理作业或夜间运行的内容。在这种情况下,使用*服务帐户*是有意义的。当我们查看跟踪时,我们需要稍后配置*服务帐户*。
了解您的*项目 ID* 很有用。您会发现许多咒语需要知道此值。我有一个这样的简短脚本,它在我的 ~/.bashrc
中运行,并被添加到每个 shell 中。
export PROJECT_ID=$(gcloud config list --format 'value(core.project)')
在这些示例中,我倾向于坚持使用 CLI,但是您想要执行的大多数操作也可以通过 Web 控制台完成。
您至少现在需要 Spring Cloud 和 Spring Cloud GCP 物料清单 (BOM) 工件。启动新的 Spring Cloud GCP 项目最简单的方法是从Spring Initializr生成一个新项目,然后选择GCP 支持
。以下是最小 pom.xml
工件的样子。
Spring Cloud GCP 的基本 pom.xml
。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud-gcp.version>1.0.0.RELEASE</spring-cloud-gcp.version>
<spring-cloud.version>Finchley.SR1</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-dependencies</artifactId>
<version>${spring-cloud-gcp.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
在本节中,我们介绍了如何设置基本的 Spring Cloud GCP 项目。在下一节(本周四),我们将介绍如何使用 Spring Cloud CCP 与 MySQL 或 PostgreSQL 等 SQL 数据库进行通信。