LVS负载均衡对udp流量进行参数调整一例

2024-02-02 08:12

本文主要是介绍LVS负载均衡对udp流量进行参数调整一例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文记录一套百万会话级的LVS软负载均衡系统,从加权最少链接均衡算法调整为源主机散列算法并增加会话保持时间的配置过程。

一、调整原由

业务侧为了提升平台的设备连接会话保持能力,希望将LVS软负载均衡系统的均衡算法从加权最少链接均衡算法wlc调整为源主机散列算法sh,并将会话保持时间从1秒增加到180秒。

二、调整分析

1、负载调度算法

LVS的lb_algo 是负载调度算法的选项,可以设置以下几种算法:

  1. rr(轮询调度算法):按照轮询的方式依次将请求调度到不同的服务器上,即每次选择下一个服务器进行调度。
  2. wrr(加权轮询算法):根据服务器的不同处理能力进行调度,权重大的服务器会收到更多的请求。
  3. lc(最少连接算法):动态地将网络请求调度到已建立的链接数最少的服务器上。
  4. wlc(加权最少连接算法):结合了最少连接和加权轮叫的算法,根据服务器的处理能力和当前连接数进行调度。
  5. lblc(基于局部性的最少连接算法):针对目标IP地址的负载均衡,主要用于Cache集群系统。
  6. sh(源主机散列算法):通过散列函数将源IP地址映射到不同的服务器上,以实现基于源IP地址的负载均衡。
  7. dh(目标主机散列算法):通过散列函数将目标IP地址映射到不同的服务器上,以实现基于目标IP地址的负载均衡。
2、会话保持时间

LVS的persistence_timeout 会话保持时间,主要作用是将来自同一个客户端IP的请求转发到同一个真实服务器(Real Server)的时间。通过设置persistence_timeout,可以在一定时间内保证所有来自同一个客户端的TCP请求都被发送到同一个真实服务器。这样可以确保会话的持续性,使得客户端和服务器之间的通信能够在同一台服务器上保持。

在设置的persistence_timeout 时间段内,当前IP地址下所有的TCP连接数据包都会被发送到同一个真实服务器。这样可以确保客户端与服务器之间的通信能够保持连续性,特别是在需要保持长时间会话的应用场景中,如数据库连接、文件传输等。

具体来说,设置多长的会话保持时间,主要还是根据后端会话的业务场景来定。

三、配置实操

1、原配置
[root@lvs-1 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id lvs231vrrp_skip_check_adv_addrvrrp_garp_interval 0.001vrrp_gna_interval 0.00001
}vrrp_instance VI_1 {state MASTERinterface ens192virtual_router_id 231priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.231}
}virtual_server 192.168.1.231 9007 {delay_loop 6lb_algo wlclb_kind NAT

这篇关于LVS负载均衡对udp流量进行参数调整一例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/670046

相关文章

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

一文带你了解SpringBoot中启动参数的各种用法

《一文带你了解SpringBoot中启动参数的各种用法》在使用SpringBoot开发应用时,我们通常需要根据不同的环境或特定需求调整启动参数,那么,SpringBoot提供了哪些方式来配置这些启动参... 目录一、启动参数的常见传递方式二、通过命令行参数传递启动参数三、使用 application.pro

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务