服务消费者从服务配置中心获取到服务的地址列表后,需要选取其中一台来发起RPC调用。如何选择,则取决于具体的负载均衡算法,对应于不同的场景,选择的负载均衡算法也不同。常见的负载均衡算法包括轮询法、随机法、源地址哈希法、加权轮询法、加权随机法、最小连接法。

1. 轮询法

轮询很容易实现,将请求按顺序轮流分配到后台服务器上,均衡的对待每一台服务器,而不关心服务器实际的连接数和当前的系统负载。使用轮询策略的目的是,希望做到请求转移的绝对均衡,但付出的代价性能也是相当大的。为了保证pos变量的并发互斥,引入了重量级悲观锁synchronized,将会导致该轮询代码的并发吞吐量明显下降。

serverWeightMap = new HashMap<String, Integer>();

serverWeightMap.put(“192.168.1.100”,1);

serverWeightMap.put(“192.168.1.101”,1);

面试精讲:负载均衡算法相关推荐

  1. 面试精讲之面试考点及大厂真题 - 分布式专栏 07 说一说什么是正向代理,反向代理

    07 说一说什么是正向代理,反向代理 世界上最快乐的事,莫过于为理想而奋斗. --苏格拉底 引言 05小节面完了RPC相关的一系列问题,面试官确定我对分布式架构的理论知识和服务间通讯框架(RPC) 确 ...

  2. 五分钟让你搞懂Nginx负载均衡原理及四种负载均衡算法

    前言 今天这篇文章介绍了负载均衡的原理以及对应的四种负载均衡算法,当然还有对应的指令及实战,欢迎品尝.有不同意见的朋友可以评论区留言! 负载均衡 所谓负载均衡,就是 Nginx 把请求均匀的分摊给上游 ...

  3. nginx 负载 sessionid 不一致_你不知道的Nginx负载均衡算法,快进来迅速掌握

    关于负载均衡的三种算法,轮询法,随机法,最小连接法,这三种负载均衡的算法,但是关于负载均衡还有其他的算法,我们也需要你去看,而且在面试的过程中,很有可能是会问到的呦. 对于要实现高性能集群,选择好负载 ...

  4. 自古帝王多短命,假如皇帝也懂负载均衡算法...

    " 大家都知道古代皇帝各个都是后宫佳丽三千,而皇帝身上都天然的带着雨露均沾的精神,不想单独的宠爱一人! 来自:51cto技术栈 弱水三千,又怎舍得只取一瓢饮?据传皇帝们晚上睡觉个个都怕冷,因 ...

  5. Citrix Netscaler负载均衡算法

    Citrix Netscaler负载均衡算法 http://blog.51cto.com/caojin/1926308 众所周知,作为新一代应用交付产品的Citrix Netscaler具有业内领先的 ...

  6. 面试精讲之面试考点及大厂真题 - 分布式专栏 05 公司使用什么RPC框架,聊聊你理解的RPC原理

    05 公司使用什么RPC框架,聊聊你理解的RPC原理 引言 前些年我们在做一个规模不大的系统的时候,也就是单体架构,一台服务器部署上一个应用和数据库也就够了.但是现代化互联网公司业务逐渐扩大,服务逐渐 ...

  7. 算法高级(17)-SpringCloud中的负载均衡算法

    前面讲的负载均衡技术实际上都是服务端负载均衡,一个请求需要被发送到哪台服务器做出响应,是由我们的服务器决定的.而在SpringCloud中,采用的缺是客户端负载均衡技术.那么客户端负载均衡的优势到底在 ...

  8. 假如古代皇帝也懂负载均衡算法

     大家都知道古代皇帝各个都是后宫佳丽三千,而皇帝身上都天然的带着雨露均沾的精神,不想单独的宠爱一人!   溺水三千,又怎舍得只取一瓢饮?据传皇帝们晚上睡觉个个都怕冷,因此每晚都需要有人侍寝,那么这么多 ...

  9. 详解【负载均衡】(负载均衡算法、一致性hash、负载均衡架构分析)

    作者:duktig 博客:https://duktig.cn 优秀还努力.愿你付出甘之如饴,所得归于欢喜. 本文源码参看:https://github.com/duktig666/distribute ...

最新文章

  1. matplotlib 散点图和折线图画在一起_使用matplotlib.pyplot画折线图
  2. 7 OC 中class 类的结构
  3. 全球及中国皮肤晒黑喷雾行业销售模式及动态盈利分析报告2021年版
  4. 【USACO06DEC】—牛奶模式Milk Patterns(后缀自动机)
  5. mysql查询大于0的标记_MySQL如何查询回答数大于0的问题并分页
  6. 不能装载文档控件。请在检查浏览器的选项中检查浏览器的安全设置_Excel基础—文件菜单之设置信息...
  7. 分类法过时了吗?【ZZ】
  8. java showinputdialog_java - JOptionPane.showInputDialog中的多个输入
  9. 嵌入式操作系统内核原理和开发(优先级的修改)
  10. 作为程序员的你,除了撸代码,还能干什么?
  11. python读取配置文件获取所有键值对_Python读取properties配置文件操作示例
  12. vb还是python强大-VB强大还是python强大
  13. 以动词开头的习惯搭配:转
  14. springboot整合mybatis源码分析
  15. python fread_fwrite 和 fread函数的用法小结
  16. 电脑麦克风,详细教你电脑麦克风没声音怎么设置
  17. 计算机上如何设置访问密码忘了怎么办,电脑设置的密码忘记了怎么办
  18. Stm32学习(基于HAL库)
  19. 对*.mht文件结构的一个浅显分析
  20. 计算机毕业设计springboot实验填报系统

热门文章

  1. ORA-01950:表空间USERS中无权限的2种方法
  2. 【Todo】【读书笔记】大数据Spark企业级实战版 Scala学习
  3. C# 中 TextBox 换行
  4. DeepFuse: A Deep Unsupervised Approach for Exposure Fusion with Extreme Exposure Image Pairs 阅读笔记
  5. MSF中sessions命令使用
  6. tf变换及工具说明(1)
  7. MYSQL批量数据导入方法之一 LOAD DATA
  8. 异步FIFO代码与测试
  9. 【PAT甲级】1001 A+B Format
  10. Android使EditText和SearchView取消默认焦点,获取焦点弹出键盘