java - Spring Cloud 负载均衡和 Feign 客户端
问题描述
我一直使用spring-clound-openfeign
Consul 作为服务注册表,使用 Ribbon 作为负载均衡器。我目前正在使用 spring-boot 2.3.10.RELEASE。
我真的很喜欢 spring-cloud-feign-inheritance 支持,据我了解,它允许我编写服务器端和客户端使用的单个接口。
从 spring-boot2.4.x
开始,spring 团队建议将 Ribbonspring-clould-loadbanced
替换为替换,因为不再维护 Ribbon。
如果我有一个界面,可以说:
interface Greeting {
@GetMapping
String hello(String name);
}
通过使用 Spring Openfeign + Ribbon + Consul,我可以扩展它:
@FeignClient(name="my-service-id")
interface GreetingClient extends Greeting { }
有了它,我将拥有一个具有负载平衡功能的客户端实现。
我是否仍然可以完成与 with 相同的结果spring-cloud-openfeign
,spring-clould-loadbalancer
或者我真的需要使用RestTemplate
或DiscoveryClient
拥有我的 API 的客户端?
对此的全面了解将不胜感激,因为我在其他任何地方都找到了明智的答案。
解决方案
如果你想像使用 Ribbon 一样工作,需要将 spring cloud loadbalancer 连接到 consul。您可以阅读如何将 spring cloud loadbalanncer 连接到 connnect 链接 https://docs.spring.io/spring-cloud-commons/docs/current/reference/html/#serviceregistry
推荐阅读
- node.js - 需要帮助修复我的天气命令的错误
- node.js - oidc-provider 访问 UserInfo enpoint 时提供的令牌无效
- r - 将辅助数据的颜色与 ggplot 中的主要数据匹配
- c# - ASP.NET 如何验证是否选中了复选框列表中的框(1 个且仅 1 个)
- python - 使用 Python 与 Bolt 协议和 Neo4j 相关的连接问题
- python - 原因 max() 为具有相同元素的数组返回不同的结果
- java - 我在使用数组时遇到问题,我只需要它的位置而不是值
- tensorflow - YOLO 自定义目标检测器单 epoch 训练 3 天
- elasticsearch - Elasticsearch:过滤过去 7 天内少于当前时间的文档
- xamarin.forms - 在模型中为列表视图设置命令