问题标签 [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.
spring - Spring LDAP 和 Spring Cloud Consul 可以一起工作吗?
我有一个使用 Spring LDAP 的项目。我正在尝试将 Spring Consul 放入该项目中,并且一直面临与此相关的问题。
这是 pom.xml :
这是应用程序属性:
我在 SpringBootApplication 类上使用 @EnableDiscoveryClient 启用了发现客户端。
但是,我最终遇到了这个错误,并且应用程序永远不会启动:
我认为这与 Ldap 的自动发现有关,并且引入 Consul 会导致此问题,但是,我无法确定问题所在。
有人可以帮我解决这个问题吗?
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(并且无法被任何客户端发现)
有什么问题或遗漏?
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
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
java - 应用程序未向 Consul 注册服务
我的应用程序没有向 Consul 注册服务。我跟踪了源代码,问题似乎是 AbstractAutoServiceRegistration 的绑定方法没有调用。如果我理解正确,绑定逻辑在 org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistrationAutoConfiguration 中,它定义了一个类型为 ConsulAutoServiceRegistration 的 bean。ConsulAutoServiceRegistration 类是从 AbstractAutoServiceRegistration 扩展而来的。
然后AbstractAutoServiceRegistration中一个名为bind的方法被@EventListener(WebServerInitializedEvent.class)注解。
但是我发现这个方法没有在监听器中注册,因为 AbstractAutoServiceRegistration 的包是以“org.springframework”开头的。所以在 EventListenerMethodProcessor 中它被忽略了。
}
问题是什么?我该如何解决?
spring - 如何在 Spring Cloud consul config 中将一致性模式更改为 Stale
Consul 支持 http 中的一致性模式参数。根据领事文件,它可以有 DEFAULT,CONSISTENT,STALE 。我想在我的一个应用程序中将一致性模式从默认 ot STALE 更改。我在提供的 spring 文档中没有找到任何方法。使用spring cloud consul config可以实现吗?
load-balancing - 使用功能区实现负载平衡
我是 Spring Cloud 和微服务的新手。我打算在一个独立的微服务上实现负载均衡,需要了解如何在不使用 feign 客户端和 java 或 application.properties 文件中可用的端点硬编码列表的情况下使用 zuul api 网关实现负载均衡。大多数示例代码互联网上可用的是服务器的硬编码列表,并使用负载均衡器选择选项来获取可用的端点列表以执行负载均衡。请提出一种实现方式。
java - 为什么spring cloud consul不能与独立的tomcat一起使用?
当在带有嵌入式 tomcat 的 spring boot 中运行代码时,Spring cloud consul 按预期工作。
当我们在独立的 tomcat 上部署代码时它不起作用。似乎有一个ConsulAutoServiceRegistrationListener
在WebServerInitializedEvent
. 只有当我们在带有嵌入式 tomcat 的 spring boot 中运行代码时才会触发此事件。
https://github.com/spring-cloud/spring-cloud-consul/issues/302提供了几种解决方法,但它们都不再适用于最新Greenwich.RC2
版本。
我们可以在独立的 tomcat 上启动服务注册的其他方法是什么?
如果您需要更多详细信息,请告诉我。
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
使用 byyml
和properties
格式:
spring.cloud.consul.host=myhost
(使用.properties
vs.的适当格式.yml
)
或者
spring.cloud.consul.host=myhost
- 有趣的事实,当作为程序参数传入时,这可以正常工作。
依赖项:
- spring-boot-starter-parent - 2.0.4.RELEASE
- spring-cloud-starter-consul-all - 1.3.2.RELEASE
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 将负载平衡请求放入堆栈。
有人对如何最好地进行有任何建议吗?