问题标签 [netflix-eureka]

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 投票
2 回答
11842 浏览

spring - 使用 Spring Cloud FeignClients 时出现 404

这是我的设置:

第一个服务(FlightIntegrationApplication)使用 FeignClients API 和 Eureka 调用第二个服务(BaggageServiceApplication)。

github上的项目:https ://github.com/IdanFridman/BootNetflixExample

第一服务:

在其中一个控制器中:

飞行集成服务:

注册服务:

这是第二项服务(baggage-service):

行李服务应用:

行李服务:

BaggageServiceImpl:

调用飞行集成服务的其余控制器时,我得到:

任何的想法 ?

谢谢,雷。

0 投票
6 回答
32011 浏览

spring-boot - 带有 Spring Cloud 和 Eureka 的功能区:java.lang.IllegalStateException:没有可用于 Samarths-MacBook-Pro.local 的实例

我正在使用功能区负载均衡器开发 Spring Boot Eureka 客户端应用程序。

我有两个使用 Eureka 注册的名为“TEST”的服务器实例。在客户端,我有以下代码从 Eureka 获取服务器。

应用程序.yml

但是,当我使用以下命令访问 restful 端点时,会出现错误:

这是错误:

堆栈跟踪:

看起来我的服务器列表是空的。

0 投票
1 回答
3279 浏览

java - Spring Cloud Eureka:改变心跳和发现路径

我无法从位于 github 的 ConfigBeans 中变出一个属性来更改 Eureka 服务器的心跳和发现上下文:https ://github.com/spring-cloud/spring-cloud-netflix/tree/master/spring-云-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka

似乎我能够在客户端中设置上下文路径,但不能在服务器中设置。例如,客户端配置为:

我似乎没有什么可以在EurekaServerConfigBean服务器上修改以将上下文更改为/admin. 当我运行我的客户时,我得到:

0 投票
1 回答
12151 浏览

spring - 我应该如何在包含在 EC2 实例中的 Docker 中使用 Netflix Zuul 和 Eureka 配置 Spring Cloud

我正在评估使用在单独的 docker 容器中运行的 Spring Boot 和 Spring Cloud(Zuul 和 Eureka)构建微服务,部署在单独的 Amazon EC2 实例中。

我有一个向 Eureka 注册的简单 REST 服务,并已将 Zuul 配置为通过在 Eureka 中查找来将请求路由到该服务。 在此处输入图像描述

我可以使用 boot2docker 在我的 Mac 上本地运行(即不在 Amazon/EC2 中),但是当部署在 EC2 上时,Zuul 找不到该服务,并报告“转发错误”(状态 500)。

在 EC2 中,所有内容都配置为在端口 80 上运行(在评估时,我可以轻松地通过我们的防火墙访问)。我可以在 Eureka 系统状态页面中看到 Zuul 和我的服务(尽管所有链接都不起作用!)。

客户端配置为使用完整的 AWS 域名查找 Eureka,因此我可以看到他们如何找到 Eureka OK。例如

但是,客户端似乎正在使用其内部 docker IP 地址注册自己(基于 Eureka 系统状态链接)。

在此处输入图像描述

edgeserver 链接指向http://172.17.0.2/info trialservice 链接指向http://172.17.0.3/info

我猜这是不正确的,其他 EC2 实例不知道如何访问该地址。

我已阅读此页面https://github.com/Netflix/eureka/wiki/Configuring-Eureka-in-AWS-Cloud建议使用 AWS EC2 弹性 IP 地址,但我希望我不必这样做.

我还看到这里有一个关于这个主题的当前讨论,https://github.com/spring-cloud/spring-cloud-netflix/issues/432

有没有人设法让这种类型的设置工作,如果是这样,他们是如何配置 Eureka 属性的?

0 投票
1 回答
3778 浏览

spring-cloud - Spring Cloud:使用 Zuul 进行 Canary 部署

我开始使用 Eureka 和 Zuul 使用 Spring Cloud,并且对构建蓝/绿和 Canary 部署有一些疑问。到目前为止,我已经完成了基础工作,并让 Eureka、Zuul 和配置服务器按预期工作。我想要完成的是设置一个有两个版本的服务,比如 1.0 和 1.1。对于特定用户的子集,我想将他们路由到 1.1 版本,而其他所有人都应该转到 1.0 版本。

Zuul 过滤器 API 对文档的了解有点少,我正在努力理解一些概念,所以我想在这里问几个问题。我还运行了一些基本过滤器,除了获取委托人的身份和他们请求的服务之外,它们并没有做很多事情。我碰壁的地方是了解如何向 Eureka 和 Zuul 公开同一服务的两个不同版本。我很好奇的几件事:

  • 在文档、帖子和其他堆栈溢出之间,术语“服务”和“集群”似乎可以互换使用。这个对吗?
  • 话虽如此,如果我有一个名为的服务/simpleservice,我是否会公开两个不同的 serviceID(即simpleservicesimpleservice-1.1)?如果我这样做,当目标用户之一请求/simpleservice时,我会让 Zuul 将它们发送到/simpleservice-1.1
  • 或者,您是否将另一个节点添加到现有服务 ID 并为每个节点添加额外的元数据,以便 Zuul 区分 1.0 和 1.1 版本?
  • 正确答案是“以上所有”吗?:)
