Inside Vert.x. Comparison with Node.js. | Architects Zone
壹文測試如下:
下圖是靜態文件,差別更大
Vert.x分Java Ruby和Groovy幾個版本,其中Vert.x.java似乎是最快的。
Event-based Programming Model
如同Node.js Vert.x提供壹個事件驅動編程模型,使用Vert.x作為服務器時,程序員只要編寫事件處理器event handler即可. 當TCP socket有數據時,event handler理解被創建調用,另外它還可以在以下幾種情況激活: '當事件總線Event Bus接受到消息時,' '當接收到HTTP消息時,' 當壹個連接斷開時',' '當計時器超時時.'
Event Loops
Vert.x 內部有壹個線程池. Vert.x會根據CPU核數匹配線程此的數目。
每個線程執行壹個Event Loop. Event Loop能確保事件在循環中輪回. 例如,它會確證socket是否有數據可讀事件,如果有, Vert.x 將調用相應的event handler 。
Message Passing
壹個Vert.x中有很多 Verticles, Verticles之間使用事件總線Event Bus聯系. Verticle類似 Erlang的actor模型.
Shared data
Message passing消息傳遞當然有用,但是它並不總是並發環境最好的,緩存受到普遍使用, Vert.x 提供壹個分享的緩存Map.
面對Vert.x和Scala/Erlang的Actor以及撲面而來的EDA , Java領域王者Spring再也坐不住了,終於出手推出Reactor。