微服务体系<2> ribbon

bash 复制代码
1. 什么是负载均衡  比如说像这样 一个请求打在了nginx上  基于nginx进行负载分流
这就是负载均衡
bash 复制代码
但是负载均衡分 服务端负载均衡和客户端负载均衡 

客户端负载均衡  我user 从注册中心拉取服务 拉取order列表,然后发起getOne()调用
这就是客户端负载均衡
特点就是我客户端可以拉取到服务端列表


服务端负载均衡  服务端怎么处理负载均衡
就像nginx一样  就可以在nginx中的upstream中配置  订单服务的列表  
我消费者只需要获取到nginx地址就可以了  真正调用呢个服务是由nginx来做的
bash 复制代码
负载均衡算法
随机
轮询
加权轮询
地址Hash 根据ip 进行取模
bash 复制代码
怎么去使用 ribbon就是一个负载均衡器  
基于resttemplate发起调用
bash 复制代码
我们只需要在resttemplate上面添加一个@Lb注解 就可以实现负载均衡的调用了
@Lb得作用就是让我们的RestTemplate的调用框架具备负载均衡能力
bash 复制代码
如果我不配置 @Lb会报错
@Lb的作用就是吧mall-order 替换成 ip:port 然后基于负载均衡算法发起调用
bash 复制代码
nacos-discovery 引入依赖  快速开始 因为nacos-discovery 
中引入了ribbon的依赖
bash 复制代码
在我们的resttemplate上添加一个@Lb注解 就让我们的resttemplate具备负载均衡的能力
然后就让微服务发起调用

内部@Lb是怎么做的 
我们的@Lb干一件事情就是
利用负载均衡算法从多个节点中获取一个  再把微服务名字替换成ip:port
将mall-order 替换成ip:port  然后基于ip:port发起调用
之后就可以正常发起调用
bash 复制代码
Ribbon中有一个,Irule 负载均衡策略
NacosRule优先调用同一个集群   基于随机权重的
bash 复制代码
我们可以全局配置负载均衡策略
bash 复制代码
也可以局部指定具体哪一个微服务
局部配置 基于yaml配置
具体到某一个微服务 使用什么负载策略
bash 复制代码
微服务的调用
当postman第一次发请求的时候 有一些慢   第二次发请求的时候就快了    


bash 复制代码
为什么会这样 因为第一次调用要干的事情:因为第一次会  拉取服务 进行缓存 第二次直接从缓存中去取的
bash 复制代码
这是一种优化 意味着  服务启动的时候就把mall-order拉取过来了
再发起请求的时候 就不用初始化了
我直接从本地拉缓存就可以了
bash 复制代码
Ribbon的使用
bash 复制代码
在resttemplate发起调用的组件上面加上@Lb注解 就具备负载均衡的能力了  就可以发起调用
核心就是注入一个拦截器,拦截器的作用基于mall-order拉取服务列表
然后再根据负载均衡算法发起调用
相关推荐
阿坤带你走近大数据2 小时前
数仓架构的设计思路、模型选择依据、落地难点及解决方案的介绍
架构·管理·数仓·业务与技术融合
ftpeak2 小时前
Mooncake:以 KVCache 为中心的分离式 LLM 服务架构
人工智能·ai·架构·ai编程·ai开发
Agent手记5 小时前
制造业生产流程自动化,Agent需要具备哪些能力?深度拆解2026工业级智能体落地范式与核心架构
大数据·人工智能·ai·架构·自动化
Yunzenn6 小时前
深度分析字节最新研究cola-DLM 第 07 章:推理流水线逐行拆解 —— 从 prompt 到生成文本
人工智能·驱动开发·深度学习·chatgpt·架构·prompt·github
颖火虫盟主7 小时前
Linux 系统分层架构:从硬件通电到 systemd 进程管理
linux·运维·架构
ฅ ฅBonnie8 小时前
Hermes 与 Cloud Code/OpenClaw 架构对比分析及部署实践
人工智能·ai·架构·ai编程
实在智能RPA8 小时前
实在Agent针对金融行业Agent灾备与高可用是如何进行设计的?深度拆解金融级智能体的架构安全与连续性保障
人工智能·安全·ai·金融·架构
callJJ9 小时前
Nacos 详解——从概念到实战
java·spring boot·spring·spring cloud·微服务·nacos
zhangfeng11339 小时前
主流推理模型架构的协议对比表格,和专利坑 专利埋雷
人工智能·语言模型·自然语言处理·架构·开源·开源协议
这是谁的博客?9 小时前
LangChain 框架深度解析:从 LCEL 到 Agent 架构的核心原理
ai·架构·langchain·llm·agent·架构设计