LVS负载均衡群集与LVS-NAT部署实战配置

news2025/1/10 16:56:17

文章目录

  • 一.什么是集群
    • 1.群集的含义
  • 二.集群使用在那个场景
  • 三.集群的分类
    • 1.负载均衡器群集
    • 2.高可用群集
    • 3.高性能运算群集
  • 四.负载集群的架构
    • 1.第一层,负载调度器
    • 2.第二层,服务器池
    • 3.第三层,共享存储
  • 五.负载均衡集群的工作模式
    • 1.地址转换 (NAT模式)
    • 2.IP隧道 (TUN模式)
    • 3.直接路由 (DR模式)
  • 六.LVS虚拟服务器
    • 1.LVS概述
    • 2.LVS组成
    • 3.LVS作用
    • 4.LVS和nginx比较
  • 七.LVS负载调度算法
    • 1.轮询(rr)
    • 2.加权轮询
    • 3.最少连接
    • 4.加权最少连接
  • 八.实战部署步骤及需求
    • 1.使用ipvsadm工具
      • 1.1 ipvasdm工具选项
    • 2.NFS共享存储服务
      • 2.1 网络文件系纺
      • 2.2 在客户机中访问NFS共享资源
    • 3.案例环境及部署图示
  • 九.案例:LVS-NAT部署实战
    • 1.部署共享存储(NFS服务器:192.168.198.13)
    • 2.配置节点服务器(后端服务器)
      • 2.1修改网卡网关为LVS服务器
      • 2.2 web1:192.168.198.11
      • 2.3 web2:192.168.198.12
    • 3.配置负载调度器LVS(ens33:192.168.198.14 ens37:10.0.0.1(Vmnet2)
      • 3.1配置SNAT转发规则
      • 3.2 加载LVS内核模块
      • 3.3 安装ipvsadm管理工具
      • 3.4 配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置
    • 1.实验中遇到的问题
    • 2.理论知识总结
      • 2.1 集群和什么场景使用
      • 2.2 集群分类(三种)
      • 2.3 负载均衡集群的架构
      • 2.4 负载均衡集群工作模式
      • 2.5 内核态、用户态
        • 2.5.1 内核态、用户态概念
        • 2.5.2 内核态和用户态的区别
        • 2.5.3 为什么要区分内核态和用户态
        • 2.5.4 用户态切换到内核态的方式
      • 2.5 内核态、用户态
        • 2.5.1 内核态、用户态概念
        • 2.5.2 内核态和用户态的区别
        • 2.5.3 为什么要区分内核态和用户态
        • 2.5.4 用户态切换到内核态的方式

一.什么是集群

1.群集的含义

(1)cluster,集群、群集

(2)由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名与IP地址),相当于一台大型计算机。

二.集群使用在那个场景

(1)用在高并发

(2)高可用,访问流量多的时候

三.集群的分类

1.负载均衡器群集

(1)提高应用系统的响应能力、尽可能处理更多的访问请求减少延迟为目标,获得高并发、高负载(LB)的整体性能

(2)LB的负载分配依赖于主节点的分流算法
(3)访问请求分担给多个服务器节点,从而缓解整个系统的负载压力。例如,“DNS轮询“代理”等。

2.高可用群集

(1)提高应用系统的可靠性,尽可能的减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果。

(2)HA的工作方式包括双工和主从两种模式,双工即所有节点同时在线,主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点,例如“故障切换”“双机热备”等

3.高性能运算群集

(1)以提高应用系统的CPU运算速度,扩展硬件资源和分析能力为目标,获得相当于大型,超级计算机的高性能运算(HPC)能力

(2)高性能依赖于“分布式运算”“并行计算”,通过专用硬件和软件将多个服务器的CPU,内存等资源整合在一起,实现只有大型,超级计算机才具备的计算能力,例如“云计算”“网络计算”等

四.负载集群的架构

1.第一层,负载调度器

访问整个群集系统的唯一入口,对外使用所有服务器共有的vip地址,也称为群集IP地址,通常会配置主备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用性。

2.第二层,服务器池

群集所提供的应用服务,由服务器池承担,其中每个节点具有独立的RIP地址(真实ip),只处理调度器分发过来的客户机请求,当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池

3.第三层,共享存储

为服务器池中的所以节点提供稳定,一致的文件存取服务,确保整个群集的统一性。共享存储可以使用NAS设备,或者提供NFS共享服务的专用服务器.

五.负载均衡集群的工作模式

1.地址转换 (NAT模式)

(1)类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口

(2)服务器节点使用私有ip地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式

2.IP隧道 (TUN模式)

(1)采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不在经过负载调度器

(2)服务器节点分散在互联网中的不同位置,具有独立的公网ip地址,通过专用的ip隧道与负载调度器相互通信

3.直接路由 (DR模式)

(1)采用半开放式的网络结构,与TUN模式的结构累死,但各节点并不是分散在各地,而是与调度器位于同一个物理网络

(2)负载调度器与各节点服务器通过本地网络连接,不需要建立专用的ip隧道

六.LVS虚拟服务器

1.LVS概述

(1)Linux Virtual Server是针对Linux内核开发的负载均衡解决方案,由我国博士章文嵩在1998年创建,LVS实际上相当于基于IP地址的虚拟化应用,为基于IP地址和内容请求分发的负载均衡提出的一种高效的解决方法

(2)LVS现在已成为Linux内核的一部分,默认编译为ip_vs模块,必要时能够自动调用。在CentOS7系统中,以下操作可以手动加载ip_vs模块,并查看当前系统中ip_vs模块的版本信息。

(3)官方网站:http://www.linuxvirtualserver.org

2.LVS组成

(1)Lvs是基于内核态的net filter框架实现的IPVS功能,工作在内核态,用户配置VRRP

(2)ipvsadm是lvs用户态的配套工具,可以实现VID华人RS的增删改查

3.LVS作用

(1)主要用于多服务器的负载均衡

(2)工作在网络层,可实现高性能高可用的服务集群技术

(3)廉价,可把许多低性能的服务器组合在一起形成一个超级服务器

(4)易用,配置简单 有多重负载均衡的方法

(5)稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果

(6)可扩展性好

4.LVS和nginx比较

(1)Lvs比nginx具有更强的抗负载能力,性能高 对内存和CPu资源消耗低

(2)LVS工作在网络层,网络依懒性大,稳定性高。nginx安装配置比较简单,网络性依赖小

(3)LVS不支持正则匹配处理,无法实现动静分离效果,nginx可以实现动静分离这方面的功能

(4)LVS适用的协议范围广,nginx仅支持HTTP和HTTPS、Email协议,适用范围小

七.LVS负载调度算法

1.轮询(rr)

将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均等的对待每一个服务器,而不管服务器实际的连接数和系统负载

2.加权轮询

(1)根据调度器设置的权重值分发请求,权重值高的节点优先获得任务,分配的请求数越多

(2)保证性能强的服务器承担更多的访问流量

3.最少连接

根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点

4.加权最少连接

(1)在服务器节点的性能差异较大时,可以为真实服务器自动调整权重

(2)性能较高的节点将承担更大比例的活动连接负载

八.实战部署步骤及需求

1.使用ipvsadm工具

创建虚拟服务器

添加、删除服务器节点

查看群集及节点情况

保存负载分配策略

1.1 ipvasdm工具选项

-A:添加虚拟服务器

-D:删除整个虚拟fuwq

-s:指定负载调度算法(轮询,加权轮询,最少连接,加权最少连接,wlc)

-a:表示添加真实服务器(节点服务器)

-d:删除某一个节点

-t:指定VIP地址及TCP端口

-r:指定RIP地址及TCP端口

