问题标签 [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.
spring - 使用 Spring Cloud FeignClients 时出现 404
这是我的设置:
第一个服务(FlightIntegrationApplication)使用 FeignClients API 和 Eureka 调用第二个服务(BaggageServiceApplication)。
github上的项目:https ://github.com/IdanFridman/BootNetflixExample
第一服务:
在其中一个控制器中:
飞行集成服务:
注册服务:
这是第二项服务(baggage-service):
行李服务应用:
行李服务:
BaggageServiceImpl:
调用飞行集成服务的其余控制器时,我得到:
任何的想法 ?
谢谢,雷。
spring-boot - 带有 Spring Cloud 和 Eureka 的功能区:java.lang.IllegalStateException:没有可用于 Samarths-MacBook-Pro.local 的实例
我正在使用功能区负载均衡器开发 Spring Boot Eureka 客户端应用程序。
我有两个使用 Eureka 注册的名为“TEST”的服务器实例。在客户端,我有以下代码从 Eureka 获取服务器。
应用程序.yml
但是,当我使用以下命令访问 restful 端点时,会出现错误:
这是错误:
堆栈跟踪:
看起来我的服务器列表是空的。
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
. 当我运行我的客户时,我得到:
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 属性的?
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(即simpleservice
和simpleservice-1.1
)?如果我这样做,当目标用户之一请求/simpleservice
时,我会让 Zuul 将它们发送到/simpleservice-1.1
- 或者,您是否将另一个节点添加到现有服务 ID 并为每个节点添加额外的元数据,以便 Zuul 区分 1.0 和 1.1 版本?
- 正确答案是“以上所有”吗?:)
rest - 调用 restTemplate 交换或执行时出现前提条件错误
我正在尝试调用对休息服务的调用。其余客户端和其余服务都在我的机器上以不同的端口运行。执行和交换方法都抛出空指针异常。我的 rest 客户端是一个 Netflix Zuul 过滤器(它自己注册到 Netflix Eureka Discovery 代理)。我希望这没有什么不同,但是堆栈跟踪的结尾似乎提到了“功能区”库。所以我猜这个错误可能与它有关。
我的 Rest Client 中只有@Autowired
RestTemplate 对象。我没有使用@LoadBalanced
注释。
当我使用“Eureka 服务”ID 而不是 localhost:端口号时,调用成功执行。什么可能是根本情况?
异常堆栈跟踪:
spring - Spring Cloud Eureka 连接到安全服务
我正在尝试使用需要连接到安全客户端的 spring cloud Eureka 建立发现服务器。我了解如何保护 Eureka 服务器本身 - 这不是问题。问题在另一个方向——如何让 Eureka 成功地与本身受保护的客户端服务通信。
换句话说; 我有一个向 Eureka 注册自己的发现客户端。该客户端实现 http 基本身份验证。它可以并且确实成功地向发现服务注册了自己,但是当我尝试使用该服务来查找发现服务时,我会遇到身份验证失败(在客户端服务本身上),这当然是有道理的,因为我没有指定任何地方的任何凭据,并且不知道该怎么做。任何帮助将不胜感激。
spring-cloud - 两个发现服务器之间的负载平衡
我在对等模式下运行发现,其中我有 2 个发现服务器,这些服务器都在交换信息并代表当前发现的服务集。
在服务用于连接到 eureka 的 serviceUrls 中有一个 csv 列表,其中存在 discoveryserver1,discoveryserver2。
所以服务总是去discoveryserver1,除非出现故障,然后他们去discoveryserver2。
我想做的是让发现客户端在发现服务器 1 和发现服务器 2 之间循环,以便服务上的负载均衡。而是一个发现服务器负载很重,而另一个不使用(很多)
除非我重写发现客户端,否则我看不到这样做的方法。
想法?
spring-boot - RestTemplate 或 discoveryClient - 在 Spring Cloud 应用程序中使用哪一个?
我从这里的Spring 博客借用了下面的代码。
从其他微服务使用微服务端点有两种选择。
RestTemplate
- 提供负载均衡功能,对请求进行负载均衡。但是,如果我有一个在 3 个节点中运行的服务,RestTemplate 是否知道一个节点是否已关闭或响应,并且仅在其中两个节点之间进行“智能”负载平衡。- 用于
DiscoveryClient
获取服务实例并发出请求(如上所示)。在这种情况下,虽然没有负载平衡,但我认为返回的服务实例是响应式的。
后者失去了负载均衡功能,但提供了一个活跃的服务实例
前者负载平衡,但生成的实例可能处于非活动状态。
我想知道哪个是首选使用?
如果我上面的理解不正确,请纠正我。
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 客户端请求提供了高级功能。它有助于重试和断路器以及负载平衡多合一吗?
谢谢