问题标签 [spring-cloud-consul]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
57 浏览

spring - Spring LDAP 和 Spring Cloud Consul 可以一起工作吗?

我有一个使用 Spring LDAP 的项目。我正在尝试将 Spring Consul 放入该项目中,并且一直面临与此相关的问题。

这是 pom.xml :

这是应用程序属性:

我在 SpringBootApplication 类上使用 @EnableDiscoveryClient 启用了发现客户端。

但是,我最终遇到了这个错误,并且应用程序永远不会启动:

我认为这与 Ldap 的自动发现有关,并且引入 Consul 会导致此问题,但是,我无法确定问题所在。

有人可以帮我解决这个问题吗?

0 投票
0 回答
527 浏览

java - 无法使用 Consul (SpringCloud Finchley) 发现 SpringBoot 2.1.1

我正在尝试在 SpringCloud 的帮助下向领事注册一个示例 SpringBoot 服务,但在使用最新版本时没有成功。

成功的版本:

  • SpringBoot:2.0.0.RELEASE
  • 云:Finchley.RELEASE
  • 领事:1.4.0

没有成功的版本:

  • SpringBoot:2.1.1.RELEASE
  • 云:Finchley.RELEASE
  • 领事:1.4.0

我的pom:

我用以下命令启动领事: consul agent -dev

我的服务提供“/health”端点并声明@EnableDiscoveryClient

我的配置是(application.yml 或 bootstrap.yml,结果相同):

当我使用 SpringBoot 2.0.0.RELEASE 启动服务时,它运行良好。当我使用 SpringBoot 2.1.1.RELEASE 启动完全相同的服务时,该服务未注册到 consul(并且无法被任何客户端发现)

有什么问题或遗漏?

0 投票
1 回答
1053 浏览

java - 无法从 Consul 加载 logback.xml

问题是这样的

我在 Consul KV 存储中拥有该项目的所有配置。配置包括 application.yml、logback.xml 和我的项目所需的一些其他配置。

将 bootstrap.yml 用于包含 logging.config 的 Spring Cloud Consul 配置,配置 URI 的 URI 如下所示用于 logging.config - http://CONSUL_SERVER_IP:CONSUL_SERVER_PORT/v1/kv/CONSUL_CONFIG_PREFIX/logback.xml?raw

还尝试在下面作为参数/VM 参数传递

需要查询字符串“raw”来获取实际的配置文件。

执行应用程序时出现以下错误

引起:ch.qos.logback.core.LogbackException:文件的意外文件扩展名 [ http://CONSUL_SERVER_IP:CONSUL_SERVER_PORT/v1/kv/CONSUL_CONFIG_PREFIX/logback.xml?raw]。应该是 org.springframework.boot.logging.logback.LogbackLoggingSystem.configureByResourceUrl(LogbackLoggingSystem.java:180) 的 ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:77) 的 .groovy 或 .xml在 org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:149) ... 30 更多

Spring Boot 版本 - 2.0.1.RELEASE

春云版——Finchley.SR2

logback 经典和核心版本 - 1.2.3

0 投票
0 回答
1161 浏览

spring-boot - @RefreshScope 不工作。在 Consul 中第二次修改后属性没有更新

我正在使用 spring-cloud-consul 与 Consul 合作,目前遇到了这个问题。我在 consul 中创建一个键作为 config/ConsulServer/my/username,值为“bob”。在我的控制器中,如果进行 API 调用“/foo”,我会返回此值。当我第一次将其修改为“史蒂夫”时,该值被更新,我得到“史蒂夫”。但是,它第二次不起作用。该值仍然是“史蒂夫”。谁能帮助我做错了什么?我的代码是

我的 bootstrap.yml 是

我的 application.yml 是

我正在使用 spring-cloud-starter-consul-all 版本 2.1.0.RC3

0 投票
0 回答
196 浏览

java - 应用程序未向 Consul 注册服务

我的应用程序没有向 Consul 注册服务。我跟踪了源代码,问题似乎是 AbstractAutoServiceRegistration 的绑定方法没有调用。如果我理解正确,绑定逻辑在 org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistrationAutoConfiguration 中,它定义了一个类型为 ConsulAutoServiceRegistration 的 bean。ConsulAutoServiceRegistration 类是从 AbstractAutoServiceRegistration 扩展而来的。

然后AbstractAutoServiceRegistration中一个名为bind的方法被@EventListener(WebServerInitializedEvent.class)注解。

但是我发现这个方法没有在监听器中注册,因为 AbstractAutoServiceRegistration 的包是以“org.springframework”开头的。所以在 EventListenerMethodProcessor 中它被忽略了。

}

