Я понимаю, что в vert.x по умолчанию Verticle будет запускаться в одном и том же цикле событий каждый раз, когда нам не нужно писать потокобезопасность в нашем обработчике.
Например, если у меня запущен VerticleHttpServer -
public class HttpServerVerticle extends AbstractVerticle {
@Override
public void start() throws Exception {
vertx.createHttpServer().requestHandler(req -> {
req.response().putHeader("content-type", "text/html").end("
<html><body><h1>Hello from vert.x!</h1></body></html>");
}).listen(8080);
}
}
Гарантируется, что в любой момент мой обработчик запросов будет вызываться дважды (для 2 разных запросов) в 2 циклах событий.Поэтому мне не нужно заботиться о безопасности потоков в моем обработчике запросов.
Теперь, если я запускаю несколько экземпляров своей вертикали HttpServer -
DeploymentOptions deploymentOptions = new
DeploymentOptions().setWorker(false).setInstances(10);
vertx.deployVerticle("com.....HttpServerVerticle", deploymentOptions);
Нужно ли заботиться о безопасности потоков?Возможно, что обработчик нескольких запросов (max = 10) будет работать параллельно?