【Google Cloud】Cloud Run 彻底解说

系列文章目录


什么是 Cloud Run

Cloud Run 是一项完全托管的服务,它允许用户通过编写任何编程语言的代码并将其容器化,然后将容器镜像部署到 Google Cloud 上来运行应用程序。您无需创建集群或管理基础设施。

运行容器的实例可根据负载情况自动扩展在不处理时将实例数量缩减为 0

由于可以将应用程序从容器镜像中部署出来,因此具有很高的执行环境灵活性,应用场景广泛。

您可以参考官方文档中介绍的一些使用场景,例如网站和移动后端等(请参阅官方文档)。

此外,Cloud Run 基于开源软件 Knative(请参阅Knative),后者可以在 Kubernetes 上构建无服务器计算基础架构。

Cloud Run 的基础知识

两种使用方法

Cloud Run 提供了两种使用方式:Cloud Run 服务Cloud Run 任务。有时它们也会被分别称为 Cloud Run (services) 和 Cloud Run (jobs)。

可以理解为在作为 Google Cloud 产品之一的“Cloud Run”中,可以创建“Cloud Run 服务(services)”和“Cloud Run 任务(jobs)”这两种资源。

本文主要介绍 Cloud Run 服务。

Cloud Run 服务 (services)

在Cloud Run服务中,只需部署容器镜像,即可获得容器运行环境(容器实例)和接收HTTPS请求的端点。

它用于接收请求并返回响应的网站和API接口等场景。

Cloud Run 服务

Cloud Run 任务 (jobs)

在 Cloud Run 任务中,可以使用容器实例来运行用户编写的代码,而无需以 HTTP 请求为触发点,而是作为 任务 来执行。

任务可以在任意时间点执行,并且通过组合多个容器实例运行,可以实现超过60分钟的任务执行或并行处理。

如果您希望使用高效的资源管理方式进行批处理,并且选择一种无服务器的容器执行环境,那么Cloud Run将是一个合适的选择。

有关 Cloud Run jobs 的更多信息,请参阅以下文章。

动态缩放

为了处理通过HTTPS端点接收到的请求,Cloud Run服务会自动扩展容器实例。

容器实例默认可以扩展到最多 1000 个,当没有请求时,实例数量会缩减至 0 个。

服务冗余

Cloud Run 服务将在特定区域内创建,并且为了实现高可用性和故障转移,该服务会自动复制到区域内的多个可用区。

Cloud Run 是一种“区域性服务”。这意味着你可以选择使用哪个区域,但不需要选择具体的可用区。换句话说,用户无需关心可用区的分配,系统会自动进行合理的负载均衡,并且能够自动应对可用区出现的故障。

部署

用于部署的容器映像。

部署到 Cloud Run 的容器镜像应存储在 Google Cloud 的托管容器注册表中,即 Container RegistryArtifact Registry

您也可以使用其他项目中的容器镜像。

通过使用无服务器的CI/CD平台——Cloud Build,当代码推送到Git仓库时,也可以实现持续部署到Cloud Run(参考)。

容器要求。

要在Cloud Run上运行的容器需要满足一些要求。

有关详细要求,请参阅官方文档

  • 容器映像中的可执行文件必须针对 Linux 64 位编译。
  • 需要监听地址为 0.0.0.0 的请求,端口为请求发送目标端口(默认端口为 8080)。
  • 从收到请求开始,需要在指定的超时时间内返回响应。

流量迁移和回滚

部署或重新配置服务时,会创建一个新的版本。

创建新版本时,可以选择是立即还是分阶段将所有流量迁移到现有版本。

此外,您还可以在多个版本之间分配流量,或者回滚到早期版本(参考:说明文档)。

构成

端点 URL

默认情况下,Cloud Run 服务使用 *.run.app 域的唯一子域作为服务的 HTTPS 终端端点 URL。

当你部署一个 Cloud Run 服务时,会生成两种类型的网址:确定性网址(Deterministic URL)非确定性网址(Non-deterministic URL) 。前者是根据服务名称和区域唯一确定的网址,而后者则包含随机哈希值,其具体网址在部署之前是不确定的。

# Deterministic URL 格式
https://{服务名}-{Project ID}.{Region}.run.app
# Non-deterministic URL 格式
https://{服务识别子}.run.app

