精华内容
下载资源
问答
  • 常用的负载均衡技术

    2017-05-31 10:49:00
    先标记,后记录。 转载于:https://www.cnblogs.com/easma/p/6923050.html

    先标记,后记录。

    转载于:https://www.cnblogs.com/easma/p/6923050.html

    展开全文
  • 目前比较常用的负载均衡技术

    千次阅读 2017-01-12 19:53:12
    目前比较常用的负载均衡技术主要有: 1. 基于DNS的负载均衡通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的 客户机将在解析这个名字时得到...
    目前比较常用的负载均衡技术主要有:
    

    1. 基于DNS的负载均衡
    通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的

    客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址

    上的Web服务器,从而达到负载均衡的目的。

    2. 反向代理负载均衡 (如Apache+JK2+Tomcat这种组合)
    使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载

    均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式

    是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

    3. 基于NAT(Network Address Translation)的负载均衡技术 (如Linux Virtual Server,简称LVS)网络地址转换为在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能访问外部网络,而当外部网络中的计算机访问

    地址转换网关拥有的某一外部地址时,地址转换网关能将其转发到一个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计算机就各自与自己转换得到的地址上服务器进行通信,从而达到负载分担的目的。

    (5)

    Apache,Tomcat负载均衡和集群:

    1.

    对请求的处理又有两种不同的方式:负载平衡、状态复制(即集群).
    负载平衡:

    每台服务器都是独立的,只是对请求的负载进行平衡,而不对状态(SESSION)进行复制。
    状态复制(集群):先进行负载平衡,再在各服务器间复制应用状态。

    2.

    apache负载均衡的原理:
    1).
    mod_jk负载平衡原理:
    使用mod_jk默认的以轮循方式进行平衡负载,假设有四个服务器节点,有10个请求,则
    第一个节点会得到1,5,9请求;
    第二个节点会得到2,6,10请求;
    第三个节点会得到3,7请求;
    第四个节点会得到4,8请求;

    2).
    Mod_JK2负载均衡与故障复原:
    Apache httpd是当成web服务器,使用mod_jk2将请求传送给Tomcat,就可以使用mod_jk2的负载均衡与容错功能。

    带有 mod_jk2的Apache(httpd)可以做的事情包括:
    A、将请求分配至一或多个Tomcat实例上你可以在mod_jk2的workers.properties文件中,设定许多Tomcat实例,并赋于每个实例一个lb_factor值,以作为请求分配的加权因子。
    B、侦测Tomcat实例是否失败当Tomcat实例的连接器服务不再响应时,mod_jk2会及时侦测到,并停止将请求送给它。其他的Tomcat 实例则会接受失效实例的负载。
    C、侦测Tomcat实例在失效后的何时恢复因连接器服务失效,而停止将请求分配给Tomcat实例之后,mod_jk2会周期性地检查是否已恢复使用性,并自动将其加入现行的Tomcat实例池中。

    3).
    实践证明,在各应用服务器之间不需要状态复制的情况下,负载平衡可以达到性能的线性增长及更高的并发需求。

    3 集群原理:
    集群方式也是使用这种方法进行平衡。Tomcat中的集群原理是通过组播的方式进行节点的查找并使用TCP连接进行会话的复制。

    集群与负载均衡的优缺点:
    不足:
    集群不同于负载平衡的是,由于集群服务需要在处理请求之间不断地进行会话复制,复制后的会话将会慢慢变得庞大,因此它的资

    源占用率是非常高的,如果在并发量大的应用中,复制的会话大小会变得相当大,而使用的总内存更是会迅速升高。

    优点:
    但集群的会话复制,增加了系统的高可用性。由于在每台服务器都保存有用户的Session信息,如果服务器群中某台当机,应用可以自动切换到其它服务器上继续运行,而用户的信息不会丢失,这提高了应用的冗错性。

    具体采用负载平衡还是集群,这要看应用的需求了。

    http://www.51testing.com/?uid-423595-action-viewspace-itemid-250255

    展开全文
  • 目前比较常用的负载均衡技术主要有: 1. 基于DNS的负载均衡 通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字...
    目前比较常用的负载均衡技术主要有:

    1. 基于DNS的负载均衡

    通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。

    2. 反向代理负载均衡 (如Apache+JK2+Tomcat这种组合)

    使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

    3. 基于NAT(Network Address Translation)的负载均衡技术 (如Linux Virtual Server,简称LVS)

    网络地址转换为在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的某一外部地址时,地址转换网关能将其转发到一个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计算机就各自与自己转换得到的地址上服务器进行通信,从而达到负载分担的目的。


    文章转载自网管之家:http://www.bitscn.com/pdb/java/201009/190659.html
    展开全文
  • 在上一篇文章中,介绍了负载均衡服务,常用的负载均衡服务器以及负载均衡服务在公司的应用情况。这一篇文章会对上篇提到的负载均衡服务器进行较为深入的分析,对其主要功能,优缺点,使用场景进行介绍。希望可以起到...

    在上一篇文章中,介绍了负载均衡服务,常用的负载均衡服务器以及负载均衡服务在公司的应用情况。这一篇文章会对上篇提到的负载均衡服务器进行较为深入的分析,对其主要功能,优缺点,使用场景进行介绍。希望可以起到抛砖引玉的左右,对大家在了解,使用不同的负载均衡服务有所帮助。

    LVS

    LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个基于Linux的负载均衡服务器。LVS项目在1998年5月由章文嵩博士成立,现在已经得到了极为广泛的应用,国内外有很多网站和组织都在生产环境中使用LVS系统。

    LVS是基于Linux内核模块,通过在协议包工作链上对应位置挂载hook代码,来实现对网络包的解析和重写。其工作原理与iptables相同。在Linux2.4之后,LVS打入Linux标准内核,不需要安装额外的软件即可使用。LVS运行于Linux内核之中,用户要通过运行于用户态的工具(ipvsadm)来对LVS进行配置。下图是Linux 数据包协议栈的工作链和LVS的挂载点:

     

    Alt pic

    这几个工作链主要是工作时间不同:

    • NF_IP_PRE_ROUTING:在报文作路由以前执行

    • NF_IP_FORWARD:在报文转向另一个NIC以前执行

    • NF_IP_POST_ROUTING:在报文流出以前执行

    • NF_IP_LOCAL_IN:在流入本地的报文作路由以后执行

    • NF_IP_LOCAL_OUT:在本地报文做流出路由前执行

    对于数据包,LVS的工作流程是:PREROUTING -> LOCAL_IN -> POSTROUTING

    对于出去的包(只有NAT有效):PREROUTING -> FORWARD -> POSTROUTING

    对于Ping包:PREROUTING -> FORWARD -> POSTROUTING

    主要特点:

    与应用层的负载均衡不同,LVS运行在内核模式,没有系统调用开销。而只支持四层负载均衡模式,LVS也不用处理复杂的七层协议,因此有着很高的性能。当单臂模式的设计又可以让LVS承载大量流量(与后端对比一般可以达到1:10左右),因此LVS常常被用作整个系统的流量入口。 由于LVS的资源占用很少,在日常的应用中,其瓶颈常在于网络带宽而不是CPU和内存,因此运行在物理机上的LVS一般都会配置万兆或以上的网卡。阿里云的LVS集群就采用了单台LVS配置四个万兆网卡的形式来提高资源利用率和处理能力。

    功能介绍:

    LVS是一个纯粹的负载均衡服务器,只支持四层负载均衡,支持三种模式,NAT,TUN和DR模式。

    • NAT模式:工作在TCP层,这时LVS的功能与其他四层负载均衡服务器类似,是通过NAT协议来修改数据包中的Source IP或者Dest IP地址,来实现负载均衡。在NAT模式下,上下行的流量都需要经过LVS,因此LVS的带宽可能成为瓶颈。

    • TUN模式:工作在IP层:是通过在IP包的基础上再进行一次独立的IP封装,加入额外的IP头,来实现包转发功能,因此TUN协议又叫做IPIP协议。TUN模式是单臂流量,只有上行数据会经过LVS,下行数据则直接通过后端服务器发给用户。为了实现TU模式,后端服务器上需要支持IPIP协议,并绑定一个TUN设备和对应的VIP地址。

    • DR模式:DR模式工作在二层,是通过直接修改mac帧中的目标mac地址,来实现数据转发功能。因为DR模式走的是mac层的协议,因此需要负载均衡服务和后端服务器在同一个二层(同一个广播域)之中。

    总结:使用方面,NAT模式使用最为灵活,对后端无侵入性,但性能也最差。DR模式性能最好,但对网络拓扑结构有要求。而TUN模式可以达到和DR模式相近的性能,但是需要后端对IPIP协议的支持。

    优缺点分析

    • 优点:LVS运行简单,性能非常强大(运行在DR或者TUN模式下的一台LVS可以支持后端上百台服务器的需要),而且服务十分稳定(代码很少有改动)。同时,由于直接集成在Linux内核中,使用简单,不需要额外安装。

    • 缺点:模式不够灵活,可配置项少,只支持三种固定模式,很难满足一些自定义的需求。而LVS服务本身也十分简单,没有其他负载均衡服务所带的健康检查等功能,需要其他工具(keepalived,OSPF等)支持。社区不够活跃,代码更新和活跃度不高。

    应用场景:

    LVS一般是用在网络入口的位置,使用一组高可用的LVS集群后面会再接Haproxy,Nginx,Apache等七层负载均衡服务。对于一些四层的应用,也会在前面直接架设一套LVS,使用LVS的NAT模式进行请求转发和负载均衡。

    Nginx/Tengine/Open Resty

    Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

    Nginx起源也是web服务器,但是与Apache不同,Nginx采用的是异步模式,epoll模型来实现,与Apache相比,Nginx在性能,资源消耗方面都有很大的提高。Nginx也是为了解决C 10K问题而开发的服务器之一。

    主要功能:

    作为一个web服务器,可以提供HTTP资源的访问,还可以与php结合,提供动态页面支持。而作为负载均衡服务器,Nginx除了HTTP/HTTPS协议之外,Nginx还支持IMAP/POP3协议,可以作为邮件的代理服务器使用。除了基本的负载均衡功能外,Nginx还支持URL重写,基于Cookie,URL的转发等功能。

    Nginx还有良好的扩展性,支持通过lua脚本进行功能扩展,可以根据自己的需要,开发具体的业务逻辑。 Nginx基于多进程模型,首先启动一个master进程,然后fork出多个worker进程(可配置),worker进程通过抢占的方式来处理请求,具体运行架构如下图所示:

    Alt pic

    Master进程只负责接受连接,不会执行具体的业务逻辑。Worker进程通过抢占的方式从master那里得到请求,处理具体的业务逻辑,包括请求解析,提供http服务,请求转发等。 当重新reload时,Master会根据配置重新启动一组新的worker进程,同时把请求全部转发给新的worker。老的worker不再处理请求,当当前请求处理完毕之后才会退出。因此Nginx可以在运行时无缝加载和reload。

    优缺点分析

    • 优点:Nginx基于epoll的异步模型,资源占用很少,在实际测试中,在处理4000并发连接时,内存资源占用也仅仅只有123.63MB。而Nginx对于运维操作也非常友好,支持运行时reload,并且不会丢失用户请求。Nginx的多进程模型可以方便的使用多核资源,同时支持CPU绑定,可以把具体的Nginx worker进程绑定在具体的物理CPU之上。

    • 缺点:Nginx在处理大的post请求时,会将请求先缓存在本地磁盘,当请求很大且并发请求很多时,磁盘性能会成为瓶颈,而且出现过由于硬盘写满导致请求失败的情况。同时,Nginx也不支持会话保持和主动监测,健康检查结果展示也不大优好。

    衍生版本

    Nginx社区十分活跃,并且在应用中有基于Ningx开发的很多衍生版本,这里就介绍两个版本:Tengine和OpenResty。

    • Tengine:是阿里基于Nginx开发的衍生版本,补齐了Nginx的短板(Post缓存,主动健康检查,监控页面等),并在此基础上进行了二次开发,对性能和易用性(加入了很多自动配置的选项)进行了优化。

      • 优点:已经在阿里内部得到了广泛的应用,有大量的实践基础和调优经验。性能,稳定性方面有保障。

      • 缺点:直接更改Nginx内核,因此需要通过人工兼容的方式来跟随Nginx主版本升级。

    • OpenResty:基于Nginx开发的另一个衍生版本,直接加入了很多优质的Nginx模块,从而大大扩展了Nginx本身的功能。与Tengine不同,它没有直接更改Nginx内核,而是通过加入模块的方式来提供功能扩展。

    应用场景

    Nginx可以直接运行在系统最前面,通过Keepalived实现高可用,作为系统流量的入口使用。也可以对接LVS,Haproxy等四层负载均衡,对流量进行二次分流。

    Haproxy:

    Haproxy是一个专门的负载均衡服务器,支持四层/七层负载均衡。与Nginx,apache等不同,Haproxy不提供静态资源访问,URL重写等web服务器相关功能。

    功能介绍

    Haproxy也是基于事件机制的异步模型,但与nginx不同,Haproxy是基于单进程模型,没有提供天然的多进程扩展。虽然可以通过fork进程来实现多进程模型,但是会引起一些问题,因此官方并不推荐这种做法。在实际应用中一般都是把它作为一个单进程负载均衡服务使用。

    优缺点分析

    • 优点:可以同时支持四层,七层负载均衡,有很高的性能。支持Seesion Sticky,有良好的监控页面,同时不存在Post缓存问题。

    • 缺点:由于Haproxy是基于但进程模型,在reload时会导致短暂的不可用,同时不支持https。在作为四层四层负载均衡服务器时无法获取原始IP。单进程模型,对多核支持不好(需要多个实例),虽然可以运作在多核模式下,但存在着一些问题。

    应用场景:

    作为四层负载均衡服务,可以直接接后端服务使用,但由于是采用双臂模式和单进程模型,并不适合作为单独的流量入口。在不需要获取源IP或者对性能要求不是很高的情况下作为四层负载均衡服务器使用。或者作为七层负载均衡服务器,专门处理七层的上传请求。

    Apache

    Apache 起初由伊利诺伊大学香槟分校的国家超级电脑应用中心(NCSA)开发,是现在互联网中使用最热门和访问量最大的HTTP服务器,同时还可以通过加载模块来完成反向代理功能,但严格来说Apache并不是一个很好的负载均衡服务器,在性能,功能上与较为专业的负载均衡服务相比并无优势,而功能也乏善可陈。但是考虑到Apache的广泛应用以及基于Apache的负载均衡服务在实际的生产环境中还是有不少应用。

    功能介绍:

    Apache是一个web服务器,通过可以通过加载模块来实现负载均衡服务。作为一个强大的web服务器,Apache在解析HTTP协议有天然的优势,支持基于域名分流,URL分析,URL重写,转发等功能。

    Apache支持两种模式的负载均衡:基于mod_proxy模块的一般负载均衡和基于mod_proxy_ajp模块的二进制负载均衡。这两种模式的主要区别在于Apache和后端服务之间的连接方式。一般的负载均衡是采用HTTP协议,使用文本传输,而ajp模式则采用二进制模式,因此性能上会更好。但相对的,AJP模式需要后端服务器的支持,在一般应用时,会通过跟tomcat结合来提供负载均衡服务。

    优缺点分析

    • 优点:Apache是应用最广的web服务器,因此在服务应用上面有着天然的优势。而Apache+Tomcat的模式可以满足现在大部分网站对于静态资源和动态资源的需求。而作为一个强大的web服务器,Apache还支持URL重写,URL转发等web服务相关的操作,可以对后端服务提供更多支持。

    • 缺点:作为负载均衡服务器,主要问题是采用的多进程模式,每个连接在处理时都会开独立的线程,当连接请求数据很多时,会有在处理高并发时会有性能隐患。

    应用场景:

    因为无论从性能还是功能上看,都有更好的选择,因此Apache一般不会单独作为负载均衡服务器使用。一般是采用Apache服务作为静态文件服务器使用的时候,使用AJP模块与后端的Tomcat对接,提供简单的负载均衡支持。

    总结

    本文对常用的四种负载均衡服务进行了简单的介绍,在之后的文章中,会对具体的负载均衡服务进行更为深入的分析和说明。

    如果你也对Java高并发、分布式、微服务、源码分析技术感兴趣可以加我的Java后端架构群,群里有免费的资料,也有一些一线互联网的大牛,欢迎大家来学习交流,群号:836036968

    转载于:https://my.oschina.net/u/3832965/blog/2876742

    展开全文
  • 常用负载均衡技术 基于四层交换技术的负载均衡: 基于四层交换技术的负载均衡 ---- 这种技术是在第四层交换机上设置Web服务的虚拟IP地址,这个虚拟IP地址是DNS服...
  • 常用负载均衡技术

    千次阅读 2011-11-25 09:58:03
    基于四层交换技术的负载均衡:  基于四层交换技术的负载均衡 ---- 这种技术是在第四层交换机上设置Web服务的虚拟IP地址,这个虚拟IP地址是DNS服务器中解析到的Web服务器的IP地址,对客户端是可见的。  当客户...
  • 负载均衡技术 比较

    2017-08-01 14:24:11
    DNS域名解析,反向代理,IP负载均衡,数据链路层负载均衡1.2负载均衡算法随机 ,轮询 ,加权轮询,最小连接数,加权最小连接数,源地址散列1.3常用的负载均衡技术包括:硬解:F5软件:dubbo , lvs、haproxy、nginx ...
  • 六种常用的web负载均衡技术

    千次阅读 2019-03-25 16:15:27
    负载均衡不能狭义地理解为分配给所有实际服务器一样多工作量,因为多台服务器承载能力各不相同,这可能体现在硬件配置、网络带宽差异,也可能因为某台服务器身兼多职,我们所说“均衡”,也就是希望所有...
  • 负载均衡技术

    2012-10-30 11:07:35
    [摘要]:在Internet迅猛发展的今天,网民的剧增给网络...本文就几种常用的负载均衡技术展开讨论、进行了技术分析及性能比较,重点介绍了循环DNS技术。  [关键词]: TCP/IP、WEB服务器、DNS、负载均衡  1 前言
  • lvs(+keepalived)、haproxy(+heartbeat)、nginx 负载均衡的比较分析目前使用比较多的就是标题中提到的这两者,其实lvs和haproxy都是实现的负载均衡的作用,keepalived和heartbeat都是提高高可用性的,避免单点故障。...
  • 负载均衡技术原理

    千次阅读 2021-02-24 22:01:54
    一篇读懂分布式架构下的负载均衡技术:分类、原理、算法、常见方案等 一、 引言 负载均衡(Load Balance)是指将负载(工作任务)进行平衡、分摊到多个操作单元上运行,促使多台设备共同更快、更高效完成某一项或者...
  •   转: ...不能狭义地理解为分配给所有实际服务器一样多工作量,因为多台服务器承载能力各不相同,这可能体现在硬件配置、网络带宽差异,也可能因为某台服务器身兼多职,我们所说“...
  • 负载均衡技术与分类

    2016-05-17 22:23:07
    甚至有许多博客,当流量逐步增加时,为了使网站有大吞吐量,都会使用负载均衡这样低成本技术,下面,就简单介绍一下常用负载均衡技术。1:软件负载均衡技术该技术适用于一些中小型网站系统,可以满足一般均衡...
  • DNS负载均衡

    2019-01-11 09:20:35
    在我们学习负载均衡知识的...两台以上的服务器进行协同工作必然涉及到负载均衡问题,目前常用的负载均衡技术主要有:NAT负载均衡、反向代理负载均衡及DNS负载。 NAT负载均衡将一个外部IP地址映射为多个内部IP地址,...
  • 几种常用负载均衡

    2020-05-20 10:35:34
    在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备任务就是作为Web服务器流量入口,挑选最合适一台Web服务器,将客户端请求转发给它处理,实现客户端到真实服务端透明转发。...
  • 笔者在此总结了Linux下常用的几种负载均衡技术: bond bond是Linux内核自带的多网卡聚合功能。这个功能可以把多个网卡整合成一个虚拟网卡从而同时利用多块网卡传输数据。bond有多种不同的模式用以适应不同的...
  • 甚至有许多博客,当流量逐步增加时,为了使网站有大吞吐量,都会使用负载均衡这样低成本技术,下面,卢松松就简单介绍一下常用负载均衡技术。1:软件负载均衡技术该技术适用于一些中小型网站系统,可以满足一般...
  • 负载均衡

    2009-03-06 13:27:19
    负载均衡(Load Balance)建立在现有...目前比较常用的负载均衡技术主要有: 1.基于DNS的负载均衡 通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 746
精华内容 298
关键字:

常用的负载均衡技术