问题标签 [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 回答
162 浏览

spring-cloud - Spring Cloud Consul:向 Consul Cluster 报告的不是 IP,而是 DNS 名称

在我的 Spring Cloud Consul 中,我发现该程序使用节点的 IP 地址报告自己,而不是 DNS 名称。

我需要使用 DNS 名称报告它。我怎么能配置呢?

0 投票
1 回答
1137 浏览

spring-cloud-contract - 使用 Spring Cloud Contract,如何为不同的主机/端口设置多个 Wiremock 存根?

使用 Spring Cloud Contract 设置多个 Wiremock 存根的最佳方法是什么,这些存根具有不同的主机/端口,并且都在由单个 @Test 方法执行的代码中调用?比如我要测试ServiceA.doSomething(),这个方法调用ServiceB.doSomethingElse()和ConsulClient.getKVValue()。创建 WireMockRestServiceServer 的一个实例没有问题,但我还没有弄清楚如何创建第二个以在指向不同基本 URL 的同一测试中使用。我尝试这样做的原因是因为我需要将我们对 Consul 的调用存根,并且我需要将这些请求始终发送到http://localhost:8500,从而我的其他请求通过负载发送平衡的 RestTemplate。我希望我已经清楚地解释了我的情况。

0 投票
2 回答
2162 浏览

spring-boot - 通过 BeanDefinitionRegistryPostProcessor 注册的 @RefreshScope 注释 Bean 在 Cloud Config 更改时未刷新

我有一个动态注册 bean 的 BeanDefinitionRegistryPostProcessor 类。有时,正在注册的 bean 具有 Spring Cloud 注释 @RefreshScope。但是,当云配置环境更改时,不会刷新此类 bean。调试时,会触发相应的应用程序事件,但是,动态 bean 不会被重新实例化。需要一些帮助。下面是我的代码:

测试动态道具:

TestDynaPropConsumer:

BeanDefinitionRegistryPostProcessor:

配置类:

应用程序.java

而且,我的 bootstrap.properties:

应用程序属性

0 投票
3 回答
7830 浏览

spring-boot - 我的 Spring Boot 应用程序的 /health 端点正在发出有关在同一台机器上运行的 Consul 服务器的所有信息。如何禁用此功能?

我启用了 /health 端点,但我只是不希望它列出 Consul 在同一台机器上监控的所有服务。

这是我的 application.properties:

...这就是 /health 当前发出的内容:

我不介意and"description": "Spring Cloud Consul Discovery Client"下的其余内容是我不想暴露的。"consul""discoveryComposite"/health

什么可以将这些信息添加到此端点?

0 投票
1 回答
5052 浏览

spring-boot - 在 Spring-boot 中用于配置的 Consul 键值对

我试图将我的注册服务器从“Eureka”更改为“Consul”,并将 Consul 作为我的配置服务器。Consul 的服务发现是成功的。但我不明白如何获取键/值对选项来引导我的应用程序。我有什么可能的方法吗?

我使用具有以下依赖项的弹簧靴

这是我的春季启动应用程序 ConsuleDemoApplication.class

我的 bootstrap.yml 是

0 投票
0 回答
1063 浏览

spring-boot - 无法在引导时从 Consul 读取日志记录配置

我正在为基于 Spring Boot 的 RESTful 服务使用 logback 配置。我的一些日志配置属性驻留在 Consul 的 KV 存储中(例如 smtp 主机)。我还在我的项目中使用“spring-cloud-starter”进行 hystrix 配置。

对于配置,我使用“logback-spring.xml”,以便通过“springProperty”标签访问 logback 配置中的 spring 上下文。

现在,我的问题是,在引导时,BootstrapApplicationListener 被调用,它读取所有引导资源(bootstrap.properties)并加载日志系统。此时,Consul 配置(ConsulAutoConfiguration)尚未加载,因此未找到所需的日志记录配置,因此未正确初始化 logback。

有没有办法在执行 BootstrapApplicationListener 之前或期间加载 Consul 配置,以便日志系统正确初始化?

或者,有没有其他方法可以在读取 Consul 属性后重置日志系统?

谢谢。

0 投票
1 回答
485 浏览

spring - 通过 Spring cloud cli 启动 Groovy 应用程序时 Spring cloud consul 配置的问题

我正在探索 Consul 的发现和配置服务器。我已经添加了所需的依赖项并设置了 yml 文件。当我尝试使用spring cloud cli(Spring run)启动服务器时,我收到以下错误,我无法解决。任何帮助表示赞赏。

错误:“组件需要一个名为 'configServerRetryInterceptor' 的 bean,但无法找到。”

我试图定义这个bean,但是当我通过spring cloud cli启动应用程序时,它无法识别它。

请看下面的代码

0 投票
1 回答
2658 浏览

spring-cloud - “spring.cloud.consul.host”配置值可以有多个领事代理吗?

我对这个配置有点困惑。我的 Spring Boot 应用程序@EnableDiscoveryClientspring.cloud.consul.host设置为localhost. 我正在运行我的 Boot 应用程序的主机上运行 Consul Agent,但我有几个问题(似乎无法在文档中找到我的答案)。

这个配置可以接受多个值吗?

  • 如果是这样,我更愿意将值设置为 Consul 服务器地址列表(但是,运行 Consul 代理的意义何在,所以这似乎不切实际,这意味着我在这里不理解某些东西)
  • 如果没有,我们是否应该在每个正在运行 Boot 应用程序的节点上运行 Consul Agent @EnableDiscoveryClient?(这也感觉不对;一方面,这似乎是单点故障,即使一个代理应该能够告诉有关集群的所有信息;如果我无法联系这个代理怎么办?)
  • 这种配置的最佳实践是什么?
0 投票
1 回答
8266 浏览

consul - 从 Consul 中删除死服务

我们有许多 Spring Boot 应用程序向 Consul 注册自己(通过 Spring Cloud Consul)。如果我停止这些应用程序,docker-compose stop myservice那么它们会正确注销自己并从 Consul 中消失。

如果我使用docker-compose kill myservice,那么注销不会发生。我知道在 UNIX 系统上不可能捕获 SIGKILL 事件,因此无法强制取消注册。

因此,我们看到的是 Consul 中从未删除的服务(critical在 UI 中标记为但仍可见)。有没有办法强制领事刷新注册的内容,以便删除死服务?

谢谢

缺口

0 投票
1 回答
8149 浏览

spring - Spring boot 从领事服务器获取属性

我有一个弹簧启动应用程序,我想获得我在领事代理上的属性。

我的 application.properties 在 src/main/resources 下

在 pom.xml 我有以下配置(短版)

属性以这种格式存储在 consul 上:Business/SOAPProxy/proxy.endpoint

当应用程序启动时,它似乎找到了 consul,但在尝试 consul @Value("${proxy.endpoint}") 之前它无法获取值,我怎样才能获得 consul 的属性?