大概流程:
RestTemplate发起http请求,因为RestTemplate添加了@LoadBalanced注解,因此发起的Http请求会被LoadBalanceInterceptor拦截,通过Ribbon负载均衡,从eureka-server中获取服务列表,进行均衡选择,替换请求中的服务名,发送有效的Http请求。

Ribbon负载均衡具体流程:

RestTemplate发起的Http请求会被LoadBalanceInterceptor拦截,在intercept方法中获取请求的URI,通过URI获取主机名称,也就是我们的服务名称。


获取服务列表

选择服务

交给父类进行出来

使用默认的Rule对象



IRule接口的实现类

返回具体的服务ip以及端口,进行发起请求


内置负载均衡规则类

修改负载均衡规则的两种方式:
(1) 在代码中定义一个新的IRule,用@Bean添加到Spring容器中。

(2) 在配置文件中修改属性

饥饿加载
创建DynamicServerListLoadBalance的时间消耗会很长


posted @
2022-09-07 19:23
别停
阅读(
11)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南