LVS 负载均衡集群指南

2024-09-04 02:44
文章标签 lvs 负载 集群 指南 均衡

本文主要是介绍LVS 负载均衡集群指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 引言

LVS (Linux Virtual Server) 虚拟服务器,是 Linux 内核中实现的负载均衡技术,以其高性能、高可靠性和高可用性而闻名。LVS 工作在 TCP/IP 协议栈的第四层 (传输层),通过将流量分配到多个后端服务器,提高系统性能、可用性和可靠性。LVS 被广泛应用于各种场景,例如网站、数据库、游戏服务器等,是构建高可用、高性能 Web 服务的利器。

2. LVS 的工作原理

LVS 集群主要由两部分组成:

  • 调度器 (Director Server):  负责接收客户端请求,并根据负载均衡算法将请求转发到后端服务器。调度器通常被称为 “虚拟服务器” (VS)。

  • 服务端服务器 (Real Server):  负责处理实际的业务请求。服务端服务器也称为 “节点服务器” (RS)。

LVS 的工作流程如下:

  1. 客户端发送请求到调度器 (VS)。

  2. 调度器 (VS) 根据负载均衡算法选择一个服务端服务器 (RS)。

  3. 调度器 (VS) 将请求转发到选定的服务端服务器 (RS)。

  4. 服务端服务器 (RS) 处理请求,并将响应返回给客户端。

  5. 响应数据包通过调度器 (VS) 返回给客户端。

3. LVS 集群中的术语

术语描述
VS (Virtual Server)调度器,负责接收客户端请求,并根据负载均衡算法将请求转发到后端服务器。
RS (Real Server)服务端服务器,负责处理实际的业务请求。
CIP (Client IP)客户端请求的 IP 地址。
VIP (Virtual IP)虚拟 IP 地址,通常为公网 IP,直接面向用户的 IP 地址。
DIP (Director Server IP)调度器的内网 IP 地址,用于与后端服务器通信。
RIP (Real Server IP)后端服务端服务器的 IP 地址。

4. LVS 的工作模式

LVS 主要有四种工作模式,每种模式都有其特点和适用场景:

  • NAT 模式 (Network Address Translation):

  • 请求和响应数据包都需要经过调度器 (VS)。

  • 调度器 (VS) 成为系统瓶颈,性能受限。

  • 支持端口映射,可以修改请求报文的目标端口。

  • 服务端服务器 (RS) 可以是任意操作系统。

  • 原理: 调度器 (VS) 修改请求报文的目标 IP 地址,将请求转发到后端服务器 (RS)。

  • 特点:

  • 适用场景:  适合小型集群,对性能要求不高,且需要修改目标端口的场景。

  • DR 模式 (Direct Routing):

  • 请求数据包经过调度器 (VS),响应数据包直接返回给客户端。

  • 调度器 (VS) 性能压力较小,适合大型集群。

  • 服务端服务器 (RS) 需要配置 VIP 地址,并设置 arp_ignorearp_announce 参数。

  • 服务端服务器 (RS) 需要在同一个物理网络中。

  • 原理: 调度器 (VS) 只修改请求报文的目的 MAC 地址,将请求转发到后端服务器 (RS)。

  • 特点:

  • 适用场景:  适合大型集群,对性能要求较高,且不需要修改目标端口的场景。

  • TUN 模式 (IP Tunneling):

  • 请求和响应数据包都需要经过调度器 (VS)。

  • 调度器 (VS) 性能压力较大,适合跨网络的集群。

  • 服务端服务器 (RS) 可以是任意操作系统。

  • 原理: 调度器 (VS) 通过 IP 隧道将请求转发到后端服务器 (RS)。

  • 特点:

  • 适用场景:  适合跨网络的集群,需要将请求转发到不同的网络。

  • Full-NAT 模式:

  • 请求和响应数据包都需要经过调度器 (VS)。

  • 调度器 (VS) 性能压力较大,适合需要隐藏服务端服务器 IP 地址的场景。

  • 服务端服务器 (RS) 可以是任意操作系统。

  • 原理: 调度器 (VS) 修改请求报文的源和目标 IP 地址,将请求转发到后端服务器 (RS)。

  • 特点:

  • 适用场景:  适合需要隐藏服务端服务器 IP 地址,且对性能要求不高的场景。

5. LVS 的调度算法

