java - Vert.x 代理服务 - 处理不同机器上的路由

标签 java proxy vert.x

我有一个带有 2 个端点的网络服务器,我想在不同的机器上处理它们。它们是独立的,更新其中一个时我不想重新启动另一个。

    Router router = Router.router(vertx);
    router.route("/api*").handler(BodyHandler.create());
    router.post("/api/end_point_1").handler(new Handler1());
    router.post("/api/end_point_2").handler(new Handler2());

如何在 Vert.x 中实现这一目标?我一直在读Vert.x Service Proxy 但我不太清楚如何将它应用到 Router 上。

最佳答案

您正在寻找的称为 Vertx 集群。

你的处理程序看起来像这样:

router.post("/api/end_point_1").handler(req -> {
   // Extract data from request
   // Package it into an object

   // Send it over EventBus
   vertx.eventBus().send("event1", data);
});

现在在单独的应用程序中创建另一个 verticle,它应该执行以下操作:

vertx.eventBus().consumer("event1");
    consumer.handler(o -> {
        System.out.println("Got message" + o.body());           
    });

现在要运行这些单独的 Jars,请遵循以下指南:http://vertx.io/docs/vertx-hazelcast/java/

关于java - Vert.x 代理服务 - 处理不同机器上的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46411666/

相关文章:

java - 从原始资源文本文件中读取

java - 没有为参数 [io.vertx.ext.unit.TestContext arg0] 注册 ParameterResolver

java - Java 中的数组洗牌

proxy - 为什么SpringBoot 2.0之后默认选择CGLIB代理

eclipse - 如何在 Windows 上为 headless Eclipse 应用程序设置代理配置

git Push Heroku 大师。代理背后的错误

javascript - 用于推送通知的 Node.js 或 Vert.x

java - Veris.x 3.9.4上的Redis连接丢失

java - 主线程异常 : Unable to locate an element with the x path expression

java - 如何像Javascript中的Promise一样检测Retrofit上的所有异步操作是否完成?