广告
返回顶部
首页 > 资讯 > 操作系统 >linux负载均衡有哪些
  • 709
分享到

linux负载均衡有哪些

2024-04-02 19:04:59 709人浏览 安东尼
摘要

linux负载均衡有:1、bond,它是linux内核自带的多网卡聚合功能;2、iproute2中的多路由,使用ip命令中的nexthop选项从而实现负载均衡;3、iptables+iproute2,iptables是通过修改mark标记来

linux负载均衡有:1、bond,它是linux内核自带的多网卡聚合功能;2、iproute2中的多路由,使用ip命令中的nexthop选项从而实现负载均衡;3、iptables+iproute2,iptables是通过修改mark标记来实现负载均衡,而iproute2则用来针对数据包的不同mark定义专门的策略路由表;4、流量控制器TC,主要用来实现linux内核的流量控制;5、LVS,它是一套集成在linux内核中的负载均衡服务。

linux负载均衡有哪些

具体内容如下:

Linux系统的数据包处理能力相当强大,通过Netfilter框架或者策略路由系统,用户可以非常灵活的定义数据包的处理规则。因此在Linux下实现负载均衡自然也是非常简单,Linux下常用的几种负载均衡技术:

bond

bond是Linux内核自带的多网卡聚合功能。这个功能可以把多个网卡整合成一个虚拟网卡从而同时利用多块网卡传输数据。bond有多种不同的模式用以适应不同的情况。bond主要是从L2链路层考虑的,因此可以bond的网卡通常要连到同一个交换机上。

iproute2(ip命令)中的多路由

可以使用ip命令中的nexthop选项非常简单的实现负载均衡。nexthop可以为同一个目的地址指定多条路由,并可以指定每条路由的权重。之后系统会根据权重为数据选择某条路由。

例如:ip route add default nexthop via $P1 dev $IF1 weight 1 nexthop via $P2 dev $IF2 weight 1

这条命令定义默认路由有ip1:if1和ip2:if2两条路径,且这两条路径的权重相同。

利用ip命令实现上边这样简单的负载均衡是非常方便的,但是ip命令毕竟是一个网络层命令,因此它是无法根据运输层(端口号)进行负载均衡的。

iptables+iproute2

提起iptables大多数人都只用过其中的filter表和nat表,而对于mangle表则很少有人使用。然后使用mangle表是可以非常方便地实现灵活负载均衡的。

iptables的mangle表用来修改数据包的一些标识,可以修改的标识有:dscp(区分服务类型)、ToS(服务类型)、mark(标记)。前两者是ip头的QoS相关标志位,主要用于ip层的qos实现,但是目前这两个标志位极少被用到,通常都会被忽略。而第三个(mark)则是由linux内核实现的对数据包的标记。因为是由linux内核实现的,因此这个标记只能在本机使用,并非数据包的一部分,出了本机这个标记就不存在了。

iptables实现负载均衡主要是通过修改mark标记来实现。iproute2可以针对数据包的不同mark定义专门的策略路由表,因此我们可以把去往不同接口的路由写入适用不同mark的策略路由表中,之后linux就可以根据数据包的mark来决定数据包要走的路由了。

例如: 

首先,为所有进入本机的目的端口号为25的tcp包打上“1”标记:

iptables -A PREROUTING  -t mangle -p tcp --dport 25 -j MARK --set-mark 1   

添加路由规则规定标记为1的数据包使用路由表200

ip rule add fwmark 1 table 200

在200路由表中添加路由

ip route add default via 192.168.1.1 dev ppp0 table 200

同理,为所有进入本机的目的端口号为80的tcp包打上“2”标记

iptables -A PREROUTING  -t mangle -p tcp --dport 80 -j MARK --set-mark 2

添加相关路由,方法同上:

ip rule add fwmark 2 table 200

ip route add default via 192.168.2.1 dev wlan0 table 200

