SpringBoot是最近幾年比較流行的web應用開發框架,它是微服務的一個開發框架。它的Web服務器內核為Tomcat或Jetty,它們作為Servlet容量來對客戶端的http/https請求進行解析。最近,spring.io又出推出一套新的服務器內核框架,它就是WebFlux,以流(stream)的方式進行客戶端請求的解析與處理。
Vertx 是另一套微服務開發框架,它是由Eclipse提供的,其服務器內核是Netty。這個與WebFlux其實是相同的。最近國內有不少朋友發文說,SpringBoot的WebFlux的性能也沒有想象的那么好,他們指出雖然Non-Blocking技術被使用了。但性能上也存在問題。我雖然沒有對他們的測試結果進行考證,但受他們的文章的啟發用SpringBoot+Vertx 3 + JDBC搭建一個項目。
整體上,這個Demo項目是SpringBoot進行整個項目的底層管理,用Vertx實現RestFul層,用Spring的Service層進行業務處理,以HIKARI進行數據庫連接池的管理,使用JdbcTemplate進行數據庫的操作,整體性能確實有不小的提高,但開發的復雜程序也有不少提高。特別是將客戶請求數據傳給Spring 的Service時,使用到了EventBus,這時候,并發性提高的同時,代碼實現的復雜性也增加了很多。
從這個Demo經歷來看,在目前應用服務器用戶較小的情況下,完全沒有必要使用Vertx進行開發,使用SpringBoot已經足夠了。
轉載于:https://blog.51cto.com/14088934/2338715