linux负载均衡杂谈

假如架构中的主机拥有全量数据集,即使其中一台挂了,也不会导致离线,高可用(负载均衡集群)

假如架构中的各主机只拥有sharing,那我们谓之 分布式集群

硬件ctrix

F5-BIG-IP(一台动辄20w,40w,80w一买就是两台)

A10 A10

Array Redware

软件: httpd  nginx varnishi缓存代理服务器 lvs haproxy ats(Apache traffic server基于C)

perlbal web负载均衡程序(I/O前半段异步)事件驱动

基于工作层次划分:

传输层:lvs(不用监听套接字,400-500万个并发连接,但能达到百万级并发的站点有几个,不过除了负载均衡以外,没有其他更多功能了)、 haproxy(mode tcp这一模式可以模拟tcp层调度,支持应用层协议,tcp方面都工作在内核,可能承载3万左右并发/每秒,一天是86400秒,假如一个页面有40个链接, 能响应的pv就达到千万级别了,更别提上了cdn以后,很多请求实际轮不到后端来处理),lvs还是个入门级的负载均衡器,用不到,但几乎是企业必谈话题

应用层:haproxy,nginx,ats,perlbal(套接字工作程序,监听80端口)

假定这样一个使用场景,一个lvs负责n个mysql服务器的负载均衡调度(请求3306端口)

 lvs(linux virtual server)工作在传输层,任何请求在内核协议栈中必须理解 3306应该怎么处理,正常流程 netfilter-prelocating blah blah(anyway本来应该找注册了监听套接字的3306端口的服务,但是没找,直接甩给了后端的mysql服务器),这就要求建立能分析协议报文的负载均衡(据说lvs强于原来apt的dnet所以被linux收录进内核)

猜你喜欢

转载自www.cnblogs.com/saintdingspage/p/9977297.html