Vert.x是用於在JVM上構建被動應用程序的工具包。Vertx縮放每個線程的實例數
我想使用vertx來實現基於JVM的可自動伸縮的RESTful後端API。
到目前爲止,我從文檔中發現,默認情況下需要使用機器內核的數量,假設您有N個內核併爲每個內核創建N個線程,每個線程都是一個事件總線,每個線程都是線程包含vertx實例。 問題是,Vertx如何控制實例的數量?基於負載壓力?
關於控制運行給定線程的Verticles數量,我仍然沒有得到。 請幫助清除此事。 假設該機擁有4個核心,我已經寫了延長爲AbstractVerticle兩類:
1)讓一個有些DB數據檢索(讓我們獵犬調用或「R」)
2)另一個假設一些轉換器(姑且稱之爲轉換器或 「C」)
現在我vertx運行或編譯和運行:
$ Java的罐子retriever.jar
$ Java的罐子converter.jar
因此,由於我們有4個內核,所以在開始時,Vertx將爲每個內核創建4個線程。
問題#1:
我們有多少獵犬&轉換器實例都可以在默認情況下每個線程?我猜這是每個線程一個實例? 對不對?所以我們共有4個核心,共有4個獵犬和4個實例。轉換器?正確?
問題#2:
在增加與增加的呼叫數來RETRIEVER( 「R」)和COVERTER( 「C」) 負載壓力的情況下(從1.000至1.000.000呼叫) Vertx會自動管理處理增加到我們系統的呼叫數量所需的「R」和「C」實例的數量嗎?
在計算器上有類似的問題一個問題: Can I set a capacity on the Vert.x HTTP request queue?
喬丹Halterman建議:「還請注意,您可以擴展到多個verticle情況下,您的HTTP服務器以處理更多的請求。在這種情況下,你可以使用靜態變量或共享數據在實例間共享信號量。「
問題#3:
但你怎麼究竟擴展您的verticle實例來處理更多的請求?我無法在文檔中找到它。
我很感謝您的幫助!
謝謝!那回答了我的問題!基於負載壓力的自動縮放怎麼樣?還是有一個衡量標準,可以瞭解每個Verticle需要多少內存,以便可以計算出可以運行多少個Verticle? – JavaJedi
沒有度量可以告訴你一個Verticle需要多少內存。通常您會執行負載測試來確定應用程序可以處理多少流量,而不會影響延遲。然後,您可以在安裝應用程序的同時部署儘可能多的機器並使用負載平衡器。 – tsegismont