Ribbon+LoadBalance
Ribbon+LoadBalance
ribbon是一套客户端的负载均衡工具。主要提供客户端的负载均衡算法和服务调用。当调用服务时ribbon会自动的帮助你基于某种规则(轮询、随机)去链接机器调用服务。我们也可以使用ribbon实现自定义的负载均衡算法。Ribbon是客户端的负载均衡,Nginx是服务器的负载均衡。
pom依赖
eureka自带了ribbon依赖,所以只需加入eureka客户端依赖。
Ribbon要结合RestTemplate实现远程调用
/*** 配置RestTemplate* 使用@LoadBalanced 默认轮询的负载均衡策略*/ @Configuration public class RestTemplateConfig {@Bean@LoadBalancedpublic RestTemplate getRestTemplate(){return new RestTemplate();} }
@RestController public class OrderController {@Resourceprivate RestTemplate restTemplate;public static final String PAYMENT_URL = "http://CLOUD-PAYMENT-SERVICE";@GetMapping("/login/{admin}/{password}")public Result<Users> orderLogin(@PathVariable String admin,@PathVariable String password){String login_url = PAYMENT_URL+"/sent/user/login/"+admin+"/"+password;//使用restTemplate实现远程调用服务Result<Users> result = restTemplate.getForObject(login_url,Result.class);return result;} }
自定义ribbon负载均衡算法
自定义的ribbon负载规则不能放在@ComponentScan所扫描的包下以及子包下,也就是说不能放在主启动类所在的包内,要与主启动类所在包并列。利用IRule设置规则
@Configuration public class MyRandomRule {@Beanpublic IRule myRule(){return new RandomRule();} }
,在主启动类加上
@RibbonClient(name = "CLOUD-PAYMENT-SERVICE",configuration = MyRandomRule.class)
以下为Ribbon均衡负载规则的类型。
在spring-cloud2020后eureka移除了ribbon。需要使用LoadBalance来设置自定义的负载均衡。eureka自带了LoadBalance依赖,所以只需加入eureka客户端依赖。和ribbon一样需要配置RestTemplate实现远程调用。
自定义LoadBalance负载均衡策略
/*** 自定义随机负载均衡策略*/ public class MyRandomRule {@BeanReactorLoadBalancer<ServiceInstance> randomLoadBalancer(Environment environment,LoadBalancerClientFactory loadBalancerClientFactory){String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);return new RandomLoadBalancer(loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class),name);} }
创建RestTemplate时加上自定义负载均衡策略
/*** 配置RestTemplate* 使用@LoadBalanced 默认轮询的负载均衡策略*/ @Configuration @LoadBalancerClient(name = "CLOUD-PAYMENT-SERVICE",configuration = MyRandomRule.class) public class RestTemplateConfig {@Bean@LoadBalancedpublic RestTemplate getRestTemplate(){return new RestTemplate();} }
Ribbon+LoadBalance相关推荐
- springcloud ribbon @LoadBalance负载均衡源码流程分析
一.编写示例 1.服务端 pom.xml <properties><java.version>1.8</java.version><spring-cloud. ...
- springcloud之负载均衡
文章目录 1.1 两种负载均衡 客户端负载均衡 服务端负载均衡 1.2 概念 1.3 Ribbon组成 1.4 编码及测试 1.4.1 利用Eureka手写负载均衡: 1.4.2 ribbon负载均衡 ...
- springcloud----负载均衡--Ribbon与LoadBalance
简介 Spring Cloud Ribbon 是 Netflix Ribbon 实现的一套客户端 负载均衡工具 简单的说,Ribbon 是 Netflix 发布的开源项目,主要功能是提供 客户端的复杂 ...
- 深入理解Ribbon之源码解析
什么是Ribbon Ribbon是Netflix公司开源的一个负载均衡的项目,它属于上述的第二种,是一个客户端负载均衡器,运行在客户端上.它是一个经过了云端测试的IPC库,可以很好地控制HTTP和TC ...
- 聊聊WebClient的LoadBalance支持
为什么80%的码农都做不了架构师?>>> 序 本文主要研究一下WebClient的LoadBalance支持 代码实例 配置 @Configuration public cla ...
- Ribbon、Feign、OpenFeign、spring-cloud-openfeign的区别
一. Ribbon 随着服务注册中心的安装完成后,客户端的负载均衡和服务的调用又是我们关注的话题.Ribbon可以实现客户端的负载均衡, 负载均衡LB LoadBalance(负载均衡):简单的说就是 ...
- SpringCloud:Ribbon负载均衡(基本使用、 负载均衡、自定义配置、禁用 Eureka 实现 Ribbon 调用)
现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册的目的是希望所有的服务都统一归属到 Eureka 之中进 行处理,但是现在的问题,所有的微服务汇集到了 Eureka 之 ...
- Ribbon源码解析(一)
目录 介绍 引入 关键组件 Modules模块 Ribbon和Spring-Cloud-Loadbalancer Core IClient RetryHandler DefaultLoadBalanc ...
- SpringCloud Ribbon(一)之自定义负载均衡器ILoadBalancer
一.Ribbon负载均衡 一个服务对应一个LoadBalancer,一个LoadBalancer只有一个Rule,LoadBalancer记录服务的注册地址,提供更新服务的注册地址,Rule提供从服务 ...
最新文章
- 如何建立和维护自己的“人脉”
- AngularJs学习
- SVN 之 去掉SVN管理标记
- 20应用统计考研复试要点(part21)--概率论与数理统计
- ubuntu下python的错误
- 探究Redis两种持久化方式下的数据恢复
- 使用Visual Studio Code设置Python开发环境
- java singleton inner class_Java面向对象设计模式-单例模式
- php禁用exec,php – 警告:出于安全原因,已禁用`exec()`
- HBase shell 示例
- 不知道这些,你的世界杯就白看了!
- s3c6410 RTC driver——读取实时时间信息 LDD3 ELDD 学习笔记
- 【图像去噪】基于matlab GUI均值+中值+高通低通+巴特沃斯+PCA+小波+维纳滤波图像去噪【含Matlab源码 1705期】
- web前端——旋转3D魔方
- java数据采集方案_java--数据采集系统.doc
- Potplayer + LAVFilters + madVR 配置教程
- SpringBoot整合Minio实现文件上传、下载
- 《中国云计算数据中心运营指南》
- 智能手环,智能手表,智能眼镜,我们到底该怎么选呢?
- Shadow SSDT
热门文章
- MATLAB案例-汽车雷达
- 多旋翼自主飞行器(C 题 本科组)-- 2015 年全国大学生电子设计竞赛试题
- win7 64位 卸载ie11 方法
- WinDbg入门教程
- 电商-分享时短链接生成方案
- 计算机音乐谱无羁,天谕手游忘羡无羁乐谱代码是什么-天谕手游忘羡无羁乐谱代码分享_快吧手游...
- (一)c语言百题趣味题之--分糖问题
- 关于android手游Sdk开发的专题(一)
- php redis smove,Redis Smove 命令 - Redis 教程 - 自强学堂
- 航天科工研发“高速飞行列车”,最高时速可达4000公里?