WEB负载均衡笔记
1.http重定向转移
由自己的web应用来完成重定向处理工作;
在自己的web应用里面可以拿到http相关信息,所以可以针对有ip或者是uri等等请求做负载策略。常用的负载策略选用随机访问策略,当访问量达到一定程度的时候,随机访问的策略的效果会无限接近轮询的效果。如果自己实现轮询的效果必然需要有一个全局的资源来存储轮询的记录,这样必然是有资源的上锁来保证资源的正确性,从而影响到并发处理能力。
主要问题在于:并发性能不高;且重定向后的URL直接暴露给了用户,这样会导致用户记录住放返回的子域名而不走主入口进来,自然导致最终的负载不均衡。
2.DNS方式
通过在DNS服务器上面增加一个域名下面的多个A记录来实现负载,常见直接在A记录中添加多个IP的方式,也有在A记录中增加子域名的方式。用子域名的方式更方便后面IP的管理与升级更换。常见的DNS服务器上面有实现轮询策略、按IP就近分配服务器等等策略。
DNS更多的还是域名解析相关的事情,如果是需要实现基于http请求信息的负载,对于DNS的处理就不那么容易;故障转移处理能力方面还不行,当某一台服务器down掉之后没办法快速切换到其他的机器上面去;因为DNS解析是有时间延时的。另外负载不仅仅是表示每台服务器上面的请求数一样,由于每台服务器的机器配置、网络宽带的差异不一样;所以负载均衡的主要目的是保证服务器不要过载,最大程度的的发挥作用。
3.反向代理转发
反向代理服务器相当于一个调度器。它是一个对第7层协议的负载均衡。
所有的http请求都必须经过它,并且最终反馈给用户的信息是由调度器调用实际服务器处理完成后返回的信息在返回给用户。所以区别http重定向的负载方式还是有很大的区别。
反向代理服务器也是可以拿到http请求信息,所以其策略定制有很大的优势,包括服务器之间的权重分配都是支持的。另外对于健康探测也是负载中非常重要的一件事情。包括系统负载、响应时间、服务是否可用、TCP连接数、流量等等。
4.ip负载
数据包到达NAT服务器的内核缓冲区后,服务器不是把它交给用户空间的进程处理,而是修改数据包得目标地址和端口,从而达到在IP层的负载均衡。
根据自己的场景选择最适合自己的负载方式。