关于SpringCloud Ribbon替换轮询算法问题
Spring Cloud Ribbon是基于Netlix Ribbon实现的一套客户端负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项。
Ribbon负载均衡调用
概述
Spring Cloud Ribbon是基于Netlix Ribbon实现的一套客户端负载均衡的工具。
简单的说,Ribbon是Netflix发布的开源项目, 主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer (简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。
官网资料
https://github.com/Netflix/ribbon/wiki/Getting-Started
想要替换Ribbon的负载均衡算法,需要自定义配置类,这个配置类的位置需要注意:不能放在可以被@ComponentScan
所扫描的包下,否则改动将会是Ribbon全局的,不再有特殊性。子包也不行
更改Ribbon负载均衡算法
新建一个配置类,用于注入Bean,配置类如下:
RandomRule
:使用随机的负载均衡算法。
注意:类名不要与方法名重复。
注意一下我的包结构,没有放在可以被扫描的包下
然后给启动类添加一个注解,具体看注释,MySelfRule
就是我们上面建的配置类。
完成
其他自带的负载均衡算法
到此这篇关于SpringCloud Ribbon替换轮询算法的文章就介绍到这了,更多相关SpringCloud Ribbon轮询算法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
浅谈SpringCloud之Ribbon详解
一.什么是负载均衡 负载均衡:建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 现在网站的架构已经从C/S模式转变为B/S模式,C/S模式是有一个专门的客户端,而B/S模式是将浏览器作为客户端.当用户在浏览器上输入一个网址按下回车键后,就会产生一个请求,在远方的服务器会处理这个请求,根据这个请求来生成用户想要的页面,然后将这个页面响应给浏览器,这样用户就能看到他想要看到的东西.我们知道,一台服务器处理数
-
聊聊SpringCloud中的Ribbon进行服务调用的问题
目录 1.Robbon 1.1.Ribbon概述 1.2.Ribbon负载均衡演示 1.3.Ribbon核心组件IRule 1.4.Ribbon负载均衡算法 1.4.1.轮询算法原理 负载均衡算法: 1.4.2.RoundRobinRule 源码 1.4.3.手写轮询算法 前置内容(1).微服务理论入门和手把手带你进行微服务环境搭建及支付.订单业务编写(2).SpringCloud之Eureka服务注册与发现(3).SpringCloud之Zookeeper进行服务注册与发现(4).Spring
-
深入理解Java SpringCloud Ribbon 负载均衡
目录 前言 1.抛出问题 2.源码解析 2.1.LoadBalancerIntercepor 2.2.LoadBalancerClient 2.3.负载均衡策略IRule 2.4.总结 3.负载均衡策略 总结 前言 该技术博客是关于黑马视频教程的笔记总结! 服务消费者需要通过RestTemplate调用注册中心(Eureka)的服务提供者,但当同一服务名称的服务有多个的时候,我们的服务消费者应该调用哪一个服务呢?这时候就需要我们学习理解Ribbon负载均衡的实现原理. 当我们在RestTempl
-
关于SpringCloud Ribbon替换轮询算法问题
Spring Cloud Ribbon是基于Netlix Ribbon实现的一套客户端负载均衡的工具. 简单的说,Ribbon是Netflix发布的开源项. Ribbon负载均衡调用 概述 Spring Cloud Ribbon是基于Netlix Ribbon实现的一套客户端负载均衡的工具.简单的说,Ribbon是Netflix发布的开源项目, 主要功能是提供客户端的软件负载均衡算法和服务调用.Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等.简单的说,就是在配置文件中列出Load
-
c# 实现轮询算法实例代码
c# 轮询算法 这两天做东西,业务上有个特殊的需求,在用户访问页面的时候,针对某一行代码进行控制,按照概率来进行显示,我做的是针对当前页面的曝光进行处理,曝光代码是第三方的,页面上只要有这段代码就算是执行了这段曝光代码,所以才写了这个轮询的一个方法,这个方法可以根据自己的需求修改,下面我把这个方法全部帖出来: CacheSlidingExpirationHour:时间,缓存时间2小时 CountdownCurrentIndexCacheName:缓存名称 log:日志 m_objCountdow
-
C#实现Nginx平滑加权轮询算法
本文实例为大家分享了C#实现Nginx平滑加权轮询算法的具体代码,供大家参考,具体内容如下 代码很简单,算法很经典! 1. 定义实体类 public struct ServerConfig { //初始权重 public int Weight {get;set;} //当前权重 public int Current {get;set;} //服务名称 public string Name {get;set;} } 2. 算法 public static int NextServerIndex(S
-
详解Nginx轮询算法底层实现的方法
轮询算法简介 在工作中很多人都使用到了nginx,对nginx得配置也是烂熟于心,今天我主要想介绍一下nginx轮询算法得几种底层实现方式. 简单轮询算法 这种算法比较简单,举个例子就是你有三台服务器 第一台服务器 192.168.1.1 第二台服务器 192.168.1.2 第三台服务器 192.168.1.3 第一个请求过来之后默认访问第一台,第二个请求过来访问第二台,第三次请求过来访问第三台,第四次请求过来访问第一台,以此类推.以下是我代码实现简单得算法: public class Sim
-
Go 实现 Nginx 加权轮询算法的方法步骤
目录 一,Nginx 负载均衡的轮询 (round-robin) 1. nginx 中的配置 2. 简单介绍 3. 特点 4. 实现 (这里使用golang模拟实现) 5. 测试 二,Nginx 负载均衡的加权轮询 (weighted-round-robin) 1. nginx 配置 2. 加权算法简介-特点 3. 算法说明 4. 简单举例 5. 代码实现 6. 测试验证 最近在看一些 getway 相关的资料,发现有关 Nginx 负载均衡的算法有点多,但是有点乱,所以整理下...如有不对地方
-
Java实现平滑加权轮询算法之降权和提权详解
目录 前言 1.两个关键点 2.代码实现 2.1.服务节点类 2.2.平滑轮询算法降权和提权 3.分析结果 4.结论 前言 上一篇讲了普通轮询.加权轮询的两种实现方式,重点讲了平滑加权轮询算法,并在文末留下了悬念:节点出现分配失败时降低有效权重值:成功时提高有效权重值(但不能大于weight值). 本文在平滑加权轮询算法的基础上讲,还没弄懂的可以看上一篇文章. 现在来模拟实现:平滑加权轮询算法的降权和提权 1.两个关键点 节点宕机时,降低有效权重值: 节点正常时,提高有效权重值(但不能大于wei
-
Springcloud ribbon负载均衡算法实现
一 前言 经过几篇的cloud系列文章,我想大家都有一个坚实的基础,后续的学习就会轻松很多,如果是刚刚来看的读者需要有eureka基础知识,或者查阅知识追寻者的cloud系列专栏:这篇文章主要讲解如何使用ribbon实现web service客户端调用,ribbon默认算法实现负载均衡等! 二 ribbon简介 ribbon是一个客户端负载均衡器,其能够整合不同的协议工具进行web service API 调用: 主要特色如下: 提供可插拔式的负载均衡整合服务发现故障弹性恢复cloud支持客户端
-
Java负载均衡算法实现之轮询和加权轮询
目录 1.普通轮询算法 2.加权轮询算法 2.1.实现方式一 2.2.实现方式二(重点难点) 2.2.1.概述 2.2.2.举个例子理解算法 2.2.3.代码实现 总结 1.普通轮询算法 轮询(Round Robin,RR)是依次将用户的访问请求,按循环顺序分配到web服务节点上,从1开始到最后一台服务器节点结束,然后再开始新一轮的循环.这种算法简单,但是没有考虑到每台节点服务器的具体性能,请求分发往往不均衡. 代码实现: /** * 普通轮询算法 */public class RoundRob
-
SpringCloud Ribbon与OpenFeign详解如何实现服务调用
目录 Ribbon 初识Ribbon Ribbon是什么 Ribbon能干什么 使用Ribbon实现负载均衡 RestTemplate三步走 负载均衡算法 轮询算法 OpenFeign 初识OpenFeign 什么是OpenFeign 如何使用OpenFeign OpenFeign超时控制 OpenFeign日志打印 Ribbon 初识Ribbon Ribbon是什么 Ribbon是Netflix发布的开源项目,主要功能是提供对客户端进行负载均衡算法的一套工具,将Netflix的中间层服务连
-
PHP 进程池与轮询调度算法实现多任务的示例代码
phper 请了解进程调度策略,CPU 时间片,进程控制[创建,销毁,回收,进程信号]与及进程运行流程和基本的进程组,信号中断原理,以及进程之间的关系. 关于进程的更多内容可参考本人前面撸过的文章或是百度了解. 进程的通信: 匿名管道,命名管道,消息队列,内存共享,socketpair 请自行撸代码测试哦 进程的调度算法: 轮询,随机分发,计分板等策略或是搞个优先极或是队列,或是堆栈等基本的算法[自己去发挥哦] 进程池: 撸过 tcp 的话应该知道要能处理多个客户端,就得用 IO 复用技术[事件
随机推荐
- PHP+Mysql+jQuery实现发布微博程序 jQuery篇
- 深入解析Android App开发中Context的用法
- 可能是最通俗的一篇介绍markdown的文章
- ASP个人网站与动网整合非官方方法
- IE或软件加载页中提示脚本错误的解决办法集合
- Apache和Tomcat服务器间的区别、联系、整合详细介绍
- iOS实现微信朋友圈与摇一摇功能
- socket多人聊天程序C语言版(一)
- Android实现文件上传和下载倒计时功能的圆形进度条
- vue的基本用法与常见指令
- C/C++位操作实例总结
- git fork同步是什么意思?
- 用服务器日志监控软件、服务器日志分析工具软件教你如何查看服务器日志?
- jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
- Lua脚本实现递归删除一个文件夹
- git使用.gitignore设置不生效或不起作用问题的解决方法
- javascript常见数据验证插件大全
- JavaScript数据结构与算法之栈与队列
- javascript在一段文字中的光标处插入其他文字
- js微信支付实现代码