这样子一来以后所有的端口号为25的包都会走192.168.1.1 dev ppp0路由,而所有端口号为80的数据包则会走192.168.2.1 dev wlan0路由,从而实现了针对端口号的负载均衡。同理,也可以利用iptables实现针对源(目的)地址、协议、接口的负载均衡,真的非常的方便。

tc

流量控制器TC(Traffic Control)用于Linux内核的流量控制,它利用队列规定建立处理数据包的队列,并定义队列中的数据包被发送的方式, 从而实现对流量的控制。TC命令通过建立筛选器(filter)、分类器(class)、队列(qdisc)这三个对象来实现对流量的控制。具体的讲就是,通过筛选器决定哪些数据包进入到哪些分类的队列中,之后再按照一定的规则将数据包从各个分类的队列中发送出去。尽管tc的主要功能在于流量控制,但是我们可以通过把一个队列建立在多个网卡上来实现流量的负载均衡。

例如:

在eth1上建立一个队列:

tc qdisc add dev eth1 root teql0

在eth2上建立同样的队列

tc qdisc add dev eth2 root teql0

启动设备teql0 

ip link set dev teql0 up

通过这三条命令,所有发往teql0的流量都会在eth1和eth2之间进行负载均衡发送。

应该说,tc是一个相当强大复杂的工具,但是tc的主要功能还是在于流量控制。

LVS

LVS(Linux virtual Machine)是一套集成在Linux内核中的负载均衡服务。LVS通过部署负载均衡服务器在网络层截获并修改报文并依据一定规则分发给服务器集群中服务器来实现负载均衡。LVS主要用于WEB服务器的负载均衡,通过LVS,用户的请求可以被调度到服务器集群的多个服务器上去,并且用户认为自己始终在跟唯一一台服务器进行通信。LVS与前边几种负载均衡技术最大的差别在于,LVS有非常具体的应用场景,即web服务器集群。

--结束END--

本文标题: linux负载均衡有哪些

