是否可以在Vert.x中从不同的Verticle部署HTTP处理程序

时间:2017-12-09 23:03:35

标签: java routes vert.x

来自一本书"使用Eclipse Vert.x为Java开发人员进行异步编程的温和指南" I know如何在Vert.x中从单个Verticle部署HTTP处理程序:

HttpServer server = vertx.createHttpServer();
Router router = Router.router(vertx);

router.get("/").handler(this::getRoot);
router.post("/").handler(this::postRoot);

server
  .requestHandler(router::accept)
  .listen(portNumber, ar -> { ... });

这一切都很棒但后来我需要在同一个类中定义getRootpostRoot方法(当然我可以在这里使用不同的类)和"注册"这些功能在,主要" HTTP编排Verticle"中的路由器中。这些函数可以使用事件总线并调用其他Verticle,但注册阶段似乎是一个瓶颈:如果我需要处理几十个/几百个/几千个URL怎么办?这个apprioach不会扩展。

有没有办法在Vert.x中的多个Verticle之间拆分HTTP路由器配置,所以我可以在不同的类中实现我的逻辑,而无需在其他地方注册它?

1 个答案:

答案 0 :(得分:3)

您无法在不同的Verticle上拆分路由器配置。

如果您有许多处理程序,请使用Sub-Routers