博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对于负载均衡的理解
阅读量:5075 次
发布时间:2019-06-12

本文共 1128 字,大约阅读时间需要 3 分钟。

看了好多关于Nginx,LVS等的文章,跟很多朋友讨论,自己的项目组也实现了一个demo,今天终于搞清了关系。

LVS是一个四层负载均衡,四层就是OSI模型的第四层,TCP/IP层,它是根据cip,cport,sip,sport等做负载均衡,并不理解HTTP等请求内容(因为那是第七层应用层管的事),所以对于海量请求,最前面比较适合搞个LVS做负载,分发请求

Nginx是一个有很多功能的Server,它首先是一个反向代理Web服务器,然后可以做七层负载均衡器,还有重写URL,静态缓存等功能。由于其工作在应用层,因此能够理解HTTP协议,因此可以通过URL做分发,可以实现动静分离,比如把动态请求转给tomcat,相当于apache服务器的mod_jk。其可以自己处理静态内容。当然这都是因为其可以通过指定location参数配置的,你想实现怎么样的分发都可以。其还有内置模块基于ip分发。其还支持健康检查,有机器挂了就自动不再发到那台机器了。

KeepAlived是用来心跳负载均衡器的,这只有当负载均衡器是集群时才用到的,当一个负载均衡器挂了,可以无缝切换到其他负载均衡器上。

Session保持依靠两个机制,一个是session sticky,基于nginx使用它的一个插件jvm_route,LVS的看来应该是采用source hash这种策略。另外就是当后面的应用服务器挂了,session怎么办,一种方案是session复制,tomcat自己的方式;一种方案是共享存储session,可以是memcache等,我们选用了Terracotta,优点是对代码没有侵入性,不需要实现序列化接口,堆级复制,对变化同步,跟memcache比性能会差些,差多少没测过。

Squid静态缓存服务器,现在Nginx基本可以搞定这个事情了,效率甚至更高。

所以大网站的策略是 LVS+Squid+Nginx+Memcache+Tomcat+Terracotta

Memcache或是Redis这种东东来替代数据库加速数据访问。

LVS高效的负载均衡到各个Nginx上,Ngtinx再分发,做动静分离。

对于大量读的网站,大多数请求估计到不了Tomcat,都被Nginx转到静态页面缓存的服务器上去了。

CDN技术可以帮助网站路由到离用户最近的CDN节点,读取上面的内容。

这些都是针对大量读的网站,读写分离,对并发事务的锁要求非常低,并发事务并不可怕,可怕的是锁。

下面是一个大牛的blog,讲了好多经验,人家都是处理数十亿pv的

下面是将Redis的

 

 

转载于:https://www.cnblogs.com/liuzhuqing/p/7480360.html

你可能感兴趣的文章
01_11_SERVLET中使用javabean
查看>>
知识点
查看>>
利用MVC5+EF6搭建博客系统
查看>>
容器生态系统 (续) - 每天5分钟玩转容器技术(3)
查看>>
160802、1.06s删除10w条重复记录只保留一条(mysql)及linux删除乱码文件
查看>>
辛德勒的救赎——再谈辛德勒名单
查看>>
浅析Android中的消息机制
查看>>
JAVA异常
查看>>
MySQL中间件
查看>>
sphinx 增量索引与主索引使用测试
查看>>
双向一对一
查看>>
Jrain'Lのvueblog
查看>>
ASP.NET WebAPI 07 路由
查看>>
《BI那点儿事》数据挖掘初探
查看>>
TotoiseSVN的基本使用方法
查看>>
2015.03.12,外语,读书笔记-《Word Power Made Easy》 10 “如何讨论交谈习惯”学习笔记 SESSION 24...
查看>>
Scala数组
查看>>
C使用FILE指针文件操作
查看>>
laravel 中MySQL临时表使用
查看>>
优化listview列表速度
查看>>