Vert.x(vertx)入門資料

1.vert.x簡介

vert.x 採用類似 Node.js 的 eventloop callback 機制,優勢是 Eventloop 是單線程場景下幾乎是最快的併發解決方案,但也需要周邊生態的支持,比如 DbClient/HttpClient 這些跟 IO 打交道的 API 需要支持異步回調的風格,社區乾脆就整合或者自己實現了。依賴注入的類庫可以用 Guice,整體啓動時間大概是同規模 spring boot 工程的四分之一左右,基準內存佔用少一半。

Vert.x底層通信框架依賴於Netty,並封裝了對Http協議的支持,因此可以非常方便的進行Web開發,且不依賴於任何中間件。不依賴中間件,編程會變得非常靈活,定製性非常強,安全性也會得到一定層度的提高。

2.優勢

  • Vert.x的第一個優勢就是這是一個異步非阻塞框架
  • Vertx支持多種編程語言
  • 不依賴中間件:Vert.x的底層依賴Netty,因此在使用Vert.x構建Web項目時,不依賴中間件
  • 完善的生態
    Vert.x和Spring的對比,有一種使用MacOS和Windows對比的感覺。Vert.x和龐大的Spring家族體系不同,Vert.x提供數據庫操作,Redis操作,Web客戶端操作,NoSQL數據庫的一些操作等常用的結構,很清新,很簡潔,但足夠使用
  • 爲微服務而生
    Vert .x提供了各種組件來構建基於微服務的應用程序。通過EventBus可以非常容易的進行服務之間的交互。並且提供了HAZELCAST來實現分佈式。

3.web服務選型

對於實現一個簡單的web服務,有很多種選擇,簡單劃爲三種

  • 這是使用最多的一種,也是很多的Java開發者可能最先想到的,就是使用Java中間件來實現,只要下載一個Tomcat,再編寫個web項目就可以對外提供Web服務。這種方式我們完全不需要考慮線程的交互,不需要考慮網絡協議,只需要關注業務邏輯,可以說是一種全包的形式。
  • 使用Java原生的Socket或者NIO來實現,但這種方式比較複雜,對編程功底要求最高,而且自己實現很難保證性能和穩定性。這種方式完全需要手動處理,很少會使用這種方式來實現HTTPServer,可以說這是最爲原始形式。
  • 介於全包和原始形式之間,就是用第三方的框架來實現,比如Vertx或者偏底層的Netty。你可以利用框架封裝的API簡單的創建一個HttpServer,並不需要關注底層的通信協議。這種方式更爲靈活,一般來講性能也更高,並且不依賴中間件。

4.入門教程

自己寫一個Demo:

系列教程:

一個能跑起來的例子:

官方各類示例代碼:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章