问题标签 [netflix-ribbon]

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 回答
3546 浏览

spring - Eureka 和 Ribbon 是否适用于非 Spring Boot 应用程序?

我正在重写一个 Spring MVC 系统。

该系统很简单: [Gateway<->Backend Services<->Databases],其中 Gateway 是一个控制器,仅用于身份验证并将请求转发到后端服务。

后端服务将重构为微服务。我将使用 Eureka 服务为他们每个人进行注册。所以最终架构将是:[网关 <-> Eureka <-> 后端微服务 <-> 数据库]。网关将从 Eureka 服务器查找注册表并调用微服务。

但是,Gateway 不是 Spring Boot 应用程序(不会被重写为 Spring Boot),因此我不相信 Spring 的 eureka 特性(@EnableEurekaClient、DiscoveryClient 等)可以像示例那样轻松采用。实际上我尝试将 eureka 客户端注释添加到网关的控制器,这导致我的应用程序崩溃。

此外, Gateway 中还需要Ribbon来实现客户端负载平衡。但同样的担忧与上述相同。

//11月1日更新, 我已经搭建了一个Eureka server和一个client,都是用spring boot写的。我将这两个应用程序用于我的 Spring MVC 测试。服务器和客户端运行良好。

服务器的配置application.properties如下

客户端如下:application.yml

访问 Eureka 仪表板 localhost:8761 时,可以看到客户端已注册。

对于我的 Spring MVC 网关,由于它不是 Spring Boot 项目,所以我将示例复制到我的项目中,只是为了测试它是否可以连接到 Eureka 服务器并检索注册的“say-hello”客户端实例。不幸的是,它不能通过在示例类的第 76 行打印“无法从 eureka 获取示例服务的实例来与之交谈”来做到这一点。

这是放置在网关类路径中的 eureka-client.properties。我可以确认 Client 类正在读取配置文件。

而且,这是new DiscoveryClient(applicationInfoManager, clientConfig);时的调试信息。正在执行

我快没主意了。有人可以帮忙解决这个问题吗?

0 投票
1 回答
253 浏览

spring-cloud-netflix - Netflix 功能区:通过 Archaius 在运行时添加/编辑 LoadBalancerRule

我的目标是能够通过 Archaius 在运行时添加/编辑功能区 LoadBalancerRule。

我正在尝试通过 Archaius 在运行时更改属性 NFLoadBalancerRuleClassName。我看到通知我属性已更改的 archaius 日志,但功能区未使用新规则刷新,仍使用旧规则。

[轮询配置来源] | 调试 | com.netflix.config.DynamicPropertyUpdater | 添加或更改属性 | 添加属性键 [myService.ribbon.NFLoadBalancerRuleClassName],值 [com.netflix.loadbalancer.WeightedResponseTimeRule]

我错过了什么吗?

我使用的是spring cloud的1.2.1.RELEASE版本。

0 投票
0 回答
1048 浏览

kubernetes - zuul如何在没有eureka和ribbon的情况下从kubernetes获得动态目的地

我是使用 Zuul 的初学者。我想为 kubernetes 的动态目标(IP 地址)创建一个 http 代理。我检查了可以在没有 Eureka / Ribbon 的情况下使用 Zuul Edge Server,这很有帮助,但我不想指定服务器列表。

我现在拥有的是一个 simpleRouteFilter,它基于 spring-boot 扩展了 ZuulFilter。在过滤器中,它将根据我从 kubernetes 获得的内容更改目标 IP 地址。我还使用ribbon.eureka.enabled=false 关闭了eureka 的东西。

问题是它在本地环境中看起来不错,但是在我将项目部署到 kubernetes 后,它会显示负载均衡器没有可用的客户端服务器:sample-all-services,但它确实有效。我之所以放一个sample-all-service(服务id)是因为当我在属性中删除zuul config时,zuul函数不能正常工作。而且我知道我没有为该 ID 放置任何服务器,因为它是动态的。

问题:(1)Zuul 适合我的场景吗?(2) 如果是,如何调整 Zuul 配置以接受所有 http 请求而不显示负载均衡器不可用警告。(3) 这与 Kubernetes 有关吗?

谢谢。

0 投票
1 回答
1341 浏览

httpclient - zuul 代理缓慢 - RibbonLoadBalancingHttpClient

首先,我只有java的基本知识。我有一些微服务,目前使用 zuul/eureka 来代理这些服务。

注意到直接调用微服务时,吞吐量比通过zuul调用时快3倍。所以我想知道我的zuul配置是否错误。

ab 输出:

直接调用微服务:

通过zuul调用:

祖尔配置:


注意到与微服务本身相比,zuul 占用了大量的 CPU。所以采取了线程转储。我的怀疑是 RibbonLoadBalancingHttpClient 似乎一直在实例化。


线程转储:https ://1drv.ms/t/s!Atq1lsqOLA98mHjh0lSJHPJj5J_I

0 投票
1 回答
1700 浏览

spring-cloud - 在运行时动态配置 Zuul 代理?

我有一个如下所示的 url 路径:

如果identifier是,A那么请求应该转到service_I。如果identifier是,B那么请求也应该转到service_I。如果identifierC,那么请求应该转到service_II,依此类推。

稍后将一个新的identifiers MN添加到系统中,它们的请求应该被路由到service_IV.

是否可以动态配置 Spring Cloud zuul 代理来执行上述任务?

编辑

提供的这个问题包含检查问题的不同方法。

其中 Zuul 具有以下配置:

Zuul 将与 Eureka 合作查找service-id并返回主机参数,以便可以访问该服务。如果不是/path我们有/{userID}并且userID实例分布在多个service_id主机上怎么办?

Zuul/DiscoveryClient 可以查询 Eureka 的 theservice_id和 theuserID以确定哪个主机托管特定的主机userID吗?

0 投票
2 回答
9904 浏览

spring-cloud - 带有 Spring Cloud 和 Eureka java.lang.IllegalStateException 的功能区:没有可用于 localhost 的实例

我在用

我的主要课程:

我的服务电话:

它抛出以下异常

0 投票
0 回答
198 浏览

microservices - 如何动态地将请求从客户端路由到微服务

这是我想要实现的目标: 1. 我有一组相同类型的不同版本的微服务。eg set-1 of account(ms1-v1, ms2-v1, ms3-v1) and set-2 of account(ms1-v2, ms2-v2, ms3-v2) 这里set-1中的所有服务都是v1版本和版本 v2 2 的 set-2。我想使用 Netflix Zuul 根据请求中指定的版本选择帐户的微服务实例。

例如,如果一个请求来自想要访问版本 v1 的帐户服务的客户端。上面的步骤 2 应该返回 ms1-v1、ms2-v1 和 ms3-v1 中的任何一个。在每个请求版本中都将是请求标头的一部分。

我们使用功能区进行客户端负载平衡

提前非常感谢。

0 投票
2 回答
4148 浏览

spring-boot - 我可以动态创建一个 Feign 客户端或创建一个不同名称的实例吗

我已经定义了一个 REST 接口,它使用不同的 Spring Boot 应用程序实现spring.application.namespring.application.name在我的业务中不能相同)。

如何只定义一个 Feign Client,并且可以访问所有 SpringBootApplication REST 服务?

SpringBootApplication A(spring.application.name=A) 和 B(spring.application.name=) 有这个 RestService:

另一个 SpringBootApplication C:

在 SpringBootApplication C 中,我想使用 FeignClientService 来访问 A 和 B。你有什么想法吗?

0 投票
2 回答
3836 浏览

node.js - 如何为nodejs中发现的微服务进行客户端负载平衡

我们正在尝试在使用 java/spring boot 编写的其他微服务的环境中使用 nodejs 构建微服务。

其他微服务使用 consul.io 进行服务发现,使用 Ribbon 进行客户端负载平衡。(即:spring-boot、spring-cloud-starter-consul-discovery、spring-cloud-starter-feign 和 spring-cloud-starter-ribbon 项目)

现在在这个组合中,我们有一个consul 节点模块来注册或发现服务,但是剩下的呢?如何在客户端处理负载平衡的情况下进行发现感知休息调用,类似于功能区。

如何在节点的堆栈中实现这一点?

0 投票
2 回答
1855 浏览

spring - 如何从使用 eureka 调用其他内部微服务的 Spring Cloud 微服务调用外部非 REST API?

在我们的项目中,我们使用 Spring cloud + Eureka 作为服务注册中心。当我们使用ribbon客户端调用内部微服务时,所有的URL都是通过Eureka解析的……这就是调用外部URL的问题。由于外部 API 是老式的 Feign 用法,这似乎不是一个好的选择。

从此类服务调用外部 URL 的最佳方法是什么?

提前致谢

帕特里斯