diff --git a/src/main/java/io/vertx/core/impl/DeploymentManager.java b/src/main/java/io/vertx/core/impl/DeploymentManager.java index bb676677012..af548bc7e21 100644 --- a/src/main/java/io/vertx/core/impl/DeploymentManager.java +++ b/src/main/java/io/vertx/core/impl/DeploymentManager.java @@ -29,6 +29,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; import java.util.function.Function; /** @@ -38,6 +39,8 @@ public class DeploymentManager { private static final Logger log = LoggerFactory.getLogger(DeploymentManager.class); + private static final AtomicLong nextId = new AtomicLong(); + private final VertxImpl vertx; private final Map deployments = new ConcurrentHashMap<>(); @@ -46,7 +49,11 @@ public DeploymentManager(VertxImpl vertx) { } private String generateDeploymentID() { - return UUID.randomUUID().toString(); + if (vertx.isClustered() && vertx.haManager()!=null) { + // in this case we need a globally unique id + return UUID.randomUUID().toString(); + } + return Long.valueOf(nextId.incrementAndGet()).toString(); } public Future deployVerticle(Callable verticleSupplier, DeploymentOptions options) {