-m:表示使用NAT群集模式

-g:表示使用DR模式

-i:表示使用TUN模式

-w:设置权重(权重为0时表示暂停节点)

-p60:表示保持长连接60秒

-l:列表查看LVS虚拟服务器(默认为查看所有)

-n:以数字形式显示地址,端口等信息,常与“-l”选项组合使用

2.NFS共享存储服务

2.1 网络文件系纺

  • 依赖于RPC(远端过程调用)
  • 需安装nfs-utils、rpcbind软件包
  • 系统服务: nfs、rpcbind
  • 共享配置文件: /etc/exports

2.2 在客户机中访问NFS共享资源

  • 安装rpcbind软件包,并启动rpcbind服务
  • 手动挂载NFS共享目录
  • fstab自动挂载设置

3.案例环境及部署图示

LVS调度器作为Web服务器池的网关,LVS两块网卡,分别连接内外网,使用轮询 (rr) 调度算法

在这里插入图片描述

九.案例:LVS-NAT部署实战

Lvs负载调度器:ens33:192.168.198.14 ens37:10.0.0.1(Vmnet2)

web1节点服务器1:192.168.198.11

web2节点服务器2:192.168.198.12

NFS服务器:192.168.198.13

客户端(win10):10.0.0.13(Vmnet 3)

注:

  • win10虚拟机(客户端)网卡设置为10.0.0.1
  • web服务器网关设置为 192.168.10.19

1.部署共享存储(NFS服务器:192.168.198.13)

#关闭防火墙、安全机制
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#安装nfs-utils.x86_64 rpcbind.x86_64
yum -y install nfs-utils.x86_64 rpcbind.x86_64
#开启nfs-utils.x86_64 rpcbind.x86_64
systemctl start nfs.service 
systemctl start rpcbind.service
systemctl enable nfs.service 
systemctl enable rpcbind.service
#创建共享目录、赋予权限
mkdir /opt/blue /opt/summer
chmod 777 /opt/blue/ /opt/summer/
#创建共享文件及地址
vim /etc/exports

/usr/share *(ro,sync)
/opt/blue 192.168.198.0/24(rw,sync)
/opt/summer 192.168.198.0/24(rw,sync)
#发布共享
exportfs -rv
#查看共享
showmount -e

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3mxALB17-1688479101217)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704152846044.png)]

2.配置节点服务器(后端服务器)

web1节点服务器1:192.168.198.11

web2节点服务器2:192.168.198.12

#关闭防火墙、安全机制
systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

2.1修改网卡网关为LVS服务器

#安装http
yum install -y httpd
systemctl start httpd.service 
systemctl enable httpd.service
#安装nfs-utils rpcbind
yum install -y nfs-utils rpcbind
systemctl start rpcbind.service
systemctl enable rpcbind.service
#查看共享存储
showmount -e 192.168.198.13

在这里插入图片描述

2.2 web1:192.168.198.11

#挂载
mount.nfs 192.168.198.13:/opt/blue /var/www/html/
#查看挂载
df -h

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qxNv16K7-1688479101218)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704154307997.png)]

#写入
echo 'this is blue' > /var/www/html/index.html

#永久挂载
vim /etc/fstab
192.168.198.13:/opt/blue /var/www/html nfs defaults,_netdev 0 0
#刷新
mount -a

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WFIMwOSW-1688479101219)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704155120470.png)]

网卡需要将外网的服务器网关指向LVS调度器,将内网的服务器网关也指向LVS调度器,因此网关需要修改为14

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EFEAqviE-1688479101219)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704182037413.png)]

systemctl restart network

2.3 web2:192.168.198.12

#挂载
mount.nfs 192.168.198.13:/opt/summer /var/www/html/
#查看挂载
df -h

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9pGFDfQk-1688479101220)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704155011781.png)]

#写入
echo 'this is summer' > /var/www/html/index.html

在这里插入图片描述

