改进 Quarkus 扩展命名以提高清晰度
Quarkus 致力于为 JVM 开发者提供现代化、高效且富有成效的开发体验。我们致力于让您更轻松地构建云原生应用程序,无论您使用的是传统的阻塞式、响应式还是虚拟线程编程模型。
历史上,Quarkus 在多个扩展名称中使用了“reactive”一词,以表示其对非阻塞、事件驱动编程的额外支持。
然而,我们发现这种术语给用户带来了许多混淆和误解。许多用户错误地认为使用这些“reactive”扩展会迫使他们采用响应式编程,尽管 Quarkus 默认推荐应用程序使用传统的阻塞式编程模型,只有在有需求时(如高并发需求或需要编排许多异步任务)才使用响应式编程模型。
随着 Java 21 中虚拟线程(Virtual Threads)的正式发布,传统、响应式以及现在的虚拟线程编程模型之间的区别变得更加重要。
我们的解决方案:新的命名策略
为了解决这个问题并更有效地指导用户,我们决定修订某些扩展的命名约定。此更改旨在阐明这些 Quarkus 扩展的功能和灵活性,让您更轻松地为项目选择合适的扩展。
此更改将于 Quarkus 3.9 版本生效。
以下是更改摘要
-
Quarkus RESTEasy Reactive 变更为 Quarkus REST,强调其通用性,超越了仅限于响应式编程的范畴。
-
Quarkus SmallRye Reactive Messaging 现更名为 Quarkus Messaging,表明其更广泛的使用场景。
-
那些本质上推动响应式编程模型的扩展,例如 Quarkus Hibernate Reactive,将保留“reactive”术语。
-
Quarkus REST Client Reactive 简化为 Quarkus REST Client,在更通用的“REST”目录下统一命名。
-
其他几个扩展也为保持一致性进行了更名。
Quarkus REST、Quarkus Messaging 和 Quarkus REST Client 在底层仍然利用响应式引擎以实现效率和性能。在用户层面,这是一个实现细节。
这些扩展的配置属性也已重命名,以引用新名称。
对用户的影响
这些更改旨在明确说明,在使用这些扩展时,您并不局限于响应式编程。无论您偏爱传统的阻塞式方法、响应式编程还是虚拟线程,Quarkus 都能满足您的需求。
对于大多数项目,此重命名不应要求进行更改,但对于那些使用了 `quarkus-rest-client` 的项目,可能需要在依赖项中进行一些调整。我们致力于使此过渡尽可能顺利。以下是一些帮助您适应的关键点:
-
Maven 迁移:我们为重命名的扩展引入了 Maven 迁移,在您更新依赖项时将引导您使用新名称。
-
配置回退:旧的配置属性将继续工作。但建议迁移到新的属性。
-
工具更新:Quarkus CLI 将默认在新项目中 all 使用新名称,但仍兼容旧名称。
-
Quarkus 更新:`quarkus update` 提供了食谱,帮助您在相关时执行更新/重命名(包括配置属性)。
-
文档:我们的文档已更新以反映新的扩展名称,使您更容易为项目找到合适的扩展。
-
迁移指南:一如既往,我们的迁移指南包含所有详细信息。但是,我们强烈建议使用 `quarkus update` 来迁移到新名称。
对于现有项目,我们建议您继续使用旧名称,如果您想保持与旧版本 Quarkus 的兼容性——否则,请按照自己的节奏升级到新名称。
对于新项目,我们将默认使用并推荐新名称。