Vertx 簡單介紹


Vert.x 最大的特點在於異步(底層基於Netty),通過事件循環(EventLoop)來調起存儲在異步任務隊列(CallBackQueue)中的任務,大大降低了傳統阻塞模型中線程對操作系統的開銷。異步模型能夠很大程度的提高系統的並發量。

1、Vertx能做什么

Java能做的,Vert.x 都能做

1) Web 開發,支持路由,Session管理,模板等,不需要容器。

2)TCP/UDP開發,Vert.x 底層基於Netty,提供了豐富的IO類庫,支持多種網絡應用開發。

3)提供對WebSocket的支持

4)Event Bus(事件總線)是Vert.x的神經系統,通過事件總線可以實現分布式消息,遠程方法調用等。正式因為Event Bus,Vert.x 可以非常便捷的開發微服務應用。

5)支持主流的數據和消息訪問

redis,mongodb, rabbitmq, kafka等。

6)分布式鎖,分布式計數器,分布式map的支持。

 

2、什么是Vert.x

簡單的說,Vert.x 就是一堆jar包, 提供了一些列編程API接口,通過這些API,可以實現異步編程。

Vert.x 可以開發Web應用,但Vert.x 不僅僅是一個Web開發框架,他更像Spring,是一個技術棧,或者說是一個Vert.x生態體系。

(Vert.x生態可以查看https://github.com/vert-x3/vertx-awesome),在這個體系中,Vert.x 只是提供了Web開發的能力,下面對Vertx和Spring做一個對比:

項目  Spring Vertx
核心框架 spring-core  vertx-core
Web開發 spring-webmvc vertx-web
jdbc框架 spring-jdbc vertx-jdbc-client
redis spring-data-redis  vertx-redis-client
微服務  spring-cloud vertx-hazelcast

 

 

 

 

 

 

 

spring和Vertx的區別,Spring的操作是同步的,Vertx的操作時異步的。異步帶來了更高的性能,但同時也帶來了編碼和調式的復雜度。

 

絕大部分企業可能都在使用SpringMVC,Vert.x這個Web層框架,卻很少有人知道,但它卻是僅次於SpringMC排名第二的Web層框架

 

 

3、Vert.x的一些優勢

1) 異步非阻塞

使用上和ajax非常像。

2)Vertx支持多種編程語言

在Vert.x 上,可以使用JavaScript, Java, Scala, Ruby, Kotlin等等。

3) 不依賴中間件

Vert.x 的底層依賴Netty, 因此在使用Vert.x構建Web項目時,不依賴中間件,向Node一樣,可以直接創建一個HttpServer。

4) 完善的生態

Vert.x 和Spring的對比,有一種MacOS和Windows對比的感覺。

5)為微服務而生

 

4、Vert.x 技術體系

Vert.x有完善的生態,具體可查看https://github.com/vert-x3/vertx-awesome

1) 核心模塊

Vert.x核心模塊包含一些基礎的功能,如HTTP,TCP,文件系統訪問,EventBus、WebSocket、延時與重復執行、緩存等其他基礎的功能,你可以在你自己的應用程序中直接使用。可以通過vertx-core模塊引用即可。

2)Web模塊

Vert.x Web是一個工具集,雖然核心模塊提供了HTTP的支持,但是要開發復雜的Web應用,還需要路由、Session、請求數據讀取、Rest支持等等還需要Web模塊,這里提供了上述的這些功能的API,便於開發。

除了對Web服務的開發以外,還提供了對Web客戶端請求的支持,通過vertx-web-client即可方便的訪問HTTP服務。有朋友可能會有疑惑,我明明可以使用JDK提供的URL來請求HTTP服務啊。使用Vert.x一定要注意,Vert.x是一個異步框架,請求HTTP服務是一個耗時操作,所有的耗時,都會阻塞EventBus,導致整體性能被拖垮,因此,對於請求Web服務,一定要使用Vert.x提供的vertx-web-client模塊

3)數據訪問模塊

Vert.x提供了對關系型數據庫、NoSQL、消息中間件的支持,傳統的客戶端因為是阻塞的,會嚴重影響系統的性能,因此Vert.x提供了對以上客戶端的異步支持。具體支持的數據訪問如下:

MongoDB client,JDBC client,SQL common,Redis client,MySQL/PostgreSQLclient

4)Reactive響應式編程

5)整合其他模塊

6)認證與授權

7)微服務

Vert.x提供多個組件構建基於微服務的應用程序。

比如服務發現(Vert.x Service Discovery)、斷路器(Vert.x Circuit Breaker)、配置中心(Vert.x Config)等

 

參考: https://blog.csdn.net/king_kgh/article/details/80772657

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM