问题标签 [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.
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);时的调试信息。正在执行
我快没主意了。有人可以帮忙解决这个问题吗?
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版本。
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 有关吗?
谢谢。
httpclient - zuul 代理缓慢 - RibbonLoadBalancingHttpClient
首先,我只有java的基本知识。我有一些微服务,目前使用 zuul/eureka 来代理这些服务。
注意到直接调用微服务时,吞吐量比通过zuul调用时快3倍。所以我想知道我的zuul配置是否错误。
ab 输出:
直接调用微服务:
通过zuul调用:
祖尔配置:
注意到与微服务本身相比,zuul 占用了大量的 CPU。所以采取了线程转储。我的怀疑是 RibbonLoadBalancingHttpClient 似乎一直在实例化。
spring-cloud - 在运行时动态配置 Zuul 代理?
我有一个如下所示的 url 路径:
如果identifier
是,A
那么请求应该转到service_I
。如果identifier
是,B
那么请求也应该转到service_I
。如果identifier
是C
,那么请求应该转到service_II
,依此类推。
稍后将一个新的identifiers
M
和N
添加到系统中,它们的请求应该被路由到service_IV
.
是否可以动态配置 Spring Cloud zuul 代理来执行上述任务?
编辑
提供的这个问题包含检查问题的不同方法。
其中 Zuul 具有以下配置:
Zuul 将与 Eureka 合作查找service-id
并返回主机参数,以便可以访问该服务。如果不是/path
我们有/{userID}
并且userID
实例分布在多个service_id
主机上怎么办?
Zuul/DiscoveryClient 可以查询 Eureka 的 theservice_id
和 theuserID
以确定哪个主机托管特定的主机userID
吗?
spring-cloud - 带有 Spring Cloud 和 Eureka java.lang.IllegalStateException 的功能区:没有可用于 localhost 的实例
我在用
我的主要课程:
我的服务电话:
它抛出以下异常
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 中的任何一个。在每个请求版本中都将是请求标头的一部分。
我们使用功能区进行客户端负载平衡
提前非常感谢。
spring-boot - 我可以动态创建一个 Feign 客户端或创建一个不同名称的实例吗
我已经定义了一个 REST 接口,它使用不同的 Spring Boot 应用程序实现spring.application.name
(spring.application.name
在我的业务中不能相同)。
如何只定义一个 Feign Client,并且可以访问所有 SpringBootApplication REST 服务?
SpringBootApplication A(spring.application.name=A) 和 B(spring.application.name=) 有这个 RestService:
另一个 SpringBootApplication C:
在 SpringBootApplication C 中,我想使用 FeignClientService 来访问 A 和 B。你有什么想法吗?
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 节点模块来注册或发现服务,但是剩下的呢?如何在客户端处理负载平衡的情况下进行发现感知休息调用,类似于功能区。
如何在节点的堆栈中实现这一点?
spring - 如何从使用 eureka 调用其他内部微服务的 Spring Cloud 微服务调用外部非 REST API?
在我们的项目中,我们使用 Spring cloud + Eureka 作为服务注册中心。当我们使用ribbon客户端调用内部微服务时,所有的URL都是通过Eureka解析的……这就是调用外部URL的问题。由于外部 API 是老式的 Feign 用法,这似乎不是一个好的选择。
从此类服务调用外部 URL 的最佳方法是什么?
提前致谢
帕特里斯