LVS 支持多种调度算法,每种算法都有其特点和适用场景:

  • 静态调度算法:

  • RR (Round Robin): 轮询调度,将请求依次分配到后端服务器。

  • WRR (Weighted Round Robin): 加权轮询调度,可以为每个服务器设置权重,权重越大,分配到的请求越多。

  • SH (Source Hashing):  源地址哈希调度,根据客户端 IP 地址进行哈希,将请求分配到固定的服务器。适合解决 Session 共享问题。

  • DH (Destination Hashing): 目标地址哈希调度,根据请求的目标地址进行哈希,将请求分配到固定的服务器。适合用于缓存服务器的负载均衡。

  • 动态调度算法:

  • LC (Least Connections): 最小连接数调度,将请求分配到连接数最少的服务器。适合用于长连接应用。

  • WLC (Weighted Least Connections): 加权最小连接数调度,根据服务器的权重和连接数进行调度。

  • SED (Shortest Expected Delay): 最短延迟调度,根据服务器的权重和连接数进行调度,优先调度延迟最小的服务器。适合用于需要快速响应的应用。

  • NQ (Never Queue):  将请求分配到空闲的服务器,如果所有服务器都有连接,则使用 SED 算法。适合用于需要高吞吐量的应用。

  • LBLC (Locality-Based Least Connections): 动态的 DH 算法,根据负载状态实现正向代理。适合用于需要根据负载状态进行动态调度的场景。

  • LBLCR (LBLC with Replication): 带复制功能的 LBLC,解决 LBLC 负载不均衡问题。适合用于需要高可用性的场景。

6. ipvsadm 工具

ipvsadm 是 LVS 的管理工具,用于添加、删除、修改 LVS 虚拟服务器和服务端服务器,以及查看 LVS 状态信息。

常用命令:

  • ipvsadm -A -t <VIP:端口> -s <算法>:  添加虚拟服务器。

  • ipvsadm -D -t <VIP:端口>:  删除虚拟服务器。

  • ipvsadm -a -t <VIP:端口> -r <RIP:端口> <模式>:  添加服务端服务器。

  • ipvsadm -d -t <VIP:端口> -r <RIP:端口>:  删除服务端服务器。

  • ipvsadm -l:  查看 LVS 虚拟服务器列表。

  • ipvsadm -n:  以数字形式显示地址、端口等信息。

7. LVS-NAT 负载均衡部署

架构图:

图片

步骤:

  1. 配置调度器:
  • 添加一块网卡,设置为仅主机模式。

  • 开启路由转发功能:net.ipv4.ip_forward = 1

  • 安装 ipvsadm 软件:yum install ipvsadm

  • 添加虚拟服务器:ipvsadm -A -t 12.0.0.1:80 -s rr

  • 添加服务端服务器:ipvsadm -a -t 12.0.0.1:80 -r 192.168.204.20:80 -m

  • 添加服务端服务器:ipvsadm -a -t 12.0.0.1:80 -r 192.168.204.30:80 -m

  1. 配置服务端服务器:
  • 安装 Web 服务 (例如 Apache 或 Nginx)。

  • 设置网关为调度器的内网 IP 地址。

  1. 配置客户端:
  • 设置网关为调度器的内网 IP 地址。

8. LVS-DR 负载均衡部署

示例:

图片

  1. 配置调度器:
  • 配置虚拟网卡,设置 VIP 地址:IPADDR=192.168.204.188NETMASK=255.255.255.255

  • 开启路由转发功能:net.ipv4.ip_forward = 1

  • 安装 ipvsadm 软件:yum install ipvsadm

  • 添加虚拟VIP:ipvsadm -A -t 192.168.204.188:80 -s rr

  • 添加服务端服务器IP:ipvsadm -a -t 192.168.204.188:80 -r 192.168.204.20:80 -g

  • 添加服务端服务器IP:ipvsadm -a -t 192.168.204.188:80 -r 192.168.204.30:80 -g

  1. 配置服务端服务器:
  • 安装 Web 服务 (例如 Apache 或 Nginx)。

  • 配置回环网卡,设置 VIP 地址:IPADDR=192.168.204.188NETMASK=255.255.255.255

  • 设置 arp_ignorearp_announce 参数:net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2

  1. 配置客户端:
  • 设置网关为调度器的内网 IP 地址。

9. LVS 性能优化

  • 优化调度算法:  选择合适的调度算法,例如 WRR 或 WLC,根据服务器的权重和连接数进行调度,提高性能和负载均衡。

  • 优化健康检查:  合理设置健康检查间隔时间,避免过频繁的健康检查,减少调度器对后端服务器的压力。

  • 使用 spread-checks 指令:  延迟发送健康检查,错峰处理,减少调度器对后端服务器的压力。

  • 优化硬件配置:  使用高性能服务器、SSD 硬盘,提高 LVS 集群的整体性能。