#永久挂载
vim /etc/fstab
92.168.198.13:/opt/summer /var/www/html nfs defaults,_netdev 0 0
#刷新
mount -a

网卡需要将外网的服务器网关指向LVS调度器,将内网的服务器网关也指向LVS调度器,因此网关需要修改为14

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yhqyBbG9-1688479101221)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704182112551.png)]

systemctl restart network

3.配置负载调度器LVS(ens33:192.168.198.14 ens37:10.0.0.1(Vmnet2)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KUf3JWJZ-1688479101222)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704182151800.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9JXPnS4y-1688479101223)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704182218139.png)]

需要添加一张虚拟网卡(网络适配器)并且选择Vmnet2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cZZl4evC-1688479101224)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704182310407.png)]

win虚拟机的地址需要手动改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qKPP6CwO-1688479101225)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704165443193.png)]

#关闭防火墙和安全机制
systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

198.168.198.14虚拟机

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hgkqy40c-1688479101226)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704182519675.png)]

3.1配置SNAT转发规则

在配置之前可以先安装ipvsadm管理工具,防止后面更改完无法获取下载

yum install -y ipvsadm
#复制网卡、修改地址等
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens37
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens37

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hvj6Ogil-1688479101226)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704174448720.png)]

vim ifcfg-ens33

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fmc8Hijm-1688479101227)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704175534064.png)]

systemctl restart network

如起不来可以将其中的一个UUID删掉

vim /etc/sysctl.conf
net.ipv4.ip_forward=1
#查看
sysctl -p
net.ipv4.ip_forward = 1
或者:echo '1' > /proc/sys/net/ipv4/ip_forward
#清除iptables的规则、策略
iptables -t nat -F
#查看清除后的iptables
iptables -F
iptables -t nat -nL

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GFK5meai-1688479101227)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704160849938.png)]

#配置iptables
iptables -t nat -A POSTROUTING -s 192.168.198.0/24 -o ens37 -j SNAT --to-source 10.0.0.1
iptables -nL -t nat

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1NeCcMij-1688479101228)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704175712747.png)]

注:

nat表:修改数据包中的源、目标IP地址或端口
POSTROUTING: 在进行路由判断之"后"所要进行的规则(SNAT/MASQUERADE)
PREROUTING: 在进行路由判断之"前"所要进行的规则(DNAT/REDIRECT)
-A: 在规则链的末尾加入新规则
-s: 匹配来源地址IP/MASK.
-o 网卡名称匹配从这块网卡流出的数据
-i 网卡名称匹配从这块网卡流入的数据
-j 控制类型

3.2 加载LVS内核模块

#手动加载ip_vs模块
modprobe ip_vs
#查看ip_vs版本信息
cat /proc/net/ip_vs

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mAFLVeoS-1688479101229)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704163527324.png)]

3.3 安装ipvsadm管理工具

yum install -y ipvsadm
#注意:启动服务前必须保存负载分配策略,否则将会报错
ipvsadm-save > /etc/sysconfig/ipvsadm
或者
ipvsadm --save > /etc/sysconfig/ipvsadm
或者
touch /etc/sysconfig/ipvsadm

systemctl start ipvsadm.service

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vtsG2UXB-1688479101230)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704164039445.png)]

3.4 配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置

#清除原有策略
ipvsadm -C
ipvsadm -A -t 10.0.0.1:80 -s rr
ipvsadm -a -t 10.0.0.1:80 -r 192.168.198.11:80 -m -w 1 ipvsadm -a -t 10.0.0.1:80 -r 192.168.198.12:80 -m -w 1

-A 添加虚拟服务器
-s 指定负载调度算法 (轮询:rr、加权轮询: wrr、最少连接: lc、加权最少连接: wlc )
-a 表示添加真实服务器 (后端节点服务器)
-t 指定 VIP地址及 TCP端口
-m 表示使用 NAT群集模式.
-w 设置权重 (权重为 0 时表示暂停节点)

