28

在过去的几天里,我一直在阅读 Vert.x 文档。我知道 Vert.x 是多语言、单线程、非阻塞 IO、模块化架构、高可扩展性。

tomcat 和 Vert.x 之间还有其他主要区别吗?

还有什么时候应该使用tomcat,什么时候应该使用Vert.x?

4

2 回答 2

41

Tomcat 是一个 servlet 容器,因此它为您提供了一个平台,可帮助您开发和部署基于 HTTP 的应用程序,例如网站或 Web 服务。

相反,Vert.x 可以帮助您开发和部署任何类型的异步应用程序。的确,现代版本的 Tomcat 支持异步 servlet,但 Vert.x 带有大量用户友好的异步 API 以及其他优点:

  • 完整的文件系统异步 API
  • TCP(服务器和客户端)
  • UDP(服务器和客户端)
  • HTTP(S)(服务器和客户端)
  • 共享数据服务(在多语言模块之间共享对象)
  • HA 和集群
  • 集群范围的消息传递(事件循环)
  • 事件总线桥(通过 SockJS 将事件循环扩展到浏览器)
  • 不断增长的 Vert.x 模块生态系统
  • 在遗留代码中嵌入 Vert.x 的可能性
  • 利用现有丰富而稳固的 Java 库生态系统(Vert.x 在 JVM 上运行,与 Node.js 不同)

我个人认为学习 Vert.x 非常有用。在工作中,我成功地重用了相同的知识来实现​​三种截然不同的产品:零拷贝超快 Redis 代理、JPA 支持的 REST API 和反应式单页 Web 应用程序。

看一下示例代码,它非常简单,样板代码接近于零。

还有一件事:你在哪里读到 Vert.x 是单线程的?这不是真的!Vert.x 有一个非常简洁的并发模型,可以确保所有内核都被平等地使用(再次与 Node.js 不同)。

享受!

于 2014-06-26T22:59:38.740 回答
5

Vert.x HTTP 服务器允许你同时监听多个端口。此外,如果您想将 HTTP 服务器与 http 客户端或其他任何东西结合起来,它的并发模型比任何基于线程池的方法都要好得多。它的性能也好得多。

于 2018-04-09T05:25:23.613 回答