Vert.x IO 阻塞操作性能

我正在尝试运行一个阻塞代码,比如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/秒的吞吐量。


如何在不破坏事件循环的情况下提高性能?


感谢提前!


慕侠2389804
浏览 157回答 1
1回答

HUWWW

Worker Verticles 处理工作线程上的事件,但单个实例只能在给定时间点处理一个事件。因此,如果您想利用所有实例,则应部署与工作线程一样多的实例:val options = DeploymentOptions()  .setWorker(true)  .setInstances(1000)  .setWorkerPoolSize(1000);vertx.deployVerticle(() -> new DataBase(), options);请注意,deploy这里采用一个Supplier而不是单个 Verticle 实例。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java