最近了解到 vert.x ,它主打 高性能,低占用,生态丰富 ,宣称可全面替代 Spring 。 作为以面 Spring-CRUD-Coder, 我啪的一声就站起来了:“恐怖如斯!!!”
然后我学习了一下 vert.x 的官方文档和 demo 。由于初学,也没有实际应用,关于其低占用,高内存的优势没啥发言权。就说说实际写的感受和疑惑吧:
1
az467 2022-04-27 19:10:06 +08:00 5
1. 是的,你没感觉错,Vert.x 最初叫 Node.x 。
2/3. 所以,干脆用 Quarkus 算了。 |
2
Oktfolio 2022-04-27 22:06:43 +08:00 1
加个 guice
|
3
Leviathann 2022-04-27 22:31:15 +08:00 1
vertx 是底层库 toolkit ,不是框架级的东西,在此之上有 quarkus
|
4
micean 2022-04-27 22:34:29 +08:00 via Android 1
vertx 对于普通的 web 业务在性能上可能有一毛钱优势,玩 vertx 的关键在于理解他的 verticle 是怎么跑在两种线程池上又如何做到线程安全的,否则恐怕会把并发业务跑在单线程上(当年自己踩的坑)
|
5
yazinnnn 2022-04-27 22:47:24 +08:00 1
vertx 通过 verticle 和 service proxy 解耦,quarkus 是这么实现的,spring 的生态几乎无法迁移到 vertx ,想迁移就迁到 quarkus 吧
|
6
byte10 2022-04-27 22:49:21 +08:00 1
vert.x 有几个特点,天生分布式,还有异步高性能,actor 模型,一般不会出现多线程安全问题 。这玩意适合写 IO 高性能中间件类的,比如 mqtt ,网关啊等,反正不太适合做业务类的。反正我很喜欢,等协程出来,vert.x 应该会得到大量的应用,否则异步编程劝退一大波小白。
|
7
BBCCBB 2022-04-27 22:49:25 +08:00 1
加个 guice,
理解下 netty 的 io+线程模型或者 nodejs 的 io 模型. |
8
sparky 2022-04-27 23:08:47 +08:00 via Android 1
servicecombo 了解一下
|
10
statumer 2022-04-28 00:34:05 +08:00 via iPhone 1
vertx 是 Java 异步网络编程生态的代名词,但是 Java 没协程,所以编程体验其实还不如 js 。
|
11
Cbdy 2022-04-28 00:36:22 +08:00 via Android 1
Spring 可以和 Vert.x 一起用,不冲突
|
16
season8 OP |
17
season8 OP @Cbdy 一起使用的话, vert.x 和 spring 分工 会不会很杂? 主要是使用 vert.x 的 actor 模型吗?
|
18
yazinnnn 2022-04-28 11:37:45 +08:00 1
spring 95%的场景都是 mvc,你直接用 vertx 的 future 的话连结果都拿不出来,想在同步模型中使用 vertx future 结果,要么转换成 reactor/mutiny/CompletionStage,然后 block/await,要么直接用 coroutine,runBlocking{ future.await }
无论哪种都比较麻烦 |
20
dreamlike 2022-04-28 12:37:01 +08:00 via Android
"它主打 高性能,低占用,生态丰富 ,宣称可全面替代 Spring" 一直没这么说过,这两个是完全的不同的东西,spring 是大而全的框架生态,vertx 只是一个 io 工具包,提供了基于 netty 生态中的缺少的各种 client 。真正和 spring 对比的是 quarkus 。
vertx 写 web 还是推荐使用 kotlin+协程去转异步风格到同步风格,java 语法对异步原生支持不太好,除非 loom release 而且把 continuation api 放出来,不然保持性能的前提下 java 转同步风格很困难 关于你觉得写的起来和 node 一样 其实 node vertx gin axum 这种的组织结构都是这样的 如果你想的话还是要遵循 vertical 这种部署模式以享受 actor 模型带来的天然分布式和线程封闭的优点,如果觉得有点困难也可以主动忽略掉这种特性 |
21
iseki 2022-04-28 14:00:01 +08:00
感觉这东西的竞争对手并不是 Spring···这不是一种东西啊
|
23
haah 2022-04-28 16:53:42 +08:00
“高性能,低占用,生态丰富”,这与编程语言有关系?
|
24
LeegoYih 2022-04-28 17:40:35 +08:00
vert.x 和 Kotlin 一起用还挺香的,写过一个用户积分同步的服务,但是真的不适合复杂业务开发。
|