0 投票
1 回答
702 浏览

rest - 调用 restTemplate 交换或执行时出现前提条件错误

我正在尝试调用对休息服务的调用。其余客户端和其余服务都在我的机器上以不同的端口运行。执行和交换方法都抛出空指针异常。我的 rest 客户端是一个 Netflix Zuul 过滤器(它自己注册到 Netflix Eureka Discovery 代理)。我希望这没有什么不同,但是堆栈跟踪的结尾似乎提到了“功能区”库。所以我猜这个错误可能与它有关。

我的 Rest Client 中只有@AutowiredRestTemplate 对象。我没有使用@LoadBalanced注释。

当我使用“Eureka 服务”ID 而不是 localhost:端口号时,调用成功执行。什么可能是根本情况?

异常堆栈跟踪:

0 投票
1 回答
449 浏览

spring - Spring Cloud Eureka 连接到安全服务

我正在尝试使用需要连接到安全客户端的 spring cloud Eureka 建立发现服务器。我了解如何保护 Eureka 服务器本身 - 这不是问题。问题在另一个方向——如何让 Eureka 成功地与本身受保护的客户端服务通信。

换句话说; 我有一个向 Eureka 注册自己的发现客户端。该客户端实现 http 基本身份验证。它可以并且确实成功地向发现服务注册了自己,但是当我尝试使用该服务来查找发现服务时,我会遇到身份验证失败(在客户端服务本身上),这当然是有道理的,因为我没有指定任何地方的任何凭据,并且不知道该怎么做。任何帮助将不胜感激。

0 投票
1 回答
464 浏览

spring-cloud - 两个发现服务器之间的负载平衡

我在对等模式下运行发现,其中我有 2 个发现服务器,这些服务器都在交换信息并代表当前发现的服务集。

在服务用于连接到 eureka 的 serviceUrls 中有一个 csv 列表,其中存在 discoveryserver1,discoveryserver2。

所以服务总是去discoveryserver1,除非出现故障,然后他们去discoveryserver2。

我想做的是让发现客户端在发现服务器 1 和发现服务器 2 之间循环,以便服务上的负载均衡。而是一个发现服务器负载很重,而另一个不使用(很多)

除非我重写发现客户端,否则我看不到这样做的方法。

想法?

0 投票
1 回答
2612 浏览

spring-boot - RestTemplate 或 discoveryClient - 在 Spring Cloud 应用程序中使用哪一个?

我从这里的Spring 博客借用了下面的代码。

从其他微服务使用微服务端点有两种选择。

  1. RestTemplate- 提供负载均衡功能,对请求进行负载均衡。但是,如果我有一个在 3 个节点中运行的服务,RestTemplate 是否知道一个节点是否已关闭或响应,并且仅在其中两个节点之间进行“智能”负载平衡。
  2. 用于DiscoveryClient获取服务实例并发出请求(如上所示)。在这种情况下,虽然没有负载平衡,但我认为返回的服务实例是响应式的。

后者失去了负载均衡功能,但提供了一个活跃的服务实例

前者负载平衡,但生成的实例可能处于非活动状态。

我想知道哪个是首选使用?

如果我上面的理解不正确,请纠正我。

0 投票
1 回答
5033 浏览

spring-boot - Spring Cloud——分布式spring应用如何获得重试、负载均衡和断路器的好处

spring-cloud-Eureka我想要支持的微服务应用程序中的以下功能。

1)负载平衡 - 如果我有 3 个节点用于一项服务,负载平衡应该发生在它们之间

2) 重试逻辑 - 如果其中一个节点没有响应,则应在回退到另一个节点之前重试一定次数(例如 3. 应该是可配置的)。

3) 断路器 - 如果由于某些原因,所有 3 个服务节点在访问数据库时出现问题并抛出异常或没有响应,则电路应该打开,调用回退方法,并且在服务恢复后电路自动关闭。

看了很多 Spring-cloud 的例子,我想通了

1)RestTemplate 将有助于选项 1。但是当 RestTemplate 访问一个服务实例并且如果节点失败时,它会尝试使用其他两个节点吗?

2) Hystix 将有助于断路器选项(以上 3)。但是如果只有一个节点没有响应,它会在打开电路并调用回退方法之前尝试其他节点。一旦服务恢复,它会自动关闭电路吗?

3)如何用spring-cloud获取retryLogic?我确实知道@Retryable注释。但它会在以下情况下有所帮助吗?一个节点重试 3 次,失败后,在断路器启动之前尝试下一个节点 3 次和最后一个节点 3 次。

我看到所有这些配置都在 spring cloud 中可用。但是很难理解如何配置所有这些以获得有效的解决方案。

这是一个建议:

但我不完全知道它是否会帮助我解决我上面提到的所有微妙之处。

我确实看到有一个@FeignClient. 但是从这个博客中,我了解到它为 HTTP 客户端请求提供了高级功能。它有助于重试和断路器以及负载平衡多合一吗?

谢谢