HTTP负载均衡简单实现
来源:互联网 发布:vip域名为什么不能备案 编辑:程序博客网 时间:2024/05/17 01:14
在互联网应用中,负载均衡技术应用非常广泛,常用的有LVS,nginx,haproxy,这些技术都已经非常成熟和稳定了。
然而随着如hadoop之类的分布式系统的流行,这些系统都在内部实现负载均衡功能而不依赖外部负载均衡设备,例如SolrCloud内部就实现了一个简单的轮询负载均衡逻辑,梳理如下:
- 设置两个数组,aliveServers存储正常服务,zombieServers存储异常服务。
- 启动独立线程周期性检测zombieServers中的服务,如果恢复正常,将其转移至aliveServers中。
- 在集群处理正常请求时,遍历请求aliveServers中的host,如果请求失败,请求下一个host,直至请求成功或者遍历完aliveServer,将请求失败的host保存至zombieServer并且更新aliveServer。如果遍历完aliveServer仍没有正常服务,可以再遍历一次zombieServer,因为之前的失败可能是因为网络突然的不稳定导致,也可能检测周期还没到,而实际上服务已经恢复。可按照如下逻辑选择后端服务,maxTries是aliveServers大小,counter每访问一次后端服务,计数一次
for (int attempts=0; attempts<maxTries; attempts++) { int count = counter.incrementAndGet(); ServerWrapper wrapper = serverList[count % serverList.length];
- 在更新aliveServers、zombieServers注意同步问题。
- 参考实现:http://search-lucene.com/c/Solr:/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java
0 0
- HTTP负载均衡简单实现
- 简单实现负载均衡
- 简单实现负载均衡2
- 简单实现负载均衡3
- nginx简单实现负载均衡
- nginx 负载均衡简单实现
- nginx简单负载均衡实现
- nginx简单实现负载均衡
- Nginx实现HTTP负载均衡和TCP负载均衡
- nginx反向代理实现http负载均衡
- NGINX + TOMCAT + MEMCACHED实现HTTP负载均衡
- 简单实现负载均衡(原创)
- 简单实现web服务器负载均衡
- 如何简单的实现网络负载均衡
- LVS-DR简单模型实现负载均衡
- Nginx学习-2.1 简单实现负载均衡
- LVS+keepalived简单实现负载均衡
- Nginx安装以及简单实现负载均衡
- 文件系统笔记ext4 yaffs2 fat ubi
- weblogic下同名类的优先级设置.txt
- FR填报和控件
- 字符串操作(1)
- CodeForces 490A Team Olympiad
- HTTP负载均衡简单实现
- 虚拟内存与内存映射文件区别与联系
- 加快XCode的编译链接速度(200%+)—XCode编译速度慢的解决方案
- Linux可靠/不可靠信号编程实践
- Java抽象类和接口的区别及优缺点 (转载)
- java 过滤标点符号
- 科大讯飞SDK接入-actionScript3版
- Android开发都需要使用什么语言?
- 关于中断向量表的拷贝和映射机制