10. Keepalived + LVS 高可用负载均衡

Keepalived 是一款开源的高可用软件,专为 LVS 和 HAproxy 设计,提供故障自动切换 (Failover) 和节点健康状态检查 (Health Checking) 功能。它通过 VRRP (Virtual Router Redundancy Protocol) 协议实现高可用性,确保当调度器出现故障时,可以自动切换到备用调度器,保证服务的连续性。

Keepalived 的核心组件:

  • VRRP stack:  负责发送心跳线,通告虚拟 IP (VIP) 和其他信息。

  • Checkers:  负责检查后端服务器的健康状态。

  • System call:  提供通用的模块,用于在 VRRP 协议状态转换时调用脚本。

  • SMTP:  邮件组件,用于发送报警邮件。

  • IPVS wrapper:  自动生成 LVS 规则。

  • Netlink Reflector:  网络接口,用于将虚拟 IP (VIP) 地址漂浮到主调度器。

  • WatchDog:  监控进程,确保 Keepalived 进程正常运行。

Keepalived 的工作原理:

Keepalived 通过 VRRP 协议实现高可用性,VRRP 协议是一种虚拟路由冗余协议,它将多个路由器虚拟成一个组,并选举出一个主路由器,负责处理流量。当主路由器出现故障时,备用路由器会自动接管主路由器的职责,确保服务的连续性。

Keepalived 的工作流程如下:

  1. Keepalived 启动后,会加入一个 VRRP 组,并选举出一个主节点。

  2. 主节点会定期发送心跳线,通告虚拟 IP (VIP) 和其他信息。

  3. 备用节点会接收心跳线,并根据优先级判断是否需要接管主节点。

  4. 当主节点出现故障时,备用节点会自动接管主节点的职责,并成为新的主节点。

  5. 当主节点恢复正常时,会根据抢占模式决定是否重新成为主节点。

VRRP 协议相关术语:

  • 虚拟路由器:  不是真正存在的路由器,而是由多个物理路由器虚拟出来的一个组。

  • 虚拟路由器标识 (VRID):  用于标识虚拟路由器组,同一个组的路由器才能使用 VRRP 协议。

  • VIP (Virtual IP):  虚拟 IP 地址,也就是网关,对外提供服务的地址。

  • VMAC (Virtual MAC):  虚拟路由器的 MAC 地址。

  • Master:  主节点,负责处理流量。

  • Backup:  备用节点,当主节点出现故障时,会自动接管主节点的职责。

  • Priority:  优先级,优先级高的节点会成为主节点。

  • Advert_int:  心跳线报文发送间隔时间,单位为秒。

Keepalived 的三种抢占模式:

  • 抢占式 (Preempt):  当主节点出现故障时,备用节点会接管主节点的职责。当主节点恢复正常时,会立即抢占主节点的职责。

  • 非抢占式 (No Preempt):  当主节点出现故障时,备用节点会接管主节点的职责。当主节点恢复正常时,不会重新成为主节点,而是继续作为备用节点。

  • 延迟抢占模式 (Preempt Delay):  当主节点出现故障时,备用节点会接管主节点的职责。当主节点恢复正常时,会延迟一段时间,等待主节点稳定后,再重新成为主节点。

Keepalived 的安装:

6.1 Yum 安装
yum install keepalived

注意: Yum 安装的 Keepalived 版本可能较旧,建议使用编译安装方式。

6.2 编译安装
yum install gcc curl openssl-devel libnl3-devel net-snmp-devel
wget https://keepalived.org/software/keepalived-2.2.2.tar.gz
tar xf keepalived-2.2.2.tar.gz
cd keepalived-2.2.2
./configure --prefix=/usr/local/keepalived
make
make install

7. Keepalived 的配置文件

Keepalived 的配置文件通常位于 /etc/keepalived/keepalived.conf,包含以下几个部分:

  • 全局配置块 (GLOBAL CONFIGURATION):  定义邮件配置、router_id、VRRP 配置、组播地址等。

  • 虚拟路由器设置 (VRRP CONFIGURATION):  定义 VRRP 协议中,每个 VRRP 虚拟路由器的规则、基本信息。

  • LVS 设置 (LVS CONFIGURATION):  定义调度服务器和服务端服务器的规则设置。

8. Keepalived 的配置示例