#启动策略
ipvsadm    
#查看节点状态,Masq代表 NAT模式
ipvsadm -ln
#保存策略
ipvsadm-save > /etc/sysconfig/ipvsadm    

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5D6f0JDh-1688479101230)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704164804676.png)]

测试:
在win10上使用浏览器访问10.0.0.1,刷新浏览器测试负载均衡
PS:刷新间隔时间需要稍长一点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tcaq1jTz-1688479101231)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704193233618.png)]

F5刷新

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SMRjIWEu-1688479101232)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230704193344102.png)]

image-20230704193424173

1.实验中遇到的问题

(1)LVS-NAT模式:简单来说,就是通过防火墙规则+LVS-ipvsadm管理工具,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/717295.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32中static和extern的用法

static: A. static变量 称为静态变量。根据变量的类型可以分为静态局部变量和静态全程变量。 1. 静态局部变量 它与局部变量的区别在于: 在函数退出时, 这个变量始终存在, 但不能被其它 函数使用, 当再次进入该函数时, 将保存上次的结果。其它与局部变量一样。…

记一次自建靶场三层代理内网渗透过程

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 向日葵RCE外网突破02 Frp内网隧道搭建03 获取域内出网主机权限04 三层隧道搭建访问内网不出网主机 01 向日葵RCE外网突破 端口扫描探测存活端口,发现存在172.16.16.128:49773端口 访问…

【RPC】—Protobuf编码原理

Protobuf编码原理 ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ Spring专栏👉https://blog.csdn.net/weixin_53580595/category_12279588.html SpringMVC专…

【跨域认证】详解JWT,JWT是什么?

JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后,在当前对话&…

[SSM]MyBatis使用javassist生成类和接口代理机制

目录 六、使用javassist生成类 6.1Javassist的使用 6.2使用Javassist生成DaoImpl类 七、MyBatis中接口代理机制及使用 7.1在之前的web应用中使用接口代理机制 7.2使用接口代理机制完成之前的CRUD(部分代码) 六、使用javassist生成类 6.1Javassist的使用 引入javassist依…

王道考研计算机网络第五章知识点汇总

5.1.1 传输层概述 复用:好比家里面每个人都要写信,向信箱里面投入信件,然后由邮递员取走。 分用:就是每个人都收到了各自的回信,然后从信箱中取走各自的信 5.2 UDP协议 注意:用户数据报和检验和都是指的整…

数学建模——插值(下)

本文是面向数学建模准备的,是介绍性文章,没有过多关于原理的说明!!! 目录 一、2维插值原理及公式 1、二维插值问题 2、最邻近插值 3、分片线性插值 4、双线性插值 5、二维样条插值 二、二维插值及其Matlab工具箱…

记录一次Android侧滑需求代码

点击/滑动界面显示&#xff0c;不多说&#xff0c;上代码&#xff0c;性能未知 效果图 点击/滑动前界面 滑动后效果 布局 <?xml version"1.0" encoding"utf-8"?> <androidx.appcompat.widget.LinearLayoutCompat xmlns:android"…

【Cache】Squid代理服务器应用

文章目录 一、Squid 服务器的概念1. 代理服务器概述CDN 服务器 2. 代理的工作机制3. Squid 服务器的作用4. Squid 代理的类型 二、部署 Squid 服务器1. 安装 Squid 服务1.1 编译安装 Squid1.2 修改 Squid 的配置文件1.3 Squid 的运行控制1.4 创建 Squid 服务脚本1.5 supervisor…

在k8s集群中部署一个应用程序

一、 k8s集群简单介绍 上图描述的是拥有一个Master(主)节点和六个Worker(工作)节点的k8s集群 Master 负责管理集群 负责协调集群中的所有活动&#xff0c;例如调度应用程序&#xff0c;维护应用程序的状态&#xff0c;扩展和更新应用程序。 Worker节点(即图中的Node)是VM(虚…

模拟CSRF攻击

今天给大家表演一个拙劣的CSRF攻击。 我会编写两个应用&#xff1a;一个是正经应用&#xff0c;一个是钓鱼的应用。然后让后者攻击前者&#xff0c;让它打钱&#xff01; 一、绪论 1.1 先聊聊Cookie 参考&#xff1a;常用的本地存储——cookie篇 Cookie在八股文里面好像已…

模板类的开发

模板类的开发 栈定长数组变长数组 栈 入栈和出栈使用引用是为了传递参数 注意构造函数初始化列表使用模板的写法 注意析构函数delete指针需要 [ ] 测试 定长数组 重载了括号运算符 调用的其实是数组 使用int 使用char 变长数组

比亚迪车载Android开发岗三面经历~

前言 首先&#xff0c;我想说一下我为什么会想去比亚迪这样的车企做车载Android开发。我是一名有5年经验的Android开发工程师&#xff0c;之前一直在互联网软件公司工作&#xff0c;做过移动端App和IoT产品的开发。但我一直对汽车领域很感兴趣&#xff0c;也希望自己的技术能应…

TOT(Tree of Thought) | GPT-4+dfs搜索算法提升大模型复杂问题解决能力

大家好&#xff0c;我是HxShine。 今天分享一篇普林斯顿大学的一篇文章&#xff0c;Tree of Thoughts: Deliberate Problem Solving with Large Language Models[1]&#xff1a;思维之树:用大型语言模型解决复杂问题。 这篇工作还是非常有借鉴意义的&#xff0c;OpenAI的Andr…

2023年07月在线IDE流行度最新排名

点击查看最新在线IDE流行度最新排名&#xff08;每月更新&#xff09; 2023年07月在线IDE流行度最新排名 TOP 在线IDE排名是通过分析在线ide名称在谷歌上被搜索的频率而创建的 在线IDE被搜索的次数越多&#xff0c;人们就会认为它越受欢迎。原始数据来自谷歌Trends 如果您相…

深度学习基础

1 机器学习、深度学习、人工智能 1.1 机器学习 机器学习是一门专门研究计算机怎样模拟或实现人类的学习行为&#xff0c;以获取新的知识或技能&#xff0c;重新组织已有的知识结构使之不断改善自身性能的学科。 基本步骤&#xff1a;获取数据、数据预处理、特征提取、特征选择…

postman几种常见的请求方式

1、get请求直接拼URL形式 对于http接口&#xff0c;有get和post两种请求方式&#xff0c;当接口说明中未明确post中入参必须是json串时&#xff0c;均可用url方式请求 参数既可以写到URL中&#xff0c;也可写到参数列表中&#xff0c;都一样&#xff0c;请求时候都是拼URL 2&am…

【win怎么给两个屏幕设置不同壁纸】

在现在经济的发展下&#xff0c;多数用户都拥有了两个屏幕&#xff0c;那么如何在不适用壁纸软件的情况下&#xff0c;将两个屏幕设置成不同的壁纸呢&#xff1f; 操作 首先将需要进行设置的图片选好&#xff0c;将其保存到桌面上&#xff0c;紧接着框选两张图片&#xff0c;…

探索Gradio库中的Image模块及其强大功能

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

84、基于stm32单片机超市自助存储柜快递箱系统设计(程序+原理图+流程图+参考论文+开题报告+任务书+设计资料+元器件清单等)

单片机主芯片选择方案 方案一&#xff1a;AT89C51是美国ATMEL公司生产的低电压&#xff0c;高性能CMOS型8位单片机&#xff0c;器件采用ATMEL公司的高密度、非易失性存储技术生产&#xff0c;兼容标准MCS-51指令系统&#xff0c;片内置通用8位中央处理器(CPU)和Flash存储单元&a…