🎧 Listen to this article: हिंदी · English · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · ଓଡ଼ିଆ · 日本語 · 中文
🌍 Read this in your language: हिंदी · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · ଓଡ଼ିଆ · 日本語 · 中文
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-serverorg.springframework.boot:spring-boot-starter-grpc-clientorg.springframework.boot:spring-boot-starter-grpc-server-testorg.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>.targetspring.grpc.client.channels.<name>.default-deadline现为spring.grpc.client.channel.<name>.default.deadlinespring.grpc.server.keep-alive.*现为spring.grpc.server.keepalive.*spring.grpc.server.max-inbound-message-size现为spring.grpc.server.inbound.message.max-sizespring.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-grpcstarter 已被弃用,现有的项目可能需要进行迁移。 - 对于不熟悉 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
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.
Free. No spam — unsubscribe in one click.


Responses
Sign in to leave a response.