Web负载均衡的一些知识点

web负载均衡的作用就是把请求均匀的分配给各个节点,它是一种动态均衡,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把请求理分配出去。对于不同的应用环境(如电子商务网站,它的计 算负荷大;再如网络数据库应用,读写频繁,服务器的存储子系统系统面临很大压力;再如视频服务应用,数据传输量大,网络接口负担重压。),使用的均衡策略(算法)是不同的。 所以均衡策略(算法)也就有了多种多样的形式,广义上的负载均衡既可以设置专门的网关、负载均衡器,也可以通过一些专用软件与协议来实现。在OSI七层协议模型中的第二(数据链路层)、第三(网络层)、第四(传输层)、第七层(应用层)都有相应的负载均衡策略(算法),在数据链路层上实现负载均衡的原理是根据数据包的目的MAC地址选择不同的路径;在网络层上可利用基于IP地址的分配方式将数据流疏通到多个节点;而传输层和应用层的交换(Switch),本身便是一种基于访问流量的控制方式,能够实现负载均衡。

apache

基于模块设计
MPM多重处理模块,apache通过他来使用操作系统资源,对进程和线程进行管理
APR:apache可移植运行库,对操作系统调用的抽象库,提高可移植性
在启动时创建进程(线程池),等待请求(减少频繁创建和销毁进程)
三种模式:prefork、work、event
启动阶段:配置文件的解析,模块加载和系统资源的初始化

ps:结合tomcat等servlet容器处理jsp

nginx

内核设计微小、简洁,仅通过查找配置文件将客户端请求映射到一个location block(location是nginx配置中的一个指令,用于URL匹配),location中配置的指令区启动不同的模块完成相应工作
结构上三个模块:
核心模块 HTTP模块、EVENT模块和MAIL模块
基础模块 HTTP Access模块、HTTP FastCGI模块、HTTP Proxy和HTTP Rewrite模块
第三方模块 HTTP Upstream Request Hash、Notice和HTTP Access Key模块
模块在功能上分三类:Handler(处理器模块)、Filters(过滤器模块)、Proxies(代理类模块)
支持高并发,但不支持对外部程序的直接调用或者解析

nginx和apache

在服务器端仍nginx在前,apache在后。由nginx做负载均衡和反向代理,并处理静态文件,动态请求交给apache

lvs(Linux Virtual Server)

LVS集群采用IP负载均衡技术和基于内容请求分发技术
A 负载调度器 集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(VIP)
B 服务器池 真正执行客户请求的服务器
C 共享存储 为服务器提供一个共享的存储区

调度器是服务器集群系统的唯一入口点
基于IP负载均衡:服务器池拥有相同的内容提高相同的服务
基于内容请求分发技术:服务器可以提供不同的服务
使用分布式锁管理器来保证应用程序在不同结点上并发访问的一致性
共享存储通常是数据库、网络文件系统或者分布式文件系统。

LVS负载均衡方式:VS/NAT、VS/TUN、VS/DR

Haproxy

Haprox提供高可用、负载均衡以及基于TCP和HTTp应用的代理, 支持虚拟主机。
HAProxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数
能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作
HAProxy可以对Mysql读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,不过在后端的MySQL slaves数量超过10台时性能不如LVS;

keepalived

它可以检测web服务器的工作状态,如果该服务器出现故障被检测到,将其剔除服务器群中,直至正常工作后,keepalive会自动检测到并加入到服务器群里面。实现主备服务器发生故障时ip瞬时无缝交接。它是LVS集群节点健康检测的一个用户空间守护进程,也是LVS的引导故障转移模块

heartbeat

heartbeat模块实现高可用集群的两个关键组建:心跳服务和集群通信
heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务

keepalived和heartbeat

Keepalived使用的vrrp协议方式,虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称VRRP);
(为解决局域网主机访问外部网络的可靠性问题,是一种容错协议,并通过一定的机制来保证当主机的下一跳设备出现故障时,可以及时将业务切换到其它设备,从而保持通讯的连续性和可靠性。)

而Heartbeat是基于主机或网络的服务的高可用方式;
keepalived的目的是模拟路由器的双机
heartbeat的目的是用户service的双机
lvs的高可用建议用keepalived,业务的高可用用heartbeat

memcached

memcached一个高性能的分布式对象缓存系统,用于动态Web应用以减轻数据库负载,Memcached基于一个存储键/值对的hashmap,在memcached里面缓存的数据必须序列化

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值