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

java - 带有配置服务器的 Spring Cloud Eureka

同时运行 Config Server 和 Eureka Server 时推荐的配置是什么?Config Server 应该是 Eureka 的客户端吗?或者 Eureka 是否应该依赖 Config Server 属性进行配置?还是两者都可以?

0 投票
1 回答
24304 浏览

java - 使用 Eureka 作为使用 REST API 的注册表

几个月来,我们一直在使用 Eureka 和 Spring Boot 应用程序。我们已经使用@DiscoveryClient注释在应用程序之间启用了服务查找。注册、续租和注销都按预期进行。

最近,我们遇到了一个场景,我们有非 Java 应用程序组件(用 C++ 编写),它公开了我们的许多 Spring Boot Java 应用程序会使用的 3 个 REST 服务端点。我们正在尝试查看 C++ 组件是否可以利用 Eureka 服务器的 REST API 来注册自己,以便 Spring Boot Java 应用程序可以通过 Eureka 执行通常的查找以与 C++ 组件取得联系。

由于我不能在 C++ 组件中使用 Eureka 客户端(显然),我开始使用 Postman测试直接 REST API(如此处所述)。通过使用 POST 方法向http://eurekaserver:8761/eureka/apps/FOO-APP(instanceId = 1111 和 hostName = foo-app)发送 JSON 有效负载,注册工作没有任何问题。我可以查询http://eurekaserver:8761/eureka/apps并且可以看到 FOO-APP 按预期列在那里。

但是,当我尝试使用 DELETE 方法对http://eurekaserver:8761/eureka/apps/FOO-APP/1111http://eurekaserver:8761/eureka/apps/FOO-APP/foo-app进行取消操作时,我收到 404 错误。

使用 instanceId:

或(主机名的结果相同):

我尝试了不同的组合,但我无法完成这项工作。我有一种感觉,我错过了一些明显的东西——可能是一些小东西。对此的任何帮助将不胜感激。

PS: Eureka REST 端点文档在 URL 中提到了“v2”。但是,这在我的情况下不起作用。注册(对我有用)不使用如上所述的“v2”。如果有人可以验证这一点,那也会有所帮助。似乎没有足够的材料来说明这一点。

0 投票
1 回答
2928 浏览

spring - 使用docker和gradle在spring-client上连接被拒绝

我在docker上用eureka构建了一个spring-server和一个spring-client,我尝试将客户端连接到服务器。当我在我的build.gradle

一切正常。

但我想用Dockerfile我写的,所以我用buildDocker代替,distDocker我用这种方式:

有了这个Dockerfile

这总是导致

连接被拒绝错误或更准确地说是 ClientHandleException:连接到http://localhost:8761被拒绝

我真的不明白问题出在哪里?如果我不尝试连接到服务器,两种方式都可以工作,但如果我尝试连接,则只能distDocker工作。

0 投票
1 回答
165 浏览

spring-cloud - 为 Ribbon 客户端处理 SpringClientFactory 的 ApplicationContext

在spring-cloud中,当Zuul设置为扫描Eureka中注册的所有服务时,我可以说它为每个serviceId/vipAddress/virtualHostname动态创建一个负载均衡器上下文吗?

何时(安全地)处置此负载平衡器上下文?是在服务的所有实例都从 Eureka 注销时吗?

0 投票
1 回答
2006 浏览

spring-cloud - Spring Cloud Zuul 不重写后端服务响应中的 URL

我已经使用几个 Spring Cloud 服务(配置、服务注册表和 Zuul)设置了一个本地环境。代理使用默认映射正确地公开服务:

我看到的问题是,当我转到http://localhost/service-discovery/时,我看到了 Eureka 仪表板,但没有加载任何相关的静态资源。浏览器显示如下错误:

有没有办法解决这个问题?据我所知,Eureka 仪表板在加载资源时没有使用相对路径,而是假设应用程序已部署到根 servlet 上下文。

更新 我意识到我错过了代表问题。我评论了这个帖子,但我想我会把它带到主帖。问题是 Zuul 代表客户端发出后端请求。当 Zuul 发出该请求时,HTML 响应包含相对于为 Eureka 配置的上下文路径的 URL。通常,代理服务将通过重写响应中找到的任何 URL 来管理这一点,以具有关于代理如何公开它的正确基本上下文。Zuul 是否存在类似的东西?

更改主题以更好地描述问题。

0 投票
3 回答
49426 浏览

spring - 了解Spring Cloud Eureka Server自我保存和续订门槛

我是开发微服务的新手,虽然我已经研究了一段时间,阅读了 Spring 的文档和 Netflix 的文档。

我已经在 Github 上开始了一个简单的项目。它基本上是一个 Eureka 服务器(Archimedes)和三个 Eureka 客户端微服务(一个公共 API 和两个私有 API)。查看 github 的自述文件以获取详细说明。

