负载均衡篇(二)实现Web负载均衡的几种方式
负载均衡(Load Balance)是集群技术(Cluster)的一种应用。负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力。
目前最常见的负载均衡应用是Web负载均衡。根据实现的原理不同,常见的web负载均衡技术包括:DNS轮询、IP负载均衡和CDN。其中IP负载均衡可以使用硬件设备或软件方式来实现。
一、什么是web负载均衡
服务器集群(Cluster)使得多个服务器节点能够协同工作,根据目的的不同,服务器集群可以分为:
高性能集群:将单个重负载的请求分散到多个节点进行处理,最后再将处理结果进行汇总
高可用集群:提高冗余单元,避免单点故障
负载均衡集群:将大量的并发请求分担到多个处理节点。由于单个处理节点的故障不影响整个服务,负载均衡集群同时也实现了高可用性。
一般提到的负载均衡(Load Balance),是指实现负载均衡集群。负载均衡实现了横向扩展(Scale Out),避免纵向的升级(Scale Up)换代。
本文中的web负载均衡,特指能够分担web请求(http,https等)的负载均衡技术。
1、基本原理
任何的负载均衡技术都要想办法建立某种一对多的映射机制:一个请求的入口映射到多个处理请求的节点,从而实现分而治之(Divide and Conquer)。
这种映射机制使得多个物理存在对外体现为一个虚拟的整体,对服务的请求者屏蔽了内部的结构。
二、负载均衡技术
DNS轮询、CDN、IP负载均衡
DNS
DNS轮询是最简单的负载均衡方式。以域名作为访问入口,通过配置多条DNS A记录使得请求可以分配到不同的服务器。
DNS轮询没有快速的健康检查机制,而且只支持WRR的调度策略导致负载很难“均衡”,通常用于要求不高的场景。并且DNS轮询方式直接将服务器的真实地址暴露给用户,不利于服务器安全。
CDN
CDN(Content Delivery Network,内容分发网络)。通过发布机制将内容同步到大量的缓存节点,并在DNS服务器上进行扩展,找到里用户最近的缓存节点作为服务提供节点。
因为很难自建大量的缓存节点,所以通常使用CDN运营商的服务。目前国内的服务商很少,而且按流量计费,价格也比较昂贵。
IP负载均衡
IP负载均衡是基于特定的TCP/IP技术实现的负载均衡。比如NAT、DR、Turning等。是最经常使用的方式。
IP负载均衡可以使用硬件设备,也可以使用软件实现。硬件设备的主要产品是F5-BIG-IP-GTM(简称F5),软件产品主要有LVS、HAProxy、NginX。其中LVS、HAProxy可以工作在4-7层,NginX工作在7层。
1、软硬件负载均衡设备的优缺点:
硬件负载均衡设备可以将核心部分做成芯片,性能和稳定性更好,而且商用产品的可管理性、文档和服务都比较好。唯一的问题就是价格。
软件负载均衡通常是开源软件。自由度较高,但学习成本和管理成本会比较大。
2、 常见的软件、硬件负载均衡
nginx和f5的区别
nginx —软件负载均衡
见nginx和f5的区别的nginx篇
F5 —硬件负载均衡
F5的全称是F5-BIG-IP-GTM,是最流行的硬件负载均衡设备,其并发能力达到百万级。F5的主要特性包括:
1)多链路的负载均衡和冗余
可以接入多条ISP链路,在链路之间实现负载均衡和高可用。
2)防火墙负载均衡
F5具有异构防火墙的负载均衡与故障自动排除能力。
3)服务器负载均衡
这是F5最主要的功能,F5可以配置针对所有的对外提供服务的服务器配置Virtual Server实现负载均衡、健康检查、回话保持等。
4)高可用
F5设备自身的冗余设计能够保证99.999%的正常运行时间,双机F5的故障切换时间为毫秒级。
使用F5可以配置整个集群的链路冗余和服务器冗余,提高可靠的健康检查机制,以保证高可用。
5)安全性
与防火墙类似,F5采用缺省拒绝策略,可以为任何站点增加额外的安全保护,防御普通网络攻击,包括DDoS、IP欺骗、SYN攻击、teartop和land攻击、ICMP攻击等。
6)易于管理
F5提供HTTPS、SSH、Telnet、SNMP等多种管理方式,包含详尽的实时报告和历史纪录报告。同时还提供二次开发包(i-Control)。
7)其他
F5还提供了SSL加速、软件升级、IP地址过滤、带宽控制等辅助功能。
负载均衡篇(二)实现Web负载均衡的几种方式相关推荐
- linux下实现web数据同步的四种方式(性能比较)
实现web数据同步的四种方式 ======================================= 1.nfs实现web数据共享 2.rsync +inotify实现web数据同步 3.rs ...
- 实现web数据同步的四种方式
实现web数据同步的四种方式 ======================================= 1.nfs实现web数据共享 2.rsync +inotify实现web数据同步 3.rs ...
- WEB通信交互的几种方式
WEB通信交互的几种方式 - 实时通信发展过程简介 简单介绍一下现在的WEB通信有以下几种方式:最基本的http请求方式,Ajax轮询,Ajax长轮询,HTML5推送事件,HTML5的WebSocke ...
- java 生成二维码 QRCode、zxing 两种方式
版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢. https://blog.csdn.net/testcs_dn/article/details/ ...
- linux数据同步技术比较,linux下实现web数据同步的四种方式(性能比较)教程.docx
linux下实现web数据同步的四种方式(性能比较)教程 实现web数据同步的四种方式=======================================1.nfs实现web数据共享2.rs ...
- web服务器攻击的八种方式
随着互联网的高速发展,网络走进了千家万户,同时也有很大一部分人架设起了自己的网站.继而不安分的黑客们,又将目光对准了服务器攻击这个方式,从而破坏或取得服务器的管理权限.本文将主要讲述针对web服务器攻 ...
- maven web项目导入sts_Spring Boot2 系列教程(二)创建 Spring Boot 项目的三种方式
我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 43W+,如下图: 2017 年由于种种原因,就没有 ...
- 提高Web Service效率的几种方式(转)
2008-02-20 16:01 基于SOAP的Web Service的性能一直为人诟病,由于采用 XML标准进行系统间的数据传输,加大了传输的数据量,尤其是在传输一些具有比较严格结构的数据时,会使得 ...
- Windows从web下载文件的几种方式
最近搞app自动化测试,需要自动从网页上下载apk用于测试,顺便学习了几种从web下载文件的方式. 一.PowerShell DownloadFile 命令 PowerShell 是一种winodws ...
- web端上传图片的几种方式
首先是后台要有一个上传图片的工具类: [java] view plaincopy package utils; import java.io.File; import org.apache.commo ...
最新文章
- 基于 U-Net 的医学影像分割算法综述
- STM32串口发送中断
- 「LibreOJ β Round #4」子集
- Magicodes.WeiChat——自定义knockoutjs template、component实现微信自定义菜单
- 技术债务就像俄罗斯方块,你永远都赢不了!
- 新闻发布项目——实体类(User)
- 【论文翻译】学习新闻事件预测的因果关系
- 中国已消失的9所世界级大学
- 提携数学天才陶哲轩的伯乐是谁?
- 1400协议是什么和28181区别_公安三所标准 跟GB28181标准 有什么 区别?
- php策略模式,PHP策略模式定义与用法(详解)
- 2月26日 Scrapy入门
- DenseNet 简介
- Python基于cq-http协议端,使用nonebot2框架制作属于自己的智能机器人
- java实现ssdp协议_SSDP协议最简单的Reactor / Netty实现是什么?
- 编译报错【error】dexpreopt.sh:23 exited with status 1
- 浅谈游戏《celeste蔚蓝》
- 微信小程序源码喝酒游戏集合只有前台上传就可以使用
- vmgsim 完整好用已经测试REFORM-3PC
- 贝多芬第九交响曲,卡拉扬63年版,第四乐章演唱部分歌词文件