Как применить параллельную обработку к рабочим вершинам с помощью vert.x

В документах Vert.x упоминается следующее: по умолчанию экземпляр рабочей вершины будет выполняться только одним потоком одновременно (он не является параллельным).

Это означает, что если у меня есть Verticle с 20 экземплярами, например:

 vertx.deployVerticle(PotEventConsumerVerticle.class.getName(),
                new DeploymentOptions()
                        .setWorker(true)
                        .setInstances(20)

Я не смогу получить одновременную обработку запросов?

как я могу одновременно обрабатывать эту информацию? Я видел, что многопоточные рабочие версии могут быть вариантом, но в документе Vert.x упоминается, что следует избегать использования этого параметра всеми способами.


person rayman    schedule 30.11.2018    source источник
comment
Использование многопоточных рабочих вершин эквивалентно использованию executeBlocking с ordered=false (задачи не ставятся в очередь и могут выполняться одновременно, если они разделяют состояние, они будут обращаться к этому состоянию одновременно)   -  person maslick    schedule 30.11.2018


Ответы (1)


Если вы развернете 20 экземпляров рабочих вертикалей, максимальный параллелизм будет 20.

Каждый экземпляр будет обрабатывать события одно за другим, но в целом 20 экземпляров могут обрабатывать 20 событий параллельно.

person tsegismont    schedule 01.12.2018