我正在嘗試運行一個阻塞代碼,比如Thread.sleep(100)模擬一個重型數據庫,其工作池大小為 Vert.x 1000。val options = DeploymentOptions().setWorker(true).setWorkerPoolSize(1000);vertx.deployVerticle(new DataBase, options)?vertx.eventBus().consumer("anAddress").handler((message: Message[String]) => { Thread.sleep(100) val lines = "teste do joca" message.reply(lines)})但是查看 Jmeter http 測試,我只有 10.1/秒的吞吐量。如何在不破壞事件循環的情況下提高性能?感謝提前!
1 回答

HUWWW
TA貢獻1874條經驗 獲得超12個贊
Worker Verticles 處理工作線程上的事件,但單個實例只能在給定時間點處理一個事件。因此,如果您想利用所有實例,則應部署與工作線程一樣多的實例:
val options = DeploymentOptions()
.setWorker(true)
.setInstances(1000)
.setWorkerPoolSize(1000);
vertx.deployVerticle(() -> new DataBase(), options);
請注意,deploy這里采用一個Supplier而不是單個 Verticle 實例。
添加回答
舉報
0/150
提交
取消