问题标签 [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 投票
1 回答
369 浏览

java - 使用 spring-cloud-consul 从领事读取空字符串

我正在我的 spring 应用程序中从基于文件的 .properties 文件迁移到基于 consul 的配置。我正在使用 spring-cloud-consul。在我的属性文件的早些时候,我有一个如下属性

test.key=

在spring应用类对应的字段是这样的

@Value("${test.key:defaultVal}") private String testConsul;

在运行时,testConsulstring 的值是一个空字符串。但是在使用领事时,每当我输入test.key没有值的键时,在运行时它都会被解析为null.

无论如何我可以通过 consul 传递一个空字符串值吗?

0 投票
1 回答
1301 浏览

spring-boot - 如何防止 sleuth / zipkin 跟踪 catalog-services-watch?

我在我的应用程序上启用了 zipkin,它工作正常,我看到了痕迹。我的应用程序正在使用 Consul 服务发现,我看到在 Zipkin 中跟踪了很多流量。

跟踪就像具有“catalog-services_watch”之类的名称并包含以下内容:

如何禁用这些跟踪?我试过 spring.sleuth.instrument.web.skipPattern 参数,但它不起作用。

0 投票
1 回答
352 浏览

consul - 领事配置

我是领事配置的新手。我的目标是将属性从application.properties领事服务器移动。

我尝试了多种方法,但似乎无法做到正确。我需要遵循特定的文件夹结构吗?

下面是我的bootstrap.yml

如果我将 Consul 放在服务器上,Consul 可以使用相同的属性文件吗?如果是这样,我应该把它放在什么位置,参考consul.conf,我应该把它放在什么位置?

0 投票
2 回答
306 浏览

consul - 来自单体应用的 consul 服务发现

我有一个单体应用程序 A,它需要通过服务发现调用微服务 B。Consul 是使用的服务发现服务器。微服务 B 在 Consul 服务器上注册。

从 A 我可以通过给出调用 Bhttp://hostname:portname/endpoint

如何通过服务发现做到这一点。

我尝试spring-cloud-dependencies 在 Monolith Application A 中添加依赖项,以便我可以使用它org.springframework.cloud.client.discovery.DiscoveryClient 来进行服务发现,但是这个 spring 依赖项引入了与我的 jboss 冲突的嵌入式 tomcat jar,因为两者都在8080. 仅仅为了服务发现而将单体 A 转换为 springboot 应用程序不是一种选择。

是否有非 spring 选项可以从整体应用程序到 Consul 服务器进行服务发现?

0 投票
1 回答
7403 浏览

spring-boot - 无法在 spring-boot 应用程序中从 Consul 读取配置

我正在创建一个Spring Boot应用程序,它将从Consul. 但我无法使用我的应用程序从 Consul 读取键值。以下是我正在尝试做的事情。

以下是我的主要课程:

我正在使用@Value注释阅读领事属性:

我有我bootstrap.yml的资源文件夹:

localhost:8500Consul在我拥有文件文件的本地系统中启动并运行config/application/spring-boot-consul.yml

当我对应用程序进行分级时,它显示无法cassandra.host在我的ConsulConfiguration 班级中绑定。从而停止应用程序。任何提示,我在这里做错了什么?

0 投票
1 回答
2131 浏览

spring - 如何从 Spring Boot WebMvcTest 中排除自动配置

我正在尝试实现 Spring Boot Mock MVC 单元测试,并希望排除 spring-cloud-consul 自动配置以避免需要连接到远程服务。

看起来我应该能够通过以下方式实现这一目标:

但是,这似乎仍在尝试连接到远程领事,因为我无法在离线时运行此单元测试。

如果我将 -Ddebug 添加到单元测试运行配置中,我没有在排除项中看到此内容:

我想知道这是否是因为这个配置是在引导时加载的?

任何帮助将不胜感激,在此先感谢。

0 投票
1 回答
289 浏览

consul - Spring Cloud Consul 可以替代 consul-client 吗?

我正在学习 Consul。对 Spring Cloud Consul 和 Consul Client 之间的关系感到困惑。

我发现,在 Spring Boot 应用程序中,我们可以使用 @EnableDiscoveryClient 联系 Consul Agent。但是如果我想选举自己服务的leader,Spring Cloud Consul可以提供这些接口吗?还是需要在consul-client上中继?

0 投票
1 回答
656 浏览

java - MethodValidationPostProcessor 导致进一步的验证失败

我正在尝试将 Spring Cloud Consul 添加到启用了 Spring 验证的现有 Spring Boot 应用程序中。在我运行应用程序之前一切都很好,并且在验证带有注释的属性 bean 时失败@Validated

据我所知,这就是发生的事情:

  1. MethodValidationPostProcessor为属性 bean 创建一个代理
  2. CustomBeanValidationPostProcessor启动并尝试验证代理字段并失败并显示以下内容:

    /li>

这是重现该问题的最小项目:https ://github.com/bashnesnos/cas-spring-cloud-consul-issue

问题:

  1. 如果有人知道任何解决方法可以避免MethodValidationPostProcessor使用特定的 bean?

PS 我也为 Spring 创建了一张票https://github.com/spring-projects/spring-boot/issues/11249,但我想在社区中寻求解决方法可能更容易。

0 投票
1 回答
615 浏览

spring - spring consul 服务都是健康的,但是在不同的主机上不能互相访问

运行 Consul 和 spring-cloud-consul 我有五个微服务都已注册并显示为健康。这些服务中的每一个都在不同的 EC2 实例上运行。

使用在领事中注册的微服务的名称,我无法使用RestTemplate

如果服务 A 要使用以下代码调用服务 B

服务 A 抛出

即使将调试设置为,TRACE我也看不到服务 B 上没有任何内容。

但是,如果我采用相同的设置并在单个 EC2 实例上运行它,一切都会按预期工作。

所有服务都在 docker 中运行,但 consul 代理运行在每个 EC2 实例的主机上。

每个微服务都有以下bootstrap.yml集合

如果我给RestTemplate它返回一个随机端点,Unknown host以便它知道微服务在那里,它只是在它到达代码库之前被阻塞在某个地方。

如何进一步调试以找出服务在不同主机上运行时被拒绝的真正原因?

我尝试打开安全配置上的所有端口只是为了排除这种情况,但这没有任何区别。

编辑:查看 Consul UI - 我看到我的服务是在私有 IP (172.18.0.2) 下注册的。

这应该是一个面向公众的地址吗?

0 投票
0 回答
1473 浏览

consul - 带有 zuul 和 consul 的 Spring Cloud 的 api-gateway 用于服务发现

我正在尝试创建一个小型 API 网关,它使用 Spring-cloud 和 Zuul 作为代理和 consul 作为服务发现。

以下是我的 bootstrap.properties:-

application.properties:-

我的 Java 应用程序:-

当我运行我的微服务和网关时,我可以看到我的领事已经注册了它们。但是,当我请求我的一项微服务(例如:- http://localhost:8084/refdataservice)时,我得到一个 ZuulException:转发错误。

我错过了什么吗?可能是什么原因?

以下是堆栈跟踪:-