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

spring-cloud - 尤里卡的自我保护模式永远不会恢复

我目前面临一个问题,即 Eureka 永远不会清除由于 VM 意外停机而变得陈旧的服务实例。可以理解的是,Eureka 的自我保护模式启动了,因为服务更新/心跳请求大幅下降(低于阈值)。然而,15 个多小时后,死亡的实例仍然在 Eureka 中注册。这是一个主要问题,因为服务请求继续被定向到死实例,只是为了返回错误。

我希望阈值不断调整,一段时间后,尤里卡的阈值将处于新的规范水平,自我保护模式将被重置。我们在镜像设置中使用 Eureka,我们的配置不是很复杂。

我们的设置:

尤里卡通过 spring-boot-starter-parent 1.2.5.RELEASE

是否可以调整 Eureka 配置以重置自我保存模式(它停止清除实例)并在服务停止 5 分钟以上时允许它清除服务注册表?

0 投票
3 回答
7981 浏览

spring-cloud - Spring Eureka:轻轻关闭服务

我有服务 A,即使用服务 B1 和 B2(同一服务的两个实例),全部通过 Eureka 配置。

现在我想将 B1轻轻放下(这样 A 在处理失败的 B1 请求时不会出现问题/延迟)。我想有这样一个程序:

  1. 告诉 B1 停止 ping Eureka
  2. 让 Eureka 传播消息,B1 正在下降
  3. 等到 A 得到信息并且不再使用 B1
  4. 然后关闭 B1

我对第 1 步有疑问。如何请求 B1 停止 ping?寻找一些 JMX 操作但没有找到。

(如果我跳过了第 1 步,只是从 Eureka 中删除 B1,它会从注册表中删除,但会很快更新,因为 B1 仍在 ping Eureka)

0 投票
2 回答
2309 浏览

spring-cloud - Hystrix 可以在没有 Eureka/ Ribbon 或其他 Netflix OSS 模块的情况下使用吗

我们有一个带有我们自己的 API 网关、服务发现和负载平衡的基础设施。但是出于弹性目的,我需要使用 Hystrix。

  1. 有了spring cloud netflix,可以不用Eureka/ Ribbon或者其他Netflix OSS模块使用Hystrix(即断路器注解)吗?
  2. 断路器仪表板(即涡轮机和流聚合器)是否依赖于 Eureka/Ribbon/Zuul?
  3. 断路器注释可以在非弹簧启动应用程序中使用吗?
0 投票
0 回答
273 浏览

spring-cloud - 可以在 Turbine/eureka appconfig 中设置通配符

我正在尝试设置涡轮机和尤里卡以使用一些基本服务。我非常处于出牙阶段,所以请友善:D

我让它在我的涡轮机配置中使用以下内容(注意 appConfig 行):

这一切都运作良好,但是计划如何设置,我们不一定知道我们将通过 Eureka 公开和展示的服务的所有名称......所以我正在寻找的是一种方式在 appConfig 列表中使用通配符。例如,我想要类似的东西:

