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

Is it possible to deploy HTTP handlers from different verticles in Vert.x

来自一本书 "A gentle guide to asynchronous programming with Eclipse Vert.x for Java developers" I know 如何从单个 Verticle 在 Vert.x 中部署 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 -> { ... });

这一切都很好,但稍后我需要在同一个class中定义getRootpostRoot方法(当然我可以在这里使用不同的class)并且"register"这些功能在、主"HTTP orchestration verticle"路由器中。这些功能可以使用事件总线并调用其他 Verticles,但注册阶段似乎是这里的瓶颈:如果我需要处理几十个/数百个/数千个 URL 怎么办?此方法无法扩展。

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

您不能将路由器配置拆分到不同的 Verticles。

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