Spring Webflux vs Vert.x

Posted

技术标签:

【中文标题】Spring Webflux vs Vert.x【英文标题】: 【发布时间】:2018-05-22 12:46:41 【问题描述】:

我们需要开始开发一个微服务,并初步计划使用 Vert.x。随着 Springboot 2.0 的最新 Milestone 版本(包括 Reactive 支持),我们现在也在考虑将 Springboot 2.0 作为一个选项,但由于这是一个非常新的版本,我对这个版本的稳定性有些担忧。是否有人已经使用过 Spring Webflux / Reactive 支持,体验如何,实施时有任何已知问题/麻烦。欢迎任何具体的建议/建议。

【问题讨论】:

视情况而定,用测试覆盖您的服务并开始推出。继续升级...通常 Spring boot 版本非常稳定..您在谈论微服务,所以我认为它们是很好的隔离...所以选择在 Spring boot 2.0 中设计第一个服务,并设计下一个服务在别的东西... 到预生产的计划开发时间是多少?同时,这些库可能会成熟。 @AdrianMitev 我们的目标是在 4 月前进行预生产。 顺便说一句,我找不到 Springboot 2.0 的最终 GA 发布日期,有人知道确切的发布日期吗?当我最后一次检查是在 10 月时,我记得在 12 月的某个地方看到它。 @piyugupt 这是带有里程碑时间表的页面:github.com/spring-projects/spring-boot/milestones 【参考方案1】:

当您说微服务时,这意味着它将是微服务,在这种情况下,您可以混合使用(多语言),如果出现任何问题,请重写该特定服务并替换现有服务 (here)。

现在回到您最初的问题 Vert.x 和 Spring 5 都有各自的优缺点(没有灵丹妙药)。就个人而言,我更喜欢 Vert.x,因为它的简单性和按需依赖。我见过很少有 Vert.x 比 Reactive spring 更快(一点)的基准测试,原因很明显。但是 Spring 拥有巨大的社区支持和大量开箱即用的配置,(您只需注释您的类并在配置中进行一些更改,这一切都是为了产生一个服务!!!)。

您可以混合使用 spring 来编写身份验证和授权服务(例如在 spring 中实现 OAuth 2 非常容易。)然后在 Vert.x 中编写您的其他服务。同样,这些是第三人(我)在不了解您的需求的情况下无法远程决定的架构决策。

很难在其中做出选择,最好使用正确的工具来完成正确的工作,这就是微服务越来越受欢迎的原因。

ps:我写的都是我个人的经历和体会。意见可能因人而异,我并没有声称自己是百分之一百的正确。

【讨论】:

一流的答案!一直在寻找这个不知道。谢谢!

以上是关于Spring Webflux vs Vert.x的主要内容,如果未能解决你的问题,请参考以下文章

WebFlux系列WebClient VS RestTemplate

Spring Webflux:控制器返回 Mono<ResponseEntity<MyPojo>> vs Mono<MyPojo>

Spring Webflux - 03 Webflux编程模型

Spring Webflux - 03 Webflux编程模型

Spring Webflux - 03 Webflux编程模型

Spring-WebFlux使用,一文带你从0开始学明白Spring-WebFlux,学明白响应式编程