本文链接: https://www.lsjlt.com/news/109241.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux有哪些负载均衡
    本篇内容介绍了“linux有哪些负载均衡”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-04-20
    linux
  • linux负载均衡有哪些
    linux负载均衡有:1、bond,它是linux内核自带的多网卡聚合功能;2、iproute2中的多路由,使用ip命令中的nexthop选项从而实现负载均衡;3、iptables+iproute2,iptables是通过修改mark标记来...
    99+
    2022-10-22
  • 负载均衡算法有哪些
    负载均衡算法有:1、轮询算法;2、加权轮询算法;3、最少连接算法;4、加权最少连接算法;5、随机算法算法;6、源地址哈希法。具体内容如下:轮询(Round Robin)轮询算法把每个请求轮流发送到每个服务器上。加权轮询(Weighted R...
    99+
    2022-10-18
  • 负载均衡有哪些软件
    市面上的负载均衡软件有很多,在网站建设初期,可以选用Nigix/HAproxy作为反向代理负载均衡,常用的负载均衡软件有:1、LVS软件,工作在网络四层,通过vrrp协议转发;2、Nginx软件,工作在网络七层,它属于反向代理服务器,并且能...
    99+
    2022-10-16
  • 负载均衡的好处有哪些
    负载均衡的好处包括:1. 提高系统性能:负载均衡可以将请求分发到多个服务器上,从而平衡服务器的负载,提高系统的整体处理能力和性能。2...
    99+
    2023-09-02
    负载均衡
  • 负载均衡的功能有哪些
    负载均衡的功能包括以下几个方面:1. 分发请求:负载均衡可以将请求分发到多个服务器上,平衡服务器的负载。通过将请求分配到不同的服务器...
    99+
    2023-09-02
    负载均衡
  • 负载均衡的规则有哪些
    负载均衡的规则有以下几种:1. 轮询(Round Robin):按照事先定义好的顺序,依次将请求分发给不同的后端服务器,实现负载均衡...
    99+
    2023-09-02
    负载均衡
  • Dubbo有哪些负载均衡策略
    Dubbo中负载均衡策略有:1、随机选取提供者策略,能够随机转发请求;2、轮循选取提供者策略,可以使请求平均分布;3、最少活跃调用策略,能够让慢提供者接收更少的请求;4、一致性Hash策略,相同参数请求总是发到同一提供者,如是一台机器宕机,...
    99+
    2022-10-09
  • nginx负载均衡策略有哪些
    nginx负载均衡策略有:1、轮询调度方式,RR算法策略;2、weight权重方式策略;3、ip_hash基于客户端IP的分配方式;4、least_conn,把请求转发给连接数较少的后端服务器;5、第三方策略,实现需要安装第三方插件。具体内...
    99+
    2022-10-22
  • 负载均衡器有哪些作用
    负载均衡器的作用:1、能够提供服务一致性的功能;2、能够清理服务集群中某个节点无法成功处理请求时的请求失败信息,并将该节点发往其他节点上去;3、具有统计计量的功能,从而观察各阶段各种流量流动来适当调整系统性能。具体内容如下:负载均衡器的功能...
    99+
    2022-10-08
  • springcloud负载均衡策略有哪些
    springcloud负载均衡策略有:1、Ribbon,它是一个基于Netflix Ribbon实现的一套客户端负载均衡工具;2、Fegin的配置,它是一个声明式的Web服务客户端,能够更加容易编写Web服务客户端,只要在api层建设一个接...
    99+
    2022-10-23
  • lvs有哪些负载均衡方式
    lvs中负载均衡方式有:1、Virtual Server via NAT,在服务器中可以运行任何支持TCP/IP的操作系统;2、Virtual Server via IP Tunneling,在VS/TUN技术中所有的服务器必须支持“IP ...
    99+
    2022-10-15
  • 负载均衡的优势有哪些
    负载均衡的优势有:1、能够解决高并发的问题;2、负载均衡对外只需提供一个IP地址;3、使用负载均衡能够保证服务器不间断正常运行;4、负载均衡操作简单,能够在普通计算机上实现。具体内容如下:负载均衡是什么?负载均衡(Load Balance)...
    99+
    2022-10-05
  • 负载均衡的算法有哪些
    负载均衡的算法有:轮询法:Round Robin,适合用于服务器硬件条件基本都相同的情况加权轮询法:Weight Robin随机法:Random加权随机法:Weight Random最小连接法:Least Connections源地址哈希法...
    99+
    2022-10-22
  • 负载均衡的策略有哪些
    负载均衡的策略有:轮询,每个请求都要按顺序分派到不同的后端网络服务器。特定权重,用于后端开发网络服务器性能不匀的状况。IP关联ip_hash,每个请求按浏览ip的hash结果分派,这样就会让每一个浏览量固定不动浏览一个后端开发网络服务器,能...
    99+
    2022-10-18
  • 负载均衡的优点有哪些
    负载均衡的优点包括:1. 提高系统性能:负载均衡可以将用户请求分配到多个服务器上进行处理,避免单一服务器的过载,提高系统的整体性能和...
    99+
    2023-09-02
    负载均衡
  • nginx负载均衡参数有哪些
    nginx负载均衡参数有以下几个:1. upstream:定义一个后端服务器组,用于负载均衡。可以通过ip地址、主机名、域名等方式指...
    99+
    2023-09-06
    nginx 负载均衡
  • java负载均衡的方式有哪些
    Java负载均衡的方式有以下几种:1. 软件负载均衡:使用Java编写的负载均衡软件,如Nginx、Apache、HAProxy等。...
    99+
    2023-06-10
    java负载均衡 java
  • 弹性负载均衡算法有哪些
    常见的弹性负载均衡算法有以下几种:1. 轮询算法(Round Robin):将请求轮流分配给不同的服务器,每台服务器都会被均衡地分配...
    99+
    2023-06-12
    弹性负载均衡 负载均衡
  • 负载均衡有哪些三种方式
    本篇内容介绍了“负载均衡有哪些三种方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-02-03
    负载均衡
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作