Vertex Websocket:负载平衡

Vertex Websocket:负载平衡,websocket,load-balancing,vert.x,Websocket,Load Balancing,Vert.x,我正在开发一个系统,在这个系统中,我使用web套接字向服务器发送消息。为此,我使用vertx(不带Rx)web sockets客户机和多个Verticle,消息存储在一个内部队列中。我希望从消息队列中退出队列并提交到负载最小的垂直队列。为了识别负载最小的垂直体,我计划使用接收到的ack消息数与发送的消息数的比率。我知道VertxWeb套接字本质上是异步的。但是,是否有使用提供的任何处理程序来解析指示消息已到达服务器的响应的规定。 请注意:通信是单向的,即仅从客户端到服务器,服务器不在vertx上

我正在开发一个系统,在这个系统中,我使用web套接字向服务器发送消息。为此,我使用vertx(不带Rx)web sockets客户机和多个Verticle,消息存储在一个内部队列中。我希望从消息队列中退出队列并提交到负载最小的垂直队列。为了识别负载最小的垂直体,我计划使用接收到的ack消息数与发送的消息数的比率。我知道VertxWeb套接字本质上是异步的。但是,是否有使用提供的任何处理程序来解析指示消息已到达服务器的响应的规定。


请注意:通信是单向的,即仅从客户端到服务器,服务器不在vertx上,它使用纯netty
提前感谢。

您可以结合使用SharedData和常规处理程序:

this.vertx.createHttpServer().websocketHandler(ws -> {
  ws.handler(data -> {
    this.vertx.sharedData().getCounter(this.deploymentID(), (c) -> {
      c.result().incrementAndGet((dummy) -> {});
    });
  });
});
这将在每次传入新的WebSocket请求时增加特定垂直的原子计数器

现在,您可以使用
vertx.deploymentIDs()获取所有部署ID


剩下的就是迭代这些,收集计数器,然后得到最小的计数器。

Alexey:我使用的是web套接字客户端,我需要知道套接字服务器何时收到客户端发送的消息,或者至少客户端何时成功发送。