问题标签 [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.
java - 如何在没有 Consul 的情况下配置 Feign 客户端
有人可以帮助找出为什么我不能FeignClient
使用application.properties
而不运行领事进行本地设置吗?
客户:
应用程序属性:
java - 使用 Spring 云领事配置可以共享配置吗?
我们在 Java 8 上使用 Spring Cloud Consul Config 1.3-RELEASE 来实现简单的应用程序 helloworldclient,按预期工作bootstrap.xml
...
使用 profile 运行应用程序dev
,这是从/env
...加载的配置
一切都很好,但我们不确定为什么剩余的 consul 配置部分甚至存在,以及它们的用途:
这很有趣,因为我们需要共享配置,以便多个应用程序可以从 consul 加载通用的、特定于环境的配置,如果可能的话;确定这是否是一个可行的解决方案的一些问题:
问题
- 除了应用程序配置路径之外,SCC 是否还尝试从这些位置读取?
- 默认文件夹是否
config/application
可配置,以便在启动时应用程序从中读取config/mysharedconfig
? - 它是否适合
/config/application/dev
用作共享配置位置,多个应用程序可以加载通用的、特定于环境的配置?
java - 使用带有 Spring Cloud Consul Discovery 和 FeignClient 的“区域”标签过滤服务
我们在 AWS 中有一个 Consul 集群,服务于所有操作环境(dev、qa、uat、prod)。当服务向 Consul 注册时,注册名称默认使用 spring boot 应用程序名称。因此,部署在 dev、qa、prod 中的相同服务无法在单个可操作的 Consul 集群中进行区分。bootstrap.xml
所以我们配置SCCinstance-zone
如下:
现在,在 Consul 中列出目录服务时,我们会看到以下内容;服务似乎被正确标记,这很好。
问题
我们在客户端使用 Feign 客户端(duh):
..但是发现服务时会出现问题;如何确保服务被过滤,以保证zone
部署到dev
尝试发现的服务helloworldservice
只找到的dev
实例helloworldservice
?
尝试server-list-query-tags
在客户端服务中使用,不确定这是否正确:
还注意到 FeignClient 支持serviceId
,我可以用它来过滤发现的标签吗?
spring-boot - 使用 SpringBoot 配置 Spring Cloud Consul
我正在使用 SpringBoot 配置 Consul,并在此处找到了文档。甚至浏览了其他资源,也没有找到更多额外的配置或场景。
因此,我很好奇springboot app与consul集成时是否只有这些配置可用。我想深入了解,谁能告诉我其他可用的房产吗?
microservices - 使用 Consul 在节点故障时重新启动服务器
微服务新手在这里。
我一直在研究使用弹簧执行器开发微服务,同时让 Consul 用于服务发现和故障恢复。我已经按照 Consul 文档中的说明配置了一个集群。
现在我要做的是配置一个 Consul Watch 以在我的任何服务关闭时触发并执行一个 shell 脚本来重新启动我的服务。以下是我的配置文件。
任何帮助/提示将不胜感激。
问候, 克里斯汉
java - Spring Cloud Consul auto register of HTTP check not working
According to section 3.2 of the Spring Cloud Consul manual:
An HTTP Check is created by default that Consul hits the /health endpoint every 10 seconds.
However, the log of my application reveals that this health check is missing. The property http should have a valid url and interval should have 10s, both are null:
Registering service with consul: NewService{id='test-service-local-8081', name='test-service', tags=[], address='localhost', port=8081, enableTagOverride=null, check=Check{script='null', interval='null', ttl='30s', http='null', tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null'}, checks=null}
Also, when I make my health endpoint return "status: down", consul still reports that my service is fine.
How do I add the HTTP check to /health on registration of the Spring Boot service with Consul?
I am using the following properties:
Edit: It turns out the heartbeat.enabled=true property removes the default HTTP check. When removing this property, we can see the HTTP check in the log:
Registering service with consul: NewService{id='test-service-local-8081', name='test-service', tags=[], address='erwins-mbp.home', port=8081, enableTagOverride=null, check=Check{script='null', interval='1s', ttl='null', http='http://mbp.home:8081/manage/health', tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null'}, checks=null}
So, now, the question is, with heartbeat enabled, how to I register a HTTP check from Spring Boot to Consul?
spring-boot - 领事观察者的状态是什么
我想通过 consul 查看我的 sprintboot 应用程序的运行状况。我提到了这个。我的领事配置文件的监视部分:
我有几个问题:
1.“关键”状态有效,但无法区分 Springboot 执行器的 /health 响应是“关闭”还是“停止服务”。当健康状态类似于“停止服务”而不是“关键”时,如何触发此侦听器。(我观察到当apringboot应用程序的健康响应关闭或停止服务或出现错误时,领事只说“关键”)
2. 正如我所观察到的,监听器只有两种状态:关键和通过?这是对的吗 ?如果不是,其他是什么?这些状态如何与 SpringBoot 执行器的 /health 状态(UP、DOWN、OUT OF SERVICE 等)匹配?
docker - Docker-Compose 使用 Consul 动态分配端口
我正在运行许多使用 Consul 进行服务发现的 Spring Boot 应用程序(使用 Actuator)。如果我使用 docker-compose 启动应用程序,为每个容器指定主机和容器端口,那么它们会在 Consul 中正确注册并很快被标记为健康。
“consul”和“docker-host”的主机地址值在启动时作为 docker-compose yml 文件中的环境变量传入,简单来说,与 docker 主机的 IP 地址相关(我在同一台服务器)。
另请注意使用:
变量告诉 Consul 如何连接回容器以检查其健康状况(在这方面它只是使用 Actuator)。这需要是外部可访问的地址和端口,以便 Consul 可以检查服务。
当我在 docker-compose 文件中为容器指定主机和容器端口号时,这一切都很好。
我已经到了想要扩展一些容器的地步,但是当我尝试执行
命令它告诉我这是不可能的,因为已指定主机端口。如果我将 docker-compose yml 文件更改为仅定义容器端口,并让主机端口动态分配,那么这一切都会出错,因为 Consul(在外部运行)获得了错误的 URL 来连接并将容器标记为不良。
我的问题是如何告诉 Consul 动态和“外部”公开的端口号,以便在容器内运行的应用程序中使用?
有没有办法在创建时获取端口号并将其传递到容器中?
如果可以的话,我想尝试使用 Compose 来破解它(而不是使用 Swarm,或者通过在同一组容器中的另一个容器中运行 Consul)。
spring-cloud-consul - 如何在 spring-cloud-consul 中观看服务?
Consul 有监视服务更新的手表。spring-cloud-consul 是否支持此功能?我在文档中找不到它。
spring-boot - Consul 抛出 Spring Boot Health Url 错误(401)
我已经用我的 spring boot 应用程序配置了 consul,我有基本的 Auth来访问 url。
如果我点击 localhost:8081/health 它要求进行基本身份验证并且状态为 UP
但在领事用户界面中它会引发错误
我如何在领事中提供此身份验证。