global_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 LVS_DEVELvrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.125.123}
}virtual_server 192.168.125.123 80 {delay_loop 6lb_algo rrlb_kind DRpersistence_timeout 0protocol TCPreal_server 192.168.201.100 443 {```weight 1SSL_GET {url {path /digest ff20ad2481f97b1754ef3e12ecd3a9cc}url {path /mrtg/digest 9b3a0c85a887a256d6939da88aabd8cd}connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}

9. Keepalived + LVS 的实验

实验环境:

  • 主节点 (Master):  7-1 (192.168.125.100)

  • 备用节点 (Backup):  7-2 (192.168.125.120)

  • 服务端服务器1:  7-3 (192.168.125.130)

  • 服务端服务器2:  7-5 (192.168.125.150)

  • 虚拟 IP (VIP):  192.168.125.123

  • 客户端:  7-6 (192.168.125.160)

步骤:

  1. 配置服务端服务器 (7-3 和 7-5):
  • 安装 Web 服务 (例如 Apache 或 Nginx)。

  • 创建访问页面,例如 echo "7-3 keepalived" > index.html

  • 关闭长连接:keepalive off

  1. 配置主节点 (7-1):
  • 复制配置文件并备份:cp keepalived.conf keepalived.conf.bak

  • 编辑配置文件,设置 router_idinterfacevirtual_ipaddress 等参数。

  • 设置 LVS 模式为 DR:lb_kind DR

  • 设置服务端服务器信息,包括 weightTCP_CHECK

  • 安装 ipvsadm 和 keepalived:yum install ipvsadm keepalived

  • 启动 ipvsadm 服务:systemctl start ipvsadm

  • 验证服务端服务器是否配置成功:curl 192.168.125.130curl 192.168.125.150

  • 配置 Keepalived:

  • 重启 Keepalived 服务:systemctl restart keepalived.service

  • 查看虚拟 IP:ip a

  1. 配置备用节点 (7-2):
  • 安装 ipvsadm 和 keepalived:yum install ipvsadm keepalived

  • 启动 ipvsadm 服务:systemctl start ipvsadm

  • 复制主节点的 Keepalived 配置文件到备用节点。

  • 编辑配置文件,将 state 设置为 BACKUPpriority 设置为低于主节点的优先级。

  • 重启 Keepalived 服务:systemctl restart keepalived.service

  1. 配置客户端 (7-6):
  • 设置网关为调度器的内网 IP 地址。
  1. 测试主备切换:
  • 关闭主节点的 Keepalived 服务,验证备用节点是否接管主节点职责。

  • 重新启动主节点的 Keepalived 服务,验证主节点是否重新成为主节点。

10. 抢占模式

Keepalived 支持三种抢占模式,可以根据实际需求选择合适的模式:

  • 立即抢占模式 (Preempt):  当主节点出现故障时,备用节点会接管主节点的职责。当主节点恢复正常时,会立即抢占主节点的职责。

  • 非抢占模式 (No Preempt):  当主节点出现故障时,备用节点会接管主节点的职责。当主节点恢复正常时,不会重新成为主节点,而是继续作为备用节点。

  • 延迟抢占模式 (Preempt Delay):  当主节点出现故障时,备用节点会接管主节点的职责。当主节点恢复正常时,会延迟一段时间,等待主节点稳定后,再重新成为主节点。

11. 修改单播和多播地址

  • 修改多播地址:  在 Keepalived 配置文件中,使用 vrrp_mcast_group4 指令修改多播地址。

  • 修改单播地址:  在 Keepalived 配置文件中,使用 unicast_src_ipunicast_peer 指令修改单播地址。

12. 主备切换的通知脚本

Keepalived 可以通过脚本通知管理员主备切换事件。

  • 定义脚本:  在 Keepalived 配置文件中,使用 notify_masternotify_backupnotify_fault 指令定义脚本路径。

  • 编写脚本:  编写脚本,实现发送邮件、记录日志等功能。

13. 脑裂问题

脑裂问题是指在高可用集群中,由于网络故障或其他原因,导致两个节点都认为自己是主节点,从而导致数据不一致或服务中断。

预防脑裂问题的方法:

  • 使用双心跳线:  使用串行电缆和以太网电缆连接,确保即使一条线路断开,另一条线路也能正常工作。

  • 使用 Fencing 设备:  使用 Fencing 设备,当检测到脑裂时,强行关闭一个心跳节点,避免两个节点都认为自己是主节点。

14. Nginx + Keepalived 实验

实验环境:

  • 调度服务器:  7-1 (192.168.125.100)

  • 备用调度服务器:  7-2 (192.168.125.120)

  • 服务端服务器1:  7-3 (192.168.125.130)

  • 服务端服务器2:  7-5 (192.168.125.150)

  • 虚拟 IP (VIP):  192.168.125.123

  • 客户端:  7-6 (192.168.125.160)

步骤:

  1. 配置服务端服务器 (7-3 和 7-5):
  • 安装 Web 服务 (例如 Apache 或 Nginx)。

  • 创建访问页面,例如 echo "7-3 nginx" > index.html

  1. 配置服务端服务器 (7-1):
  • 复制配置文件并备份:cp keepalived.conf keepalived.conf.bak

  • 编辑配置文件,设置 router_idinterfacevirtual_ipaddress 等参数。

  • 使用 vrrp_script 模块,定义一个脚本,用于检测 Nginx 是否正常运行。

  • 使用 track_script 指令,将脚本添加到 Keepalived 的监控列表中。

  • 编辑 Nginx 配置文件,添加 upstreamlocation 配置。

  • 安装 Nginx 和 Keepalived:yum install nginx keepalived

  • 启动 Nginx 服务:systemctl start nginx

  • 配置 Nginx 负载均衡:

  • 复制 Nginx 配置文件到备用调度服务器 (7-2)。

  • 配置 Keepalived:

  • 重启 Keepalived 服务:systemctl restart keepalived.service

  1. 配置备用调度服务器 (7-2):
  • 复制配置文件并备份:cp keepalived.conf keepalived.conf.bak

  • 编辑配置文件,将 state 设置为 BACKUPpriority 设置为低于主调度服务器的优先级。

  • 使用 vrrp_script 模块,定义一个脚本,用于检测 Nginx 是否正常运行。

  • 使用 track_script 指令,将脚本添加到 Keepalived 的监控列表中。

  • 安装 Nginx 和 Keepalived:yum install nginx keepalived

  • 启动 Nginx 服务:systemctl start nginx

  • 复制主调度服务器的 Nginx 配置文件到备用调度服务器。

  • 配置 Keepalived:

  • 重启 Keepalived 服务:systemctl restart keepalived.service

  1. 配置客户端 (7-6):
  • 设置网关为调度器的内网 IP 地址。
  1. 测试主备切换:
  • 关闭主调度服务器的 Nginx 和 Keepalived 服务,验证备用调度服务器是否接管主调度服务器职责。

  • 重新启动主调度服务器的 Nginx 和 Keepalived 服务,验证主调度服务器是否重新成为主节点。

15. 总结

Keepalived + LVS 是构建高可用负载均衡集群的常见方案,可以有效地提高系统的性能、可用性和可靠性。通过本文档,您应该已经了解了 Keepalived 和 LVS 的基本概念、工作原理、部署步骤和性能优化等内容。希望这份指南能够帮助您更好地理解和使用 Keepalived + LVS,构建高性能、安全可靠的 Web 服务。

16. 进一步学习

  • Keepalived 官方网站: https://www.keepalived.org/

  • Keepalived 文档: https://www.keepalived.org/

  • LVS 官方网站: http://linuxvirtualserver.org/

  • LVS 文档: http://linuxvirtualserver.org/

  • LVS 模块: http://linuxvirtualserver.org/

注意:

  • 以上配置示例仅供参考,请根据您的实际需求进行调整。

  • 在进行任何配置更改之前,请务必备份您的配置文件,并进行测试以确保更改不会影响 LVS 或 Keepalived 的正常运行。

Keepalived + LVS 示例图:

图片

说明:

  • Keepalived 通过 VRRP 协议实现调度器的高可用性,主节点和备用节点之间通过心跳线进行通信,确保当主节点出现故障时,备用节点可以自动接管主节点的职责。

  • LVS 负责将流量分配到多个服务端服务器,提高系统的性能和可靠性。

  • 客户端只访问虚拟 IP (VIP),而不会直接访问服务端服务器。SS

这篇关于LVS 负载均衡集群指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

如何掌握面向对象编程的四大特性、Lambda 表达式及 I/O 流:全面指南

这里写目录标题 OOP语言的四大特性lambda输入/输出流(I/O流) OOP语言的四大特性 面向对象编程(OOP)是一种编程范式,它通过使用“对象”来组织代码。OOP 的四大特性是封装、继承、多态和抽象。这些特性帮助程序员更好地管理复杂的代码,使程序更易于理解和维护。 类-》实体的抽象类型 实体(属性,行为) -》 ADT(abstract data type) 属性-》成

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体