您还可以使用 全球外部HTTPS负载均衡器Firebase Hosting 来设置自定义域。

容器实例的最大和最小数量

动态伸缩的最大实例数和最小实例数都可以预先设置。

最大实例数量默认为 100,上限是 1000,并且可以申请提升上限

最小实例数默认为 0,在没有请求时,实例数量会缩减至 0

冷启动及应对措施

当Cloud Run服务接收到请求而实例数量为0时,启动实例会花费一定时间,导致处理延迟。这种情况被称为冷启动

通过将最小实例数设置为1或更多,可以保持容器实例处于预热状态(随时可调用的状态),从而能够立即处理请求。

如果最小实例数设置为1或更多,那么指定数量的容器实例将始终处于空闲状态并运行,即使它们没有处理请求,也会产生费用。

不过,处于空闲状态的实例所产生的费用比实际处理请求时的费用要低。具体费用请参阅价格表

以下文章进一步探讨了冷启动及其应对措施。

  • Cloud Run 的冷启动(待续)
  • Cloud Run 最小实例数(待续)

Startup CPU boost

为了应对冷启动问题,即从零规模启动容器或在请求量上升需要扩容时快速启动容器,存在一种名为“启动CPU增益”(Startup CPU boost)的功能。

文将对此进行详细说明。

  • Cloud Run 的 Startup CPU boost 解说(待续)

CPU 和内存

在部署服务时,您可以设置分配给 Cloud Run 容器实例的 CPU 数量和内存容量的上限。部署完成后,您仍然可以进行修改。

CPU 的数量决定了可分配的内存容量范围。

CPU(个)内存容量
1 未满(最小 0.08)128 MiB ~ 512 MiB(CPU 为 0.08)
1128 MiB ~ 4 GiB
2128 Mib ~ 8 Gib
42 GiB ~ 16 GiB
64 GiB ~ 24 GiB
84 GiB ~ 32 GiB

请求超时

您可以设置处理 Cloud Run 服务端点收到的请求的可用时间。

默认值为 300 秒,可设置范围为 1~3600 秒

参考:设置请求超时(服务)

每个容器实例的最大同时请求数

您可以设置一个容器实例可同时处理的请求数。

默认值为 80,可设置的范围为 1 到 1000

参考:每个实例的并发请求数上限(服务)

始终分配CPU资源的Cloud Run服务

始终分配 CPU 云运行服务

通过将Cloud Run服务配置为“始终分配CPU”,即使在没有请求的情况下,也可以为容器实例分配CPU,从而执行短期的后台任务和异步处理任务。

通常情况下,Cloud Run服务仅在处理请求时分配CPU,并根据分配的时间收费。但如果选择始终分配CPU,则会从容器实例启动到生命周期结束都分配CPU,并按照整个生命周期进行收费。不过,这种情况下,单价会相对便宜一些(具体请参阅价格表)。

至于是否应该启用“始终分配CPU”的设置,可以参考 Recommender 提供的建议。Recommender会基于过去一个月内Cloud Run服务的流量情况,推荐在能够降低费用的情况下启用该设置。

容器执行环境(世代)

在选择Cloud Run的容器运行环境时,可以选用第一代第二代环境。默认设置下,Cloud Run服务将使用第一代运行环境。

不同代际的特性和适用场景如下:

