【Spring Cloud】客户端负载均衡组件——Ribbon(三)
2024-09-01 11:19:54
一、负载均衡
负载均衡技术是提高系统可用性、缓解网络压力和处理能力扩容的重要手段之一。
负载均衡可以分为服务器负载均衡和客户端负载均衡,服务器负载均衡由服务器实现,客户端只需正常访问;客户端负载均衡技术,客户端会维护一组服务器引用,每次发起请求,根据负载均衡算法选择一个服务器节点进行访问,将用户请求尽可能平摊到后端服务器上,做到系统的高可用。
Spring Cloud提供了两种服务调用方式,客户端访问的RESTful+Ribbon和服务间的Feign调用(内部集成了Ribbon),都采用了客户端负载均衡组件Ribbon。
二、Ribbon
Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,基于Netflix Ribbon实现,不是独立部署,但它几乎存在于每个微服务的基础设施中。
在客户端从服务注册中心获取服务器信息列表后,根据负载均衡算法选择一个服务器用于本次访问。
要注意:在Eureka注册服务集群时,提供相同服务的应用要注册为同名服务,Ribbon也是通过服务名来调用服务。(每个服务都连接不同的数据库,这样用来区分不同的服务,便于测试,实际中也便于维护)
Ribbon自带的负载均衡策略有如下几个:
- RoundRibbonRule:轮询,也是默认的负载均衡策略。
- RandomRule:随机选择。
- AvailabilityFilteringRule:先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,以及并发连接数超过阈值的服务,剩下的服务中采用轮询的方式。
- BestAvailableRule:先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务。
- WeightedResponseTimeRule:根据平均响应时间计算所有服务的权重,响应越快的服务权重越大,越容易被选中,通常在系统刚启动,统计信息不足的情况下,采用轮询的方式。
- RetryRule:先轮询,如果获取失败则在指定时间内重试,重新轮询可用的服务。
- ZoneAvoidanceRule:复合判断Server所在区域的性能和server的可用心选择服务器。
可以在配置文件中指定Ribbon采用的负载均衡策略。
三、demo演示
最新文章
- 【IOS开发笔记02】学生管理系统
- 将richTextBox中的内容写入txt文件发现不换行(解决方法),在richTextBox指定位置插入文字
- iOS UITableViewController出现crash
- Congruence relation 同余关系
- MAFFT多重序列比对--(附比对彩标方法)
- centos 7 u盘安装
- word-break:break-all和word-wrap:break-word的区别
- jquery中ajax常用方法
- 斜率优化(CDQ分治,Splay平衡树):BZOJ 1492: [NOI2007]货币兑换Cash
- EF项目中应用出现问题???
- matlab绘制函数
- flex中在basewidget中不能使用图表组件问题
- HDu 2830 Matrix Swapping II(dp)
- Fiddler插件 --- 解密Elong Mapi请求参数及响应内容
- Spring 自定义注解,配置简单日志注解
- KVM_虚拟化技术
- 要求必须全部重复的数据sql--想了半天才写出来的
- Eclipse中java文件生成jar文件的方法
- CopyOnWriteArrayList&;Collections.synchronizedList()
- MT【105】待定系数算最大最小
热门文章
- 关于ClassLoader的使用
- 09 (OC)* 键路径(keyPath)、键值编码(KVC)、键值观察(KVO)
- Python连载39-生成器、next函数、yield返回值
- [LeetCode]Power of N
- 深入全面理解面向对象的 JavaScript
- 节点操作--JavaScript
- vmware上安装centos7虚拟机
- 理解 Redux 的中间件
- SpringBoot 连接kafka ssl 报 CertificateException: No subject alternative names present 异常解决
- SpringMvc问题记录-Controller对于静态变量的访问分析