- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正尝试从 Eureka 转移到 Consul 以进行服务发现,但我遇到了一个问题 - 我的网关服务寄存器和我的客户服务寄存器,但网关服务不会自动将请求路由到客户服务。我在网关 Controller 中专门定义的路由使用 Feign 客户端路由工作正常,但之前(使用 Eureka)我可以向任何路径发出请求,如“/customer-service/blah”(其中 customer-service 是注册名称) 并且网关只会将请求转发到下游微服务。
这是我的网关 bootstrap.yml(它在 Bootstrap 中而不是应用程序中,因为我也在使用 consul 进行配置)
spring:
application:
name: gateway-api
cloud:
consul:
config:
watch:
wait-time: 30
discovery:
prefer-ip-address: true
instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}}
最佳答案
试试这个,我认为这可以帮助您解决问题..
这是我的网关bootstrap.yml文件
spring:
application:
name: gateway-service
---
spring:
profiles: default
cloud:
consul:
config:
prefix: config/dev/
format: FILES
host: localhost
port: 8500
discovery:
prefer-ip-address: true
spring.profiles.active: dev
我将此依赖项用于网关和所有应用程序
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
consul 用作我的配置服务器。然后我将领事添加到此配置中。配置路径为/config/dev/gateway.yml
zuul:
prefix: /api
ignoredServices: '*'
host:
connect-timeout-millis: 20000
socket-timeout-millis: 20000
routes:
customer-service:
path: /customer/**
serviceId: customer-service
stripPrefix: false
sensitiveHeaders: Cookie,Set-Cookie
网关服务 spring boot 应用程序注释如下
@SpringBootApplication
@EnableDiscoveryClient
@EnableZuulProxy
public class GatewayServiceApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayServiceApplication.class, args);
} // End main ()
}// End GatewayServiceApplication
如果你像这样制作你的应用程序,你可以使用你喜欢的方式。
关于java - 使用 Consul Service Discovery 的自动代理服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42983145/
Consul服务定义json如下 { "Address": "192.168.10.10", "TaggedAddresses": { "lan": "192.168.10
在 Consul 中,您可以拥有许多代理作为服务器或客户端。在所有服务器中,一个被选为领导者。从代理的角度来看,它怎么知道自己是领导者? 最佳答案 consul operator raft list-
对于 Eureka,服务可以直接将自己注册到 Eureka 服务器。为什么我们应该向 Consul 客户端而不是 Consul 服务器发送请求?让服务直接与Consul服务器通信有什么问题吗? 感谢您
我四处搜索,这似乎不可能,但我想确认我没有遗漏任何东西。我们正在向 consul 注册一个应用程序。当服务终止时,它会在一定时间后自动删除。如果可能的话,这个选项是可配置的吗? 最佳答案 我认为检查注
我正在使用 Traefik 在 Consul 中注册的不同服务之间进行负载平衡。 我正在使用consul-catalog配置并通过在 consul 中定义服务时添加标签来覆盖其中一项服务的前端路由规则
我正在尝试提出 consul用于生产目的的集群。我没有找到太多关于部署 consul 集群的最佳实践的信息。假设我想要一个包含 3 个节点的集群。我想知道以下场景之间有什么区别以及首选哪种场景。 正在
我发现在几种情况下,存储有关特定服务的附加元数据会很方便,但services API中似乎不支持自定义字段。 (只有基本的id、姓名、地址、端口)。例如,数据库名称或负载均衡器权重。 我对设计决策很好
所以我构建了一个 3 节点的 Consul 集群。现在它们仅由 IP 地址表示。在阅读文档时,我不清楚如何将他们的位置暴露给其他想要查询的人。 我可以将当前领导者的 IP 地址硬编码到其他代理中,
我目前是一名实习生,必须托管一个微服务应用程序。我选择将 AWS ECS 与 Fargate 任务结合使用来托管 Consul Connect Service Mesh,为应用程序提供服务发现、意图、
我将 Ocelot 和 API 网关与 Consul 和服务发现一起使用。我正在 Consul 中使用动态名称注册服务,例如:service.name.1234 和 service.name.5678
实现这个需要什么配置? 可以使用此处提到的“开发模式”- https://learn.hashicorp.com/consul/getting-started/agent (但不推荐用于生产)。 我试
我的 Prometheus 服务器从 Consul 获取它的目标列表(或“服务”,在 Consul 的行话中)。我只想监控这些目标的一个子集。这应该可以通过 Prometheus 的 regex 机制
我们使用 Consul 并且我们愿意强制开发人员只能使用 git2consul 方法来更改它,以保留属性更改的历史并维护备份。 为了确保这一点,我们希望使 Consul Key-Value 浏览器 U
当 Prometheus 使用 Consul 的自动发现功能来获取要监控的目标列表时,它也会自己获取 Consul 服务器。这很棒 - 我们想用 Prometheus 监控这些人。问题是Consul用
我有一个使用以下服务定义向 Consul 注册的测试服务: { "name": "web", "tags": ["web1"], "address": "example.com", "
我需要更改默认的 http 端口,因为另一个应用程序已经在使用 8500。 此命令有效: 领事信息-http-addr=http://127.0.0.1:18500 我无法弄清楚这等于配置文件中的什么
我试图在更新 consul 的 KV 对时获取它的锁,所以没有其他人可以更新它。 最初我有 curl -XGET http://localhost:8500/v1/kv/hosts?raw {"k1"
我想知道是否有办法过滤服务领事使用标签返回我。 终点: /v1/catalog/services 将服务映射返回到标签列表,并要求我在返回后解析服务。 我想知道是否有某种方法可以将我想要的标签(或多个
我正在尝试了解如何使用 Consul 进行应用程序领导者选举。我正在使用来自 java consul-client 的 LeaderElectionUtil。 我可以选举一个领导者,并且所有节点都同意
我决定关注this指导,我遇到了很多问题。 首先需要在 command 中指定 traefik 命令,否则我会遇到 entrypoint.sh 找不到的错误命令 storedata,是 > yaml
我是一名优秀的程序员,十分优秀!