在同一主机/端口上创建多个HTTP服务器

时间:2018-08-28 22:14:20

标签: vert.x httpserver vertx-verticle

我想在我的Web服务器上运行多个非簇化的顶点。每个顶点由一个单独的进程/命令行启动,并为相同主机相同端口创建自己的HTTP服务器( vertx.createHttpServer )。有独特的路线。但是,这似乎不起作用,因为在启动一个顶点后,所有其他顶点都引发BindException“ 地址已在使用”。

作为Vert.x的新手,我只能想到两种方法来通过:

  1. 以编程方式从单个过程中部署所有顶点,并 使所有顶点使用全局路由器实例来添加它们 具体路线。
  2. 群集这些顶点并创建另一个顶点 提供一个允许设置路由和处理的网络服务器 通过集群事件总线的请求和响应。

这两种方法都会迫使我重写大部分的顶点。

还有另一种方法来解决此多服务器问题吗?

1 个答案:

答案 0 :(得分:1)

  

每个顶点由单独的进程/命令行启动并创建   他自己的HTTP服务器(vertx.createHttpServer),用于相同的主机和   同一端口

TCP连接仅允许单个进程在同一主机上的同一端口上侦听。有一些解决方法(请参阅对this question的答复),但我不确定这样做是否是最佳解决方案。

  

...用于同一主机和同一端口,具有唯一的路由

Vertx-Web提供了许多路由请求的方法。我最近使用的一种这样的方法是sub-router,它可能是您可行的解决方案。您可以配置一个“主”路由器,以针对每个所需的“唯一路由”将请求路由到另一个路由器。