java - Vertx http 服务器仅创建一个实例

标签 java vert.x

我正在使用 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/

相关文章:

java - Java 中解析 JSON 的最新方法是什么?

java - 在 Struts 1.2 的 'execute' 中调用不同的方法

javascript - 如何访问gmail API?

java - 在 verticle vert.x 中实例化类的危险

java - boolean 字段的 JSON Post 请求默认发送 false

java - 如何设置 vector 资源的颜色?

javascript - SOCKJS 对 SOCKET_CREATED 事件的回复

java - 使用 Java 创建 SockJS 服务器

java - 使用 vertx-jdbc 将 BigDecimal 插入数据库

java - for 循环中的输入对话不起作用?