java - 即使无法联系发现服务器,是否有办法启动 Discovery 客户端 Spring 应用程序?

标签 java spring annotations consul

我有一个微服务,它是一个发现客户端:

@SpringBootApplication
@EnableDiscoveryClient
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

我知道,如果在发现服务器尚不可用时尝试启动它,它将失败。我想知道是否有办法在发现服务器仍然不可用的情况下启动应用程序。当我在构建期间为此运行 JUnit 单元测试时,出现了问题。我在 JUnit 测试启动/启动期间遇到以下堆栈跟踪片段:(顺便说一句,单元测试与服务发现无关)

2016-03-07 14:45:54.741 ERROR 3024 --- [ main] o.s.boot.SpringApplication : Application startup failed

com.ecwid.consul.transport.TransportException: java.net.ConnectException: Connection refused at com.ecwid.consul.transport.AbstractHttpTransport.executeRequest(AbstractHttpTransport.java:80) ~[consul-api-1.1.8.jar:na] at com.ecwid.consul.transport.AbstractHttpTransport.makeGetRequest(AbstractHttpTransport.java:39) ~[consul-api-1.1.8.jar:na] at com.ecwid.consul.v1.ConsulRawClient.makeGetRequest(ConsulRawClient.java:81) ~[consul-api-1.1.8.jar:na] at com.ecwid.consul.v1.kv.KeyValueConsulClient.getKVValues(KeyValueConsulClient.java:150) ~[consul-api-1.1.8.jar:na] at com.ecwid.consul.v1.kv.KeyValueConsulClient.getKVValues(KeyValueConsulClient.java:143) ~[consul-api-1.1.8.jar:na] at com.ecwid.consul.v1.ConsulClient.getKVValues(ConsulClient.java:394) ~[consul-api-1.1.8.jar:na] at org.springframework.cloud.consul.config.ConsulPropertySource.init(ConsulPropertySource.java:63) ~[spring-cloud-consul-config-1.0.0.M6.jar:1.0.0.M6] at org.springframework.cloud.consul.config.ConsulPropertySourceLocator.locate(ConsulPropertySourceLocator.java:74) ~[spring-cloud-consul-config-1.0.0.M6.jar:1.0.0.M6] at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:89) ~[spring-cloud-context-1.1.0.M5.jar:1.1.0.M5] at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:640) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:343) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at ...

发现服务是Consul。

提前致谢!

最佳答案

现在遇到同样的问题。显然修复有 been submitted

基本上实现了重试。

不确定要等多久才能发布。

老实说,我正在考虑尝试 Eureka 选项。

关于java - 即使无法联系发现服务器,是否有办法启动 Discovery 客户端 Spring 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35838084/

相关文章:

java - 如何在不使用 BigDecimal 的情况下在 java 中打印最多 4 位小数的数字而不进行四舍五入

java - SessionFactory.getCurrentSession() 与 EntityManager.createEntityManager()

java - 声明式事务 (@Transactional) 在 Spring 中不适用于 @Repository

java - Spring AOP 切入点,用于在带有注释的字段上调用方法

java - 我需要persistence.xml 中的<class> 元素吗?

java - 从 java 执行 exe 时出错

java - 为什么 Hibernate Open Session in View 被认为是不好的做法?

java - 有哪些使用 Spring 和 Hibernate 的优秀示例应用程序?

java - Spring Security 4 @AuthenticationPrincipal 为空,带有 core.annotation.AuthenticationPrincipal 但不是 web.bind.annotation.AuthenticationPrincipal

java - 如何在 Jersey REST 方法中使用可选数量的参数?