我正在使用 vertx 创建一个简单的微服务,当我启动服务器时,它仅在可用的事件线程为 12 时创建一个事件线程。
我启动服务器的代码是
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
int processorCounts = Runtime.getRuntime().availableProcessors();
DeploymentOptions options = new DeploymentOptions().setInstances(processorCounts);
vertx.deployVerticle( HttpRouter.class.getName(),options);
}
我的 http 路由器看起来像这样
@Override
public void start() throws Exception {
super.start();
Router router = Router.router(vertx);
router.get("/").handler(event -> {
event.response().end("Hello World");
});
vertx.createHttpServer().requestHandler(router::accept).listen(8001);
}
最佳答案
你们的测试流程是怎样的?我假设您打开了浏览器并在同一页面上点击刷新。那么是的,同一个 verticle 实例将处理请求。原因是 Vert.x 负载平衡 Verticle 实例之间的连接,而不是请求。
打开不同的浏览器,您应该会看到不同的事件循环名称。
关于java - Vertx http 服务器仅创建一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53251493/