世代特点使用场景
第 1 代・高速冷启动・当预计会出现对 Cloud Run 服务的突发流量时。
・应用程序容易受到冷启动影响时。
・对 Cloud Run 服务没有持续流量,并且容器实例数量经常缩至零时。
・希望使用少于 512 MiB 的内存(第 2 代最低为 512 MiB)。
第 2 代・支持网络文件系统
・完全兼容 Linux(所有系统调用、命名空间和 cgroup 均可用)
・CPU 和网络性能提升
・当应用程序需要使用网络文件系统时。
・对 Cloud Run 服务存在持续流量,并且可以接受稍微慢一些的冷启动时。
・需要高性能 CPU 和网络的工作负载时。
・ 需要使用第一代不支持的操作系统的系统调用时(参考
・需要使用 Linux 的 cgroup 功能时。

服务联动(触发)

在Cloud Run服务中,除了通过HTTPS请求接收客户端调用外,还支持使用gRPC和WebSocket进行通信,以及其他Google Cloud服务的调用。

你可以利用Google Cloud的多种服务来进行调用,例如Pub/Sub、Cloud Scheduler、Cloud Tasks、Eventarc和Workflows等。

网络访问限制

对 Cloud Run 服务的连接

默认情况下,在网络层面上,可以从任何来源访问 Cloud Run 服务。

通过更改上行(内向)设置,可以对访问来源进行三级限制。

设定名允许访问的来源。
内部 (Internal)• 内部应用程序负载均衡器
• VPC Service Controls 边界内的资源
• 同一项目的 VPC
• Eventarc、Pub/Sub、工作流
内部 (Internal) 与 Cloud Load Balancing• 内部(Internal)被允许的来源
• 外部应用程序负载均衡器
全部 (All)• 全部

Cloud Run 服务与 VPC 网络的连接

与GKE集群等不同,Cloud Run服务是在VPC网络之外创建的,因此默认情况下无法通过私有IP(内部IP)访问VPC中的资源。

通过使用无服务器VPC访问直接VPC出口(Direct VPC Egress) 功能,可以使用专用IP访问VPC资源。

以下是介绍无服务器VPC访问和直接VPC出口的文章:

  • Cloud Run 的 Direct VPC Egress 解说(待续)

认证

私有服务的认证

在应用程序级别,Cloud Run 服务默认会部署为私有

对于私有服务,在请求时会使用IAM认证信息来调用服务。也就是说,没有持有IAM认证信息的人或程序发出的请求将不会被接受。

在从其他 Google Cloud 服务调用 Cloud Run 服务时,需要使用具有 Cloud Run Invoker(roles/run.invoker) 角色或拥有同等权限的自定义角色的服务账户进行认证。

Workload Identity 联合还能使用支持 OpenID Connect (OIDC) 或 SAML 2.0 的外部身份供应商进行身份验证。

允许公共访问

如果部署的服务是公开API或网站,请允许公开访问。

通过控制台或命令行界面(CLI),只需为 allUser 成员类型分配 Cloud Run Invoker(roles/run.invoker) 角色,即可允许未认证的服务调用。

用户认证

如果您希望仅允许经过授权的最终用户访问服务,请使用 Identity Platform

Identity Platform 是一个独立的 Google Cloud 产品,与 Cloud Run 是不同的产品。

通过 Identity Platform,可以实现基于电子邮件和密码、电话号码,以及 Google、Facebook、GitHub 等社交提供商或自定义认证机制的用户认证。

费用

费用体系

在Cloud Run中,根据不同的情况会有不同的计费方式:一种是在处理请求时才分配CPU,另一种是始终分配CPU

Cloud Run 服务在处理请求期间分配 CPU 的情况

在容器实例处理请求期间,所分配的CPU和内存使用时间按100毫秒的粒度进行计费。

如果最小实例数设置为1或以上,则这些实例即使处于空闲状态也会产生费用。

此外,对于部署的Cloud Run服务的请求数量,每100万次请求按单位计费。

CPU内存请求数
免费额度每月前180,000 vCPU秒每月前360,000 GiB秒每月前200万次请求
标准费率每vCPU秒0.00002400美元

闲置状态下每vCPU秒0.00000250美元(当最小实例数为1或以上时)
每GiB秒0.00000250美元

闲置状态下每GiB秒0.00000250美元(当最小实例数为1或以上时)
每100万次请求0.40美元
承诺使用折扣每vCPU秒0.00001992美元每GiB秒0.000002075美元每100万次请求0.332美元

*以上数据为2023年4月东京地区的信息。

vCPU秒:单个vCPU在一个实例上运行1秒的时间。
GiB秒:内存容量为1GiB的实例运行1秒的时间。
闲置状态:保持最低实例数处于温运行状态。

始终分配 CPU 的 Cloud Run 服务

如果始终分配 CPU,那么就不会按照请求次数来计费,而是按照 CPU 和内存的使用时间来计费。也就是说,在容器实例启动到终止期间,资源使用费是持续产生的。

由于资源的永久性分配,单位成本相对较低。

以下为不同资源分配的成本(基于2023年4月东京地区的数据):

CPU内存
免费额度每月前 240,000 vCPU 秒每月前 450,000 GiB 秒
标准费率$0.00001800 / vCPU 秒$0.00000200 / GiB 秒
预定使用折扣$0.00001494 / vCPU 秒$0.00000166 / GiB 秒

请注意:以上信息适用于东京地区,截至2023年4月。

与其他服务的比较

计算产品概念

谷歌云提供的各种计算产品(为程序运行提供平台的产品,如计算引擎、GKE、Cloud Run 等)在构建灵活性运维负荷方面各有不同。

例如,计算引擎是一种虚拟服务器服务,可以自由定制操作系统和中间件等。这虽然提供了较高的灵活性,但同时也会增加运行负载。

相比之下,Cloud Run 在灵活性和运行负载方面处于计算产品的中间位置。

谷歌云计算产品比较

选择合适的计算服务时,需考虑所需灵活性及希望减轻的运行负荷。例如,某些场景可能更需要高度灵活的定制,而其他场景则可能更倾向于减少管理开销。

通过综合考量这些因素,可以选择最适合特定需求的计算服务。

关于如何选择计算服务的方法,下文将进一步探讨。本文将重点介绍 Cloud Run 的特点,同时也推荐您阅读相关文章以获得全面的理解。

  • Google Cloud 计算产品比较(待续)

Cloud Run 和 Compute Engine 的区别

Compute Engine (GCE) 是 Google Cloud VPC 内提供的一种 IaaS(基础设施即服务)产品,允许用户构建虚拟机。

在所有的计算产品中,GCE 提供了最高的灵活性,如果某些组件可以部署在其他产品中,同样也可以部署在 GCE 上。

不过,在使用 GCE 时,用户需要自行构建和管理从虚拟机操作系统开始的一切内容。

此外,由于它并不是像 Cloud Run 这样的无服务器架构,因此即使虚拟机在闲置时没有执行任何操作,您仍然会被持续计费。

有关 Compute Engine 的更多信息,请参考以下文章。

  • Compute Engine 彻底解说(基础篇)(待续)

Cloud Run 和 Google Kubernetes Engine 之间的区别

Google Cloud 的代表性容器服务 Google Kubernetes Engine (GKE) ,要求用户自行管理部署容器的 Kubernetes 集群。然而,与全托管的 Cloud Run 相比,GKE 允许用户更加灵活地配置操作系统、CPU、GPU、磁盘、内存和网络等。

此外,GKE 还提供了一种称为 Autopilot 模式的功能,允许用户将 Kubernetes 集群的大部分管理工作交给谷歌云来处理。

Cloud Run 与 GKE 的主要区别如下:

  • 当没有请求时,GKE 无法缩放至零实例,而 Cloud Run 则可以。
  • GKE 支持复杂配置,例如微服务架构。相比之下,Cloud Run 仅支持部署单个容器镜像。
  • GKE 可在 VPC 中运行,这使得它能够轻松地直接访问 VPC 内的资源。而使用 Cloud Run 时,如果需要与 VPC 内的资源通信,则需要进行额外的配置,如设置无服务器 VPC 访问。

尽管 Cloud Run 和 GKE 都提供了容器执行环境,但它们有着不同的定位:GKE 是一种“能够实现高级容器编排的服务”,而 Cloud Run 则是一种“以无服务器方式轻松运行容器的服务”。

请参阅以下有关 GKE 的文章以获取更多信息。

  • Google Kubernetes Engine(GKE)彻底解说(待续)

Cloud Run 和 App Engine 之间的区别

Google App Engine (GAE) 是一项与 Cloud Run 概念类似的服务。

通过 GAE,只需部署代码和配置文件即可轻松运行应用程序。

标准环境中的 GAE 有开发语言限制,但与 Cloud Run 一样,当没有请求时,实例会缩放为 0。

GAE 和 Cloud Run 的主要区别如下:

  • GAE 只需要代码和配置文件即可部署,这使得它更容易运行应用程序,而不是像 Cloud Run 那样拥有一个不那么灵活的执行环境。
  • GAE 通过 Identity Aware Proxy (IAP) 支持身份验证;Cloud Run 也可以使用 IAP,但需要将其与 Serverless NEG 绑定,且作为其前端的负载均衡器会产生额外费用。

GAE 柔性环境的缺点包括:由于基于虚拟机的执行环境,扩展速度较慢,而且无法扩展到 0。

与 GAE 相比,GAE 在部署简便性方面更胜一筹,而 Cloud Run 则在环境灵活性方面更胜一筹。

另请参阅以下关于 GAE 的文章。

  • Google App Engine(GAE)彻底解说(待续)

Cloud Run 和 Cloud Functions之间的区别

除了 Cloud Run 之外,作为提供无服务器计算服务的谷歌云服务的代表,还有 Cloud Functions

Cloud Functions 最大的特点在于仅需提供源代码即可进行部署,这与 Cloud Run 的操作方式有所不同。

Cloud Functions 适合通过简单的代码实现易于部署的简单处理。它具有很高的执行环境灵活性,而 Cloud Run 则能够处理长时间运行的复杂任务。

Cloud Functions 与 Cloud Run 的主要区别如下

比较观点Cloud RunCloud Functions
部署容器镜像源代码
开发语言无限制有限制
最长执行时间60分钟(在第二代情况下)
对于HTTP函数为60分钟
对于事件驱动函数为10分钟

另请参阅以下关于 Cloud Functions 的文章。

Cloud Run for Anthos

Anthos 是一种由 Google Cloud 提供的服务,它通过 Kubernetes 对基础架构层进行抽象化,使得容器应用程序能够在谷歌云之外的各种云平台和企业内部环境中构建和运行。

Anthos 使您能够在谷歌云控制台的单一界面上管理不同的平台上的 Kubernetes 集群,包括“本地部署”、“AWS”和“谷歌云”。

Cloud Run for Anthos 是 Anthos 提供的一项服务,它使您能够在 Anthos 集群上构建谷歌管理的 Knative,从而利用无服务器容器执行(参考资料)。这使得一些普通 Cloud Run 无法实现的用例成为可能,例如:

  • 在没有无服务器 VPC 访问的情况下连接到 VPC 网络
  • 在同一个服务中运行多种类型的容器
  • 利用 GPU 实现高性能计算

这些功能为用户提供了更多的灵活性和性能优化的机会,满足了更广泛的业务需求和技术要求。

<think>首先,用户的问题是:“我想查找使用IDEA搭建SpringCloud项目的方法 请问使用IDEA搭建SpringCloud项目的详细步骤”。用户提供了几个引用,我需要基于这些引用来回答问题。 回顾系统级指令: - 所有行内数学表达式用$...$,但这里可能没有数学表达式,所以可能不适用。 - 独立公式用$$...$$,单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如[^1]。 - 回答结构清晰,逐步解决问题。 - 确保回答真实可靠,基于给定的引用。 引用内容: - [^1]: 使用idea的Spring Cloud搭建。使用Maven创建一个基本的Spring Cloud项目。命令:mvn archetype:generate ... - [^2]: IDEA 搭建 SpringCloud 项目【超详细步骤】。引入依赖和配置yml。 - [^3]: 使用IDEA搭建SpringCloud项目。pom文件修改,引入包,启动服务,Zuul路由。 - [^4]: IDEA 2021 Spring Cloud 项目搭建步骤演示图文解说(基础版)。 - [^5]: idea创建springcloud项目的步骤。实体类示例。 用户的问题是关于使用IDEA搭建SpringCloud项目的详细步骤。我需要整合这些引用,提供一个清晰、逐步的指南。 结构化回答: 1. **介绍**:简要说明Spring Cloud和IDEA的用途。 2. **步骤**:详细步骤,包括创建项目、添加依赖、配置等。 3. **代码示例**:如果引用中有代码,展示出来。 4. **引用**:在相关部分添加引用标识。 5. **总结**:确保项目运行。 6. **生成相关问题**:在末尾添加相关问题。 步骤基于引用: - :使用Maven命令创建项目。 - [^2]:引入依赖和配置服务注册(Eureka)。 - [^3]:pom文件修改,Zuul路由等。 - [^4]:图文解说,可能更详细。 - [^5]:实体类示例,但可能不直接相关。 详细步骤: 1. **创建项目**:使用IDEA新建项目,选择Maven或Spring Initializr。 - 引用提到使用Maven命令:`mvn archetype:generate ...`,但通常在IDEA中可以通过UI操作。 - 引用提到IDEA 2021的步骤,可能更用户友好。 2. **添加依赖**:在pom.xml中添加Spring Cloud相关依赖。 - 引用:引入`spring-cloud-starter-netflix-eureka-client`。 - 引用:列出了更多依赖如Eureka client, Zuul等。 3. **配置文件**:配置application.yml或application.properties。 - 引用[^2]:配置服务名称和Eureka地址。 - 例如:`eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/` 4. **编写代码**:创建主类、实体类等。 - 引用[^5]:实体类示例,但这是细节。 - 主类需要添加注解如`@EnableEurekaClient`。 5. **启动服务**:运行项目并测试。 - 引用[^3]:启动服务,并使用Zuul测试路由。 6. **测试**:确保服务注册并可以访问。 生成相关问题: - 基于主题,如优化、常见问题、扩展功能。 确保回答真实可靠:只基于引用内容,不添加外部知识。 最终回答结构: - 标题或开头:使用IDEA搭建Spring Cloud项目的详细步骤 - 逐步讲解 - 代码块(用Markdown格式) - 引用标识 - 相关问题 </think> ### 使用IDEA搭建Spring Cloud项目的详细步骤 以下是基于最新IDEA版本(如2021+)的完整指南,整合了站内引用内容。Spring Cloud是一个微服务框架,IDEA提供了便捷的搭建工具。整个过程分为6个核心步骤,确保环境已安装JDK 8+、Maven 3.6+和IDEA。 --- #### **步骤1: 创建Maven项目** 在IDEA中新建项目,选择Maven作为构建工具: - **操作路径**:File → New → Project → 选择"Maven",使用快速启动模板。 - **或使用命令行**(参考引用): ```bash mvn archetype:generate \ -DgroupId=com.example \ -DartifactId=spring-cloud-template \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DinteractiveMode=false ``` 在IDEA终端执行此命令,生成项目骨架[^1]。 #### **步骤2: 添加Spring Cloud依赖** 修改`pom.xml`文件,引入核心依赖: - **Eureka客户端**(用于服务注册发现,参考引用) - **Zuul或Gateway**(用于API网关,参考引用[^3]) 示例`pom.xml`片段: ```xml <dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Eureka Client --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <!-- Zuul (可选) --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> </dependencies> <!-- Spring Cloud版本管理 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Hoxton.SR12</version> <!-- 根据版本调整 --> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> ``` 完成后运行`mvn clean install`安装依赖。 #### **步骤3: 配置服务注册(Eureka)** 在`src/main/resources/application.yml`中添加配置: ```yaml server: port: 8080 # 服务端口 spring: application: name: user-service # 服务名称(唯一标识) eureka: client: service-url: defaultZone: http://localhost:8761/eureka # Eureka服务器地址 instance: prefer-ip-address: true # 使用IP注册 ``` 此配置使服务能注册到Eureka注册中心。 #### **步骤4: 编写主启动类和代码** - **主类**:在`src/main/java`创建启动类,添加注解: ```java package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication @EnableEurekaClient // 启用Eureka客户端 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` - **实体类示例**(参考引用): ```java package com.example.entity; import lombok.*; import java.io.Serializable; @Data @NoArgsConstructor // 无参构造器 @AllArgsConstructor // 全参构造器 public class User implements Serializable { private Integer id; private String serial; } ``` #### **步骤5: 配置Zuul网关(可选)** 如果需API网关: - 在`pom.xml`添加Zuul依赖(见步骤2)。 - 在启动类添加`@EnableZuulProxy`。 - 配置路由规则(参考引用[^3]): ```yaml zuul: routes: user-service: path: /api/users/** serviceId: user-service # 路由到user-service ``` 测试访问:`http://localhost:8080/api/users/hi?name=test`。 #### **步骤6: 启动与测试** 1. **启动Eureka服务器**:先运行一个Eureka服务(需单独创建,配置端口8761)。 2. **启动当前服务**:在IDEA中右键运行`Application`类。 3. **验证**: - 访问Eureka控制台:`http://localhost:8761`,查看服务是否注册成功。 - 测试API端点或Zuul路由。 完成后,项目将作为微服务运行在Spring Cloud生态中[^3]。 --- ### 注意事项 - **依赖版本**:确保Spring Cloud与Spring Boot版本兼容(如Hoxton.SR12 + Boot 2.3.x)。 - **图文辅助**:引用提供了IDEA界面截图,可参考其操作细节。 - **常见错误**:端口冲突或依赖缺失时,检查Maven仓库和日志。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸵鸟爸爸

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值