关键是,当一切都在运行时,我希望如果其中一个私有微服务被终止,Eureka 服务器会意识到并将其从注册表中删除。

在 Stackoverflow 上找到了这个问题,解决方案通过enableSelfPreservation:false在 Eureka Server 配置中使用。一段时间后执行此操作,被杀死的服务会按预期消失。

但是我可以看到以下消息:

自我保护模式已关闭。这可能无法在网络/其他问题的情况下保护实例到期。

1.自我保存的目的是什么?该文档指出,通过“客户可以获取不再存在的实例”进行自我保存。那么什么时候开启/关闭它是可取的呢?

此外,当自我保存开启时,您可能会在 Eureka Server 控制台警告中收到一条未完成的消息:

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

现在,继续使用 Spring Eureka 控制台。

我遇到了阈值计数的奇怪行为:当我单独启动 Eureka Server 时,阈值为 1。

2. 我有一个单独的 Eureka 服务器,并配置registerWithEureka: false为防止它在另一台服务器上注册。那么,为什么它会出现在阈值计数中?

3. 对于我开始的每个客户,阈值计数增加 +2。我想这是因为他们每分钟发送 2 条更新消息,对吗?

4. Eureka 服务器从不发送更新,因此最后一分钟更新总是低于阈值。这是正常的吗?

服务器配置:

客户端 1 配置:

0 投票
2 回答
1517 浏览

spring-boot - Clustering Spring Boot applications

I have an adapter (written in Spring Boot and Spring Integration) retrieving currency reates from two different sources (via REST and proprietary library). I filter unnecesary things, create instances of class known in my system and send rates to JMS cluster. I want this adapter to be replicated. Only one instance should be running at the same time. When one crashes (I know it from health endpoint) another one should start publishing rates. How can I achieve such effect? I know that available services can be registered using Eureka but how to turn one of them on automatically?

0 投票
1 回答
2700 浏览

java - docker 容器中的 Eureka 客户端

我有一个 eureka 服务器和两个在 docker 容器中运行的 rest 服务(eureka 客户端)。如果第一个服务尝试访问第二个服务,我会收到 UnknownHostException。原因是服务在 eureka 服务器上注册了 dns 服务器无法解析的容器主机名。

我认为解决方案可能是为 docker 容器设置主机名。所以我使用带有 -h 标志的 docker 来设置主机名: docker run -h project-dev.net9.mycompany.com

但是现在服务甚至无法在 eureka 服务器上注册。我得到这个例外:

域 project-dev.net9.mycompany.com 可以在我们的网络中访问,我可以 ping 它。

我还可以访问http://project-dev.net9.mycompany.com:8761/下的 eureka 仪表板。所以尤里卡服务器运行正常。

我很感激任何提示。

0 投票
3 回答
11146 浏览

spring-cloud - 没有Eureka / Ribbon可以使用Zuul Edge Server吗

我们有一个具有服务发现和负载平衡的基础设施(即带有 STM 和 weblogic 集群的服务器端)。现在我们正在重构为微服务。我们需要一个 API 网关来执行到其他微服务的基本路由。Netflix Zuul 看起来是一个不错的候选者,但是如果没有 Eureka,我无法让 Zuul 工作——但我们不需要 Eureka,因为我们已经有了服务发现和负载平衡。

  1. 是否可以在没有 Eureka 和 Ribbon 的情况下使用 Zuul?
  2. 如果是,请提供一些行会,因为 wiki 中没有提及。

谢谢。

0 投票
1 回答
1116 浏览

spring-cloud - 确定功能区(+ Feign)客户端中的缓存实例

我们正在 Spring Cloud + NetflixOSS 上构建微服务架构,到目前为止,这真是太棒。然而我们注意到,当我们第一次启动 Eureka + 2 个单独的微服务时,Service1 无法连接到 Service2 大约 30 秒,即使它们都非常快速地注册到 Eureka 并单独出现。这发生在本地或部署(通过 Tutum 在 AWS 上)

我们得到的错误是:

负载均衡器没有可用于客户端的服务器:Service1

几乎我们所有的超时和设置都被指定为默认值,所以我们觉得有什么问题。我们担心的是滚动更新到 Service1 并让它注册到 Eureka 然后有 30 秒的停机时间(或者可能取决于 Service1 的 Service2 停机时间)

有没有人见过这种行为?有没有办法检查/调试/记录客户端负载平衡候选者?我们已经浏览了很多 Netflix 代码(有/没有调试器),但我们没有看到很多有用的日志记录和自省点(特别是因为 Observables 在深度调试会话期间往往会超时)

建议?建议?渴望牺牲的异教徒神?

谢谢