目录
- vert.x是什么?
- 为什么使用Vert.x框架?
- 有哪些关键的特性和功能?
- 是如何做到高性能的?高性能机制详解
- 简单的开发事例
- 如何使用vert.x进行优雅的异步开发?
- 性能到底如何?
- 生态及发展展望
vert.x是什么?
- 由Tim Fox于2011年创立,现由Eclipse开源组织维护,已经迭代到v4.4.1
- 基于Netty开发,为开发人员提供了“一站式”的工程解决方案
- 是一个非常轻巧的、模块化的、灵活的的框架,内核的大小约为650kB
-
采用了事件驱动机制的异步编程框架,提供了面向事件编程的API,被称为最快的java框架
vertx.jpg
为什么使用Vert.x框架?
- 互联网业务一般都需具备高可伸缩性,而异步编程模型可以显著提高系统的伸缩性
- 传统的Spring Boot等框架对异步的支持不够友好,性能较差,在对性能有要求的场景并不适用,而Project Loom又迟迟不能用
- Vert.x相对于传统的Java框架,提供了非阻塞异步编程模型,具有高性能、响应式、可扩展等特性
Note: 1. 高性能:Vert.x采用非阻塞I/O和事件循环的模型,能够在单机上支持高并发,提高系统的整体性能和吞吐量。
- 响应式:Vert.x支持异步编程模型,能够处理大量请求并快速响应。同时,Vert.x的事件总线机制可以实时地处理不同组件间的消息传递和事件通知。
- 可扩展:Vert.x支持Verticle和Worker Verticle的概念,从而可以实现组件的复用和分布式部署,从而实现系统的可扩展性。
有哪些应用场景?
构建响应式系统</br>
Vert.x适用于构建响应式、高并发、实时数据处理的系统,例如物联网、实时数据分析、机器学习、行情分析等场景。构建网络应用程序</br>
Vert.x可以用于构建各种类型的网络应用程序,包括Web应用、RESTful服务、消息队列、实时通信、游戏服务器等。
有哪些关键的特性和功能?
Vert.x特性
- 多种编程语言支持,包括Java、Scala、JavaScript、Ruby、Python、Groovy、Clojure等
- 异步无锁编程:经典的多线程编程模型能满足很多Web开发场景,但随着移动互联网并发连接数的猛增,多线程并发控制模型性能难以扩展,同时要想控制好并发锁需要较高的技巧
- 各种IO支持:目前Vert.x的异步模型已支持TCP、UDP、FileSystem、DNS、EventBus、Sockjs等;
- 分布式开发支持:Vert.x通过EventBus事件总线,可以轻松编写分布式解耦的程序,具有很好的扩展性;
- 生态体系成熟:当前已有包括Postgres、MySQL、MongoDB、Redis、Mq等常用组件
- 高效的编解码机制:能够高效的实现java对象与JSON、XML之间的相互转化,以前WEB访问的编解码