问题是什么?我该如何解决?

0 投票
1 回答
95 浏览

spring - 如何在 Spring Cloud consul config 中将一致性模式更改为 Stale

Consul 支持 http 中的一致性模式参数。根据领事文件,它可以有 DEFAULT,CONSISTENT,STALE 。我想在我的一个应用程序中将一致性模式从默认 ot STALE 更改。我在提供的 spring 文档中没有找到任何方法。使用spring cloud consul config可以实现吗?

0 投票
1 回答
97 浏览

load-balancing - 使用功能区实现负载平衡

我是 Spring Cloud 和微服务的新手。我打算在一个独立的微服务上实现负载均衡,需要了解如何在不使用 feign 客户端和 java 或 application.properties 文件中可用的端点硬编码列表的情况下使用 zuul api 网关实现负载均衡。大多数示例代码互联网上可用的是服务器的硬编码列表,并使用负载均衡器选择选项来获取可用的端点列表以执行负载均衡。请提出一种实现方式。

0 投票
2 回答
507 浏览

java - 为什么spring cloud consul不能与独立的tomcat一起使用?

当在带有嵌入式 tomcat 的 spring boot 中运行代码时,Spring cloud consul 按预期工作。

当我们在独立的 tomcat 上部署代码时它不起作用。似乎有一个ConsulAutoServiceRegistrationListenerWebServerInitializedEvent. 只有当我们在带有嵌入式 tomcat 的 spring boot 中运行代码时才会触发此事件。

https://github.com/spring-cloud/spring-cloud-consul/issues/302提供了几种解决方法,但它们都不再适用于最新Greenwich.RC2版本。

我们可以在独立的 tomcat 上启动服务注册的其他方法是什么?

如果您需要更多详细信息,请告诉我。

0 投票
2 回答
1433 浏览

java - 无法连接spring cloud consul(无法设置主机/端口)

我正在尝试consul从应用程序连接到服务器Spring boot,但由于 spring cloud consul 似乎没有读取我的主机配置而失败。

引起:org.apache.http.conn.HttpHostConnectException:连接到 localhost:8500 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] 失败:连接被拒绝:连接

文档说我们需要从bootstrap.properties/yml文件中设置领事主机。我尝试设置spring.cloud.consul.host使用 byymlproperties格式:

spring.cloud.consul.host=myhost(使用.propertiesvs.的适当格式.yml

或者

spring.cloud.consul.host=myhost- 有趣的事实,当作为程序参数传入时,这可以正常工作。

依赖项

  • spring-boot-starter-parent - 2.0.4.RELEASE
  • spring-cloud-starter-consul-all - 1.3.2.RELEASE
0 投票
0 回答
153 浏览

docker - Docker Swarm 中的 Consul

有没有人能够在 Docker Swarm 中成功使用 Consul?我问的原因是我几天来一直在努力让它运行(我在这里的附加帖子)。

我可以让 Consul 启动的唯一方法是使用“network_mode:host”运行它,然后我遇到 Spring Boot 应用程序向其注册的 HealthCheck URL 使用容器的内部网络地址的问题,这意味着 Consul 无法标记容器健康,因为它无法从 swarm 外部访问内部 IP。

我看过其他帖子,人们已经放弃使用 Consul 转而支持原生 Swarm 发现,但我们也在使用 Consul KV 功能以及 HAproxy/consul-template 将负载平衡请求放入堆栈。

有人对如何最好地进行有任何建议吗?