Spring Boot 4.1 中的 gRPC 支持:你需要了解的内容

Spring Boot 4.1 中的 gRPC 支持:你需要了解的内容

了解新功能与变更

Spring Boot 4.1 于 2026 年 6 月 10 日正式发布。其最重要的更新之一是将 gRPC 支持直接集成到框架中。对于在微服务架构中从事服务间通信工作的开发者来说,这项变化至关重要。让我们探索一下这对你意味着什么。

用于 gRPC 的新 Starter

使用 Spring Boot 4.1,开发者现在可以使用专门为 gRPC 设计的新 starter。这些 starter 简化了配置过程。以下是你可以使用的新 starter:

  • org.springframework.boot:spring-boot-starter-grpc-server
  • org.springframework.boot:spring-boot-starter-grpc-client
  • org.springframework.boot:spring-boot-starter-grpc-server-test
  • org.springframework.boot:spring-boot-starter-grpc-client-test

这些替代了较旧的 spring-grpc starter,后者现已被弃用。该 spring-grpc 项目继续存在,提供带有如下注解的编程模型: @GrpcService@ImportGrpcClients.

属性重命名

作为迁移到 Spring Boot 4.1 的一部分,若干配置属性已被重命名。以下是一些关键变更:

  • spring.grpc.client.channels.<name>.address 现为 spring.grpc.client.channel.<name>.target
  • spring.grpc.client.channels.<name>.default-deadline 现为 spring.grpc.client.channel.<name>.default.deadline
  • spring.grpc.server.keep-alive.* 现为 spring.grpc.server.keepalive.*
  • spring.grpc.server.max-inbound-message-size 现为 spring.grpc.server.inbound.message.max-size
  • spring.grpc.server.address (之前包含主机和端口)现在拆分为 spring.grpc.server.address (仅限地址)和 spring.grpc.server.port
  • 健康度 actuator 属性已被移除;健康度现在配置在 spring.grpc.server.health.*

这些变更旨在提供更清晰、更一致的配置体验。

自动配置迁移

gRPC 的自动配置已完全迁移到 Spring Boot 4.1。这意味着开发者不再需要管理独立的 gRPC 配置。发布说明中强调了此项迁移,针对 spring-grpc 1.1.0,其中指出:

"1.1.0 中的主要变更在于将自动配置迁移至 Spring Boot 4.1.0。"

性能指标

为了了解在 Spring Boot 4.1 中使用 gRPC 的性能优势,本文对一元 REST(使用 Spring MVC)与一元 gRPC 进行了对比。测试是在相同条件下使用共享数据库进行的。以下是结果:

  • REST:每秒 1,613 次请求(req/s),中位数响应时间为 7.0 ms。
  • gRPC:每秒 1,926 次请求(req/s),中位数响应时间为 7.9 ms。

这表明与 REST 相比,gRPC 提供了约 19% 的更高吞吐量,同时延迟更低。

结论

将 gRPC 集成到 Spring Boot 4.1 中使开发者更容易构建高效的微服务。凭借新的 starter 和简化后的配置,采用 gRPC 比以往任何时候都更加简单直接。

优点

  • 简化了 gRPC 在 Spring Boot 应用程序中的集成。
  • 与传统的 REST 相比,提升了性能指标。
  • 更清晰的属性命名和配置结构。

缺点

  • 较旧的 spring-grpc starter 已被弃用,现有的项目可能需要进行迁移。
  • 对于不熟悉 gRPC 概念的开发者来说存在一定的学习曲线。

注意事项

本文仅用于教育目的。在依赖这些内容之前,请确保使用你具体的配置替换任何占位符值,并针对原始来源核实所有声明。

常见问题解答

  • 什么是 gRPC? — gRPC 是一个现代开源远程过程调用(RPC)框架,可帮助开发者构建高效且可扩展的 API。
  • 在 Spring Boot 中使用 gRPC 有什么好处? — gRPC 在 Spring Boot 应用程序中提供了更高的性能、更低的延迟以及更简单直接的集成流程。
  • 如何迁移到 Spring Boot 4.1? — 要进行迁移,请更新依赖项以使用新的 gRPC starter,并按照迁移指南中的说明调整配置属性。
  • REST 和 gRPC 之间有什么区别? — REST 使用标准 HTTP 方法且基于文本,而 gRPC 使用 HTTP/2 进行传输,这使得它在服务间通信中效率更高。
  • 我还能继续使用旧的 spring-grpc starter 吗? — 虽然旧的 starter 已被弃用,但它们对于锁定在 Spring Boot 4.0 的项目仍然可用。不过,建议迁移到新的 starter。
  • 是否有针对 gRPC 的性能基准测试? — 是的,基准测试显示,与传统 REST API 相比,gRPC 可以提供显著更高的吞吐量和更低的延迟。

标签

#springboot #grpc #java #microservices #programming #softwaredevelopment #webdevelopment #performance

Free field guide

Docker Security Checklist

Lock down your containers from build to runtime — 29 practical controls covering images, runtime flags, secrets, and the daemon. Enter your email — you'll get the PDF instantly, plus new posts on Docker, Linux & security.