* 将匹配任何字符串...不幸的是,这不起作用:(我发现 service.* 也没有,或者引用这些字符串中的任何一个。取出 appConfig 片段也不起作用。

那么有什么东西可以提供这种功能吗?我不一定需要使用通配符字符串匹配——即使有某种默认值与在 Eureka 上注册的任何服务相匹配也是完美的。

我在网上寻找过这种东西,但不知道在哪里寻找/寻找什么,所以我陷入了死胡同。我的理解是(如果我错了,请纠正我)EurekaInstanceDiscovery 通过调用 /eureka/apps 并检索在 Eureka 上注册的服务的 XML 信息来工作。所以我不明白为什么这个概念是不可能的,但是我对尤里卡/涡轮机知之甚少。

任何帮助将不胜感激!

非常感谢!

0 投票
1 回答
353 浏览

spring-cloud - 从 Spring cloud Discovery Client 获取更多详细信息

我注意到,随着对公共元素的各种重构为 Spring Cloud Commons,您从自​​动布线 DiscoveryClient 获得的信息相当稀疏。

假设我想获得更多关于服务在 Eureka 注册时获得的传入服务数据的信息。我想要的大部分内容都在 Application 对象中。

我知道我可以从 EurekaClient 获得这个详细信息。如何访问 EurekaClient 对象。

0 投票
4 回答
13396 浏览

java - EnableEurekaServer 导入不存在

我用 gradle 构建了一个 Spring-Service,我想用一个 Eureka-Server 和它一起使用。我的 java 文件如下所示:

但是当我尝试用我的 gradle-file 构建它时,它说:

org.springframework.cloud.netflix.eureka.server 不存在

我为这个问题寻找解决方案,但我似乎独自一人。有人知道为什么它不起作用吗?我是否必须在 build.gradle 文件中写入特定内容?

0 投票
0 回答
2604 浏览

spring-boot - 在 Spring Boot 生态系统中发现 Hazelcast 实例

背景:

我们有一组大约 15 个 Spring Boot 应用程序作为微服务。它们都作为 Docker 容器运行,并作为一个或多个实例的集群运行。我们还使用 Eureka 等 Spring Cloud Netflix 组件,并使用 Feign/Ribbon 从客户端发现正在运行的应用程序实例。

问题:

作为 POC 练习的一部分,我们使用 Redis 和 Hazelcast 测试了缓存和 Spring Boot 配置存储。一切都使用 Spring Boot、Spring Cloud 和 Redis/Hazelcast Java 客户端库。然而,当我们在多节点对等集群中部署 Hazelcast 时,Hazelcast 似乎需要一个“已知的”IP 地址/主机名以及 Java 客户端配置中可用的可访问端口(有或没有 Spring)。通常,当 Hazelcast 部署在临时 VM 实例(例如 EC2)上的多实例集群中时,IP 地址和端口信息不可用。于是我们想到了两种可能的解决方案:

  1. 找到一种将 Hazelcast 作为 Spring Boot 应用程序运行的方法,并将其注册到 Eureka 作为发现客户端。这样其他 Spring Boot 应用程序可以使用 Eureka 动态发现 Hazelcast 实例

  2. 在 Hazelcast 中找到一种方法,以便它可以将其 IP 地址和端口信息动态发布到中央键/值存储

如果有人玩过 Hazelcast 以便能够执行其中一种/两种可能的解决方案,那么如果您能分享更多关于这方面的信息,那就太好了。如果有第三种方法会更好,我也很想知道。

0 投票
0 回答
1207 浏览

spring-cloud - 高容量的 Zuul 服务器失败

我基于此创建了一个示例zuul 服务器: https ://github.com/spring-cloud-samples/zuul-server ,这是一个演示服务,它使用功能区和一个eureka 服务器调用一个虚拟服务。从 zuul 到 demo-service,然后到 dummy-service,但是当我每秒抛出 zuul 200 个请求时(使用 jmeter)它开始失败。

转发错误

原因是:

引起:java.net.SocketTimeoutException:读取超时

我已经尝试了几个配置,但似乎没有任何改变。我现在拥有的 application.properties 是:

我没有实现任何 Hystrix 后备方法。当我从等式中取出 Zuul 并直接点击演示服务时,我可以向它抛出高达每秒 2000 个请求,一切都成功了

问题是:

  1. 为什么 Zuul 每秒只支持几笔交易?
  2. 我试过没有任何配置并且是一样的,应该有哪些配置才能支持更高的音量?

我想要的只是让 zuul 使用功能区路由到服务并在该服务的实例之间进行负载平衡,成功状态至少每秒 200 次或更多。

任何帮助我都会非常感激

0 投票
4 回答
6691 浏览

spring-cloud - 为非 AWS 数据中心设置 Eureka

我已经用 2 个同伴设置了 Eureka,大约 5 分钟后,我看到这条消息出现在 UI 中:

紧急情况!EUREKA 可能不正确地声称实例已启动,但实际上并未启动。续订少于阈值,因此为了安全起见,实例不会过期。

当我查看 Eureka 正在运行的实例之一的输出时,我看到:

如果我理解正确,Eureka 认为它是在 AWS 上配置的。我找不到任何东西application.yml来表明这一点。

关于我在配置中缺少的任何想法?

0 投票
0 回答
1669 浏览

spring-boot - 使用 Docker Compose 进行 Eureka 首次发现和配置客户端重试

我们有三个 Spring Boot 应用程序:

  • 尤里卡服务
  • 配置服务器
  • 使用 Eureka 和 Config Server 的简单 Web 服务

我已经设置了服务,以便我们使用 Eureka First Discovery,即简单的 Web 应用程序从 eureka 服务中找出配置服务器。

单独启动时(本地启动或作为单独的 docker 映像启动)一切正常,即在发现服务运行后启动配置服务器,并且在配置服务器运行后启动简单 Web 服务。

当使用 docker-compose 启动服务时,它们显然是同时启动的,并且基本上是在竞相启动和运行。这不是问题,因为我们已将 failFast: true 和 retry 值添加到简单的 Web 服务,并让 docker 容器重新启动,以便简单的 Web 服务最终将在发现服务和配置服务器同时重新启动时重新启动运行,但这感觉不是最佳的。

我们注意到的意外行为如下:

  • 简单的 Web 服务会多次重新尝试连接到发现服务。这是明智和预期的
  • 同时,简单的 Web 服务尝试联系配置服务器。因为它无法联系发现服务,它会重试连接到本地主机上的配置服务器,例如日志显示重试到http://localhost:8888。这是没有预料到的。
  • 简单的 Web 服务最终将成功连接到发现服务,但日志显示它仍然尝试通过访问http://localhost:8888来建立与配置服务器的通信。同样,这并不理想。

三个问题/意见:

  • 当配置客户端被配置为使用发现来查找配置服务器时,配置客户端回退到尝试 localhost:8888 是一个明智的策略吗?
  • 建立 eureka 连接后,重试机制现在是否应该切换到尝试 Eureka 指示的配置服务器端点?在这种情况下,基本上为配置服务器连接设置更高/更长的重试间隔和周期是没有意义的,因为如果它正在查看本地主机,它永远不会连接到它,所以我们最好只是快速失败。
  • 是否有任何属性可以覆盖此行为?

我创建了一个演示此行为的示例 github 存储库:

https://github.com/KramKroc/eurekafirstdiscovery/tree/master