diff --git a/spring-cloud/spring-cloud-consul/pom.xml b/spring-cloud/spring-cloud-consul/pom.xml
index f7f5f84c56..4d4ac0aa01 100644
--- a/spring-cloud/spring-cloud-consul/pom.xml
+++ b/spring-cloud/spring-cloud-consul/pom.xml
@@ -12,6 +12,13 @@
spring-cloud
1.0.0-SNAPSHOT
+
+
+
+ jitpack.io
+ https://jitpack.io
+
+
@@ -25,18 +32,32 @@
spring-cloud-starter-consul-config
${spring-cloud-starter-consul.version}
-
+
+ org.springframework.boot
+ spring-boot-starter-web
+
org.springframework.boot
spring-boot-starter-test
- ${spring-boot-starter-test.version}
test
+
+ com.github.kinguinltdhk
+ leadership-consul
+ ${kinguinltdhk.version}
+
+
+ com.ecwid.consul
+ consul-api
+
+
+
- 1.3.0.RELEASE
- 1.5.10.RELEASE
+ 2.2.3.RELEASE
+ 0.3.1
+ com.baeldung.spring.cloud.consul.discovery.DiscoveryClientApplication
diff --git a/spring-cloud/spring-cloud-consul/src/main/java/com/baeldung/spring/cloud/consul/discovery/DiscoveryClientApplication.java b/spring-cloud/spring-cloud-consul/src/main/java/com/baeldung/spring/cloud/consul/discovery/DiscoveryClientApplication.java
index e01799b8d9..e27aaf09ae 100644
--- a/spring-cloud/spring-cloud-consul/src/main/java/com/baeldung/spring/cloud/consul/discovery/DiscoveryClientApplication.java
+++ b/spring-cloud/spring-cloud-consul/src/main/java/com/baeldung/spring/cloud/consul/discovery/DiscoveryClientApplication.java
@@ -11,7 +11,7 @@ import static org.springframework.boot.WebApplicationType.NONE;
public class DiscoveryClientApplication {
public static void main(String[] args) {
- new SpringApplicationBuilder(DiscoveryClientApplication.class).web(NONE)
+ new SpringApplicationBuilder(DiscoveryClientApplication.class)
.run(args);
}
diff --git a/spring-cloud/spring-cloud-consul/src/main/java/com/baeldung/spring/cloud/consul/leadership/LeadershipElection.java b/spring-cloud/spring-cloud-consul/src/main/java/com/baeldung/spring/cloud/consul/leadership/LeadershipElection.java
new file mode 100644
index 0000000000..184a1e2213
--- /dev/null
+++ b/spring-cloud/spring-cloud-consul/src/main/java/com/baeldung/spring/cloud/consul/leadership/LeadershipElection.java
@@ -0,0 +1,16 @@
+package com.baeldung.spring.cloud.consul.leadership;
+
+import java.util.concurrent.ExecutionException;
+
+import net.kinguin.leadership.consul.factory.SimpleConsulClusterFactory;
+
+public class LeadershipElection {
+ public static void main(String[] args) throws ExecutionException, InterruptedException {
+ new SimpleConsulClusterFactory()
+ .mode(SimpleConsulClusterFactory.MODE_MULTI)
+ .debug(true)
+ .build()
+ .asObservable()
+ .subscribe(i -> System.out.println(i));
+ }
+}
diff --git a/spring-cloud/spring-cloud-consul/src/main/resources/application.yml b/spring-cloud/spring-cloud-consul/src/main/resources/application.yml
index ccdc3fdeee..85cfb35685 100644
--- a/spring-cloud/spring-cloud-consul/src/main/resources/application.yml
+++ b/spring-cloud/spring-cloud-consul/src/main/resources/application.yml
@@ -11,4 +11,19 @@ spring:
enabled: true
instanceId: ${spring.application.name}:${random.value}
server:
- port: 0
\ No newline at end of file
+ port: 0
+
+cluster:
+ leader:
+ serviceName: cluster
+ serviceId: node-1
+ consul:
+ host: localhost
+ port: 8500
+ discovery:
+ enabled: false
+ session:
+ ttl: 15
+ refresh: 7
+ election:
+ envelopeTemplate: services/%s/leader
\ No newline at end of file