OperationException(statusCode=500, statusMessage='Internal Server Error', statusContent='rpc error making call: No cluster leader')

Viewed 447

I am using Consul as my register center, now when the client spring boot application(spring-cloud-starter-consul-discovery version 2.2.7.RELEASE) start up, will show one error like this:

[13:13:54:269] [ERROR] - org.springframework.cloud.consul.discovery.ConsulCatalogWatch.catalogServicesWatch(ConsulCatalogWatch.java:148) - Error watching Consul CatalogServices
com.ecwid.consul.v1.OperationException: OperationException(statusCode=500, statusMessage='Internal Server Error', statusContent='rpc error making call: No cluster leader')
at com.ecwid.consul.v1.catalog.CatalogConsulClient.getCatalogServices(CatalogConsulClient.java:151) ~[consul-api-1.4.5.jar!/:?]
at com.ecwid.consul.v1.ConsulClient.getCatalogServices(ConsulClient.java:400) ~[consul-api-1.4.5.jar!/:?]
at org.springframework.cloud.consul.discovery.ConsulCatalogWatch.catalogServicesWatch(ConsulCatalogWatch.java:135) [spring-cloud-consul-discovery-2.2.7.RELEASE.jar!/:2.2.7.RELEASE]
at org.springframework.cloud.consul.discovery.ConsulCatalogWatch$$Lambda$1076/0x00000000fa715fb0.run(Unknown Source) [spring-cloud-consul-discovery-2.2.7.RELEASE.jar!/:2.2.7.RELEASE]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-5.2.14.RELEASE.jar!/:5.2.14.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:836) [?:?]

I check the consul register center in kubernetes cluster with 3 node, all node running fine. it tell me no cluster leader but the application still running fine. why shows this error? is it possible to fix it? I searching from internet seems no one talk about the real reason. BTW, this is my consul config:

# registry center
spring.cloud.consul.host=consul-1630121482-headless.reddwarf-pro.svc.cluster.local
spring.cloud.consule.port=8500
spring.cloud.consul.enabled=true
spring.cloud.consul.discovery.heartbeat.ttl-unit=s
spring.cloud.consul.discovery.heartbeat.ttl-value=30
spring.cloud.consul.discovery.health-check-interval=15s
spring.cloud.consul.discovery.instance-id= ${spring.application.name}:${vcap.application.instance_id:${spring.application.instance_id:${random.value}}}
spring.cloud.consul.discovery.prefer-ip-address= true
spring.cloud.consul.discovery.deregister=true
# service check failed, delete service
spring.cloud.consul.discovery.health-check-critical-timeout=30s
spring.cloud.consul.discovery.heartbeat.enabled=true
0 Answers
Related