Tag: netflix eureka

尤里卡检测服务状态

上下文 我们使用Spring Cloud Netflix和Eureka作为服务发现,使用Zuul代理服务并对它们进行负载均衡。 微服务使用NodeJS实现,并使用NPM模块eureka-js-client在Eureka上注册,其间有一个自定义层,用于处理配置和所有微服务通用的内容。 问题 问题是Eureka无法识别是否有一项服务出现问题。 这是一个问题,因为我们正在拥有一个具有自动部署的开发基础架构,每次重新部署并重新启动不同端口上的微服务而无需重新启动Eureka(和Zuul)。 因此,过了一段时间,我们有一个微服务的十个或更多实例,其中只有一个上升,但所有被认为是上升。 解决方法 我尝试在客户端上设置heartbeatInterval较小,但这没有帮助。 我尝试在服务器上设置renewalThresholdUpdateIntervalMs较小,但这也无济于事。 更多令人沮丧,无助的财产尝试…… 题 如何在合理的时间内(不是30分钟左右)配置Eureka以驱逐实例或将状态设置为DOWN不发送心跳的实例? 代码片段 服务器本身不包含可提及的代码(只需几个注释即可使用Spring Cloud Starter启动Eureka服务器)。 Eureka服务器的配置(我删除了所有非工作尝试): server: port: 8761 spring: cloud: client: hostname: localhost eureka: instance: address: 127.0.0.1 hostname: ${spring.cloud.client.hostname} 发送到服务器的客户端配置(使用eureka-js-client ): { instance : { instanceId : `${CONFIG.instance.address}:${CONFIG.instance.name}:${CONFIG.instance.port}`, app : CONFIG.instance.name, hostName : CONFIG.instance.host, ipAddr : CONFIG.instance.address, port : { […]

从单个主机注册Spring Boot Eureka Client的多个实例

UPDATE 此repo中的README已更新,以在接受的答案中演示解决方案。 我正在使用基于本指南的Spring Boot Eureka服务注册和发现的简单示例。 如果我启动一个客户端实例,它会正确注册,并且它可以通过DiscoveryClient看到自己。 如果我使用不同的名称启动第二个实例,它也可以。 但是,如果我启动两个具有相同名称的实例,则仪表板仅显示1个正在运行的实例,而DiscoveryClient仅显示第二个实例。 当我杀死第二个实例时,第一个实例再次通过仪表板和发现客户端可见。 以下是我正在采取的步骤以及我所看到的步骤的更多细节: 尤里卡服务器 启动服务器 cd eureka-server mvn spring-boot:run 访问位于http:// localhost:8761的Eureka仪表板 请注意,尚未注册“实例” 尤里卡客户 启动客户端 cd eureka-client mvn spring-boot:run 直接访问客户端: http:// localhost:8080 / /whoami端点将显示客户端对其应用程序名称和端口的自知之明 { “springApplicationName”:”eureka-client”, “serverPort”:”8080″ } /instances端点最多需要一分钟才能更新,但最终应显示已在Eureka Discovery Client中注册的所有eureka-client实例。 [ { “host”:”hostname”, “port”:8080, “serviceId”:”EUREKA-CLIENT”, “uri”:”http://hostname:8080″, “secure”:false } ] 您现在也可以再次访问Eureka dashoboard并在那里看到它。 使用其他名称启动另一个客户端 您可以通过执行以下操作看到另一个客户端将被注册: cd eureka-client mvn spring-boot:run -Dspring.application.name=foo […]

Spring Eureka服务器显示RENEWALS比THRESHOLD更糟糕

在Spring Eureka服务器刷新仪表板多次后,屏幕上会显示以下消息: 更新比阈值更重要。 自保护模式已关闭。在网络/其他问题的情况下,可能无法保护实例。 谁能告诉我这个消息是什么意思? 有没有为什么要禁用它?

没有Spring-boot的Eureka服务发现

我写了一个spring boot微服务和一个REST客户端。 客户端是另一个模块的一部分,并对微服务进行RESTful调用。 微服务向Eureka注册表注册,我希望我的客户端(这不是一个Spring启动项目)使用Eureka查询和获取服务端点。 我的问题是因为客户端不是Spring-Boot应用程序我不能使用@SpringBootApplication , @EnableDiscoveryClient等注释,并且DiscoveryClient不会自动连接到应用程序。 无论如何都要在不使用注释的情况下手动将DiscoveryClient bean自动连接到客户端?