負載均衡LB》》LVS

LO 接口

LVS簡介

LVS(Linux Virtual Server)即Linux虛擬服務器,是由章文嵩博士主導的開源負載均衡項目,通過LVS提供的負載均衡技術和Linux操作系統實現一個高性能、高可用的服務器集群,它具有良好可靠性、可擴展性和可操作性,從而以低廉的成本實現最優的服務性能。目前LVS已經被集成到Linux內核模塊中。該項目在Linux內核中實現了基于IP的數據請求負載均衡調度方案,終端互聯網用戶從外部訪問公司的外部負載均衡服務器,終端用戶的Web請求會發送給LVS調度器,調度器根據自己預設的算法決定將該請求發送給后端的某臺Web服務器,比如,輪詢算法可以將外部的請求平均分發給后端的所有服務器,終端用戶訪問LVS調度器雖然會被轉發到后端真實的服務器,但如果真實服務器連接的是相同的存儲,提供的服務也是相同的服務,最終用戶不管是訪問哪臺真實服務器,得到的服務內容都是一樣的,整個集群對用戶而言都是透明的。最后根據LVS工作模式的不同,真實服務器會選擇不同的方式將用戶需要的數據發送到終端用戶,
LVS工作模式分為NAT模式、TUN模式、以及DR模式。

LVS的IP負載均衡技術是通過IPVS模塊來實現的,IPVS是LVS集群系統的核心軟件,它的主要作用是:安裝在Director Server上,同時在Director Server上虛擬出一個IP地址**,用戶必須通過這個虛擬的IP地址訪問服務**。這個虛擬IP一般稱為LVS的VIP,即Virtual IP。訪問的請求首先經過VIP到達負載調度器,然后由負載調度器從Real Server列表中選取一個服務節點響應用戶的請求。
??當用戶的請求到達負載調度器后,調度器如何將請求發送到提供服務的Real Server節點,而Real Server節點如何返回數據給用戶,是IPVS實現的重點技術,IPVS實現負載均衡機制有三種,分別是NAT、TUN和DR.

LVS 核心組件和專業術語

# 核心組件
LVS  的  管理工具ipvsadm 和  內核模塊  ipvs
ipvsadm :用戶空間的命令行工具,用于管理集群服務及集群服務上的RS(Real Server 后端的真實服務器)等
ipvs: 工作于內核上的程序,可根據用戶定義的集群實現請求轉發#  專業術語
VS:Virtual Server   虛擬服務
DR、DS:Director,Balancer   負載均衡器、分發器
RS:Real Server    后端請求處理的真實服務器
CIP:Client IP   用戶端IP
#  負載均衡器 有兩個IP  VIP,DIP
VIP:Director Virtual IP   負載均衡器虛擬IP
DIP: Director IP          負載均衡器IP
RIP: Real Server IP   后端請求處理真實服務器IP

LVS負載均衡器4種工作模式

LVS-NAT 》》網絡地址轉換模式
進站、出站的數據流程都經過DS(DR)負載均衡器(IP負載均衡,修改的是IP地址),利用網絡層(四層)
支持端口映射
NAT模式支持對IP地址和端口進行轉換。即用戶請求的端口和真實服務器的端口可以不一致。
LVS-DR》》直接路由模式
只有進站的數據流程經過DS(DR)負載均衡器(數據鏈路層負載均衡,修改的是目的MAC地址),利用數據鏈路層(二層)
不支持端口映射(端口不能修敗)
LVS-TUN 》》隧道模式 三層
不支持端口映射, .RS 的 OS 須支持隧道功能
只有進站的數據流程經過DS(DR)負載均衡器
LVS-full-nat》》雙向轉換模式
通過請求報文的源地址為DIP,目標為RIP來實現轉發 支持端口映射
對應響應報文而言,修改源地址為VIP,目標地址為CIP來實現轉發

資料

網絡地址轉換模式》》NAT模式

資料

在這里插入圖片描述
在這里插入圖片描述

原理
DS(DR)負載均衡器把客戶端發來的數據包的IP頭的目標地址,在DS(DR)負載均衡器上換成其中一個RS的IP地址,并發至RS來處理,
RS處理完成后,
把數據交給經過DS(DR)負載均衡器,DS(DR)負載均衡器再把數據包的源IP改成自己的VIP
①源CIP——>目VIP (客戶端向——DS(DR)負載均衡器 通信)
②目VIP——>改成RIP(DS(DR)負載均衡器中做轉換)
(DS(DR)負載均衡器中做轉換)——>RS 通信
③源RIP——>目DIP(RS——負載均衡器 通信)
④源RIP——>改成VIP(處理完成之后,DS(DR)負載均衡器中再轉換)
(DS(DR)負載均衡器中做轉換)——>客戶端通信

優點
集群中的物理服務器(RS服務器),可以使用任何支持TCP/IP操作系統,只有(DS(DR)負載均衡器)需要一個合法的IP(VIP)地址
不足
擴展性有限,當服務器節點(普通PC服務器)增長過多時,(DS(DR)負載均衡器)將成為整個系統的瓶頸,因為所有的請求包和應答包的流向都經過(DS(DR)負載均衡器)。當服務器節點過多時,大量的數據包都交會在(DS(DR)負載均衡器),速度就會變慢

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

直接路由模式》》DR 模式

直接路由模式則應該是工作在數據鏈路層上(二層)

同一個網段的設備之間通信,可用MAC直接通信
不同網段的設備之間通信,必須借助網關

arp協議

資料
在這里插入圖片描述

1、當用戶請求到達Director Server (DS,負載均衡器),此時請求的數據報文會先到內核空間的PREROUTING鏈。 此時報文的源IP為CIP,目標IP為VIP;
2、檢查發現數據包的目標IP是本機,將數據包送至INPUT鏈;
3、IPVS比對數據包請求的服務是否為集群服務,若是,將請求報文中的源MAC地址修改為DIP的MAC地址,將目標MAC地址修改RIP的MAC地址,然后將數據包發至POSTROUTING鏈。 此時的源IP和目的IP均未修改,僅修改了源MAC地址為DIP的MAC地址,目標MAC地址為RIP的MAC地址;
4、由于DS和RS在同一個網絡中,所以是通過二層,數據鏈路層來傳輸。POSTROUTING鏈檢查目標MAC地址為RIP的MAC地址,那么此時數據包將會發至Real Server;
5 、RS發現請求報文的MAC地址是自己的MAC地址,就接收此報文。處理完成之后,將響應報文通過lo接口傳送給eth0網卡(ens網卡)然后向外發出。 此時的源IP地址為VIP,目標IP為CIP;
6、響應報文最終送達至客戶端。

# DR 原理
DS(DR)負載均衡器和RS都使用同一個IP(即VIP)對外服務,但只有DS(DR)負載均衡器對ARP請求進行響應,所有RS對本身這個IP(VIP)的ARP請求保持靜默(就是不理它),也就是說,網關會把這個服務IP(VIP)的請求全部定向給DS(DR)負載均衡器,而DS(DR)負載均衡器收到數據包后根據調度算法(當然前提IPVS會判斷是否是集群,只有集群才會用到調度算法了)。找出對應的RS,
把, 源MAC(即CIP的MAC)————>改成DIP的MAC, 目的MAC(即VIP的MAC)————>改為RS的RIP的MAC,并將請求分發給這臺RS。這時RS收到這個數據包,處理完成之后,由于IP(VIP)是一致,可以直接將數據返給客戶端,則等于直接從客戶端接收到這個數據包無異,處理后直接返回給客戶端。
**優點:**與TUN模式(隧道模式)一樣,DS(DR)負載均衡器也只是分發請求,應答包通過單獨的路由方法返回客戶端,與TUN相比,DR模式不需要隧道結構,因此可以使用大多數操作系統做為物理服務器
**不足:**要求DS(DR)負載均衡器的網卡必須與物理網卡在一個網段上(DS(DR)負載均衡器到RS 是通過MAC地址通信的)。
# DR模式的特點
1、DS(DR)和所有RS 都要配置 VIP 
2、RS的RIP 可以使用私有IP,也可以共有IP,RIP、DIP要在同一網段(因為需要通過MAC通信)
3、RIP的網關不能指向DIP,以確保響應報文不會通過DS(DR)負載均衡器,減少流量。
4、RS和DS(DR)負載均衡器要在同一個物理網絡
5、請求報文經過DS(DR)負載均衡器,但響應報文不經過DS(DR)負載均衡器,而由RS直接發往請求方(client端)

在這里插入圖片描述

在這里插入圖片描述

TUN 隧道模式

資料

# 原理:
互聯網上的大多數Internet服務的請求包很短小,而應答包通常很大。這種就是隧道模式(TUN)
把客戶端發來的數據包,**封裝**一個新的IP頭標記(僅目的IP)發給RS,RS收到后,先把數據包的頭解開,還原數據包,處理后,直接返回客戶端
不需要再經過負載均衡器。
注意:由于RS需要對負載均衡器發過來的數據包進行還原,所以說必須支持IPTunnel協議。所以,在RS的內核中,必須編譯支持IPTunnel這個選項
優點:
負載均衡器只負責將請求包分發給后端節點服務器(RS服務),而RS將應答包直接發給用戶。
所以,減少了負載均衡器的大量數據流動,負載均衡器不再是系統的瓶頸,就能處理巨大的請求量,
這種方式,一臺負載均衡器能夠為很多RS進行分發。而且**跑在公網上就能進行不同地域的分發**
缺點:
TUN隧道模式的RS節點都需要合法IP(公網IP),這種方式需要所有服務器支持IP Tunneling 協議,服務器可能只局限在部分Linux系統上

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

LVS-DR 模式 案例
#  準備三臺Ubuntu系統,上網模式,橋接模式,可以通過VM中創建  
#  
#  關閉 防火墻
ufw disable
# 修改主機名,和IP地址
[主機名和IP地址](https://ares-wang.blog.csdn.net/article/details/146230753)所有的Director和RealServer都在同一個物理網絡中。**同一個網段**  (VIP,DIP,RIP 要在同一個網段,LVS/DR只支持本地網絡)

》》》DS(DR)負載均衡器 配置

#  DS 配置
# 安裝  ipvsadm工具
apt update
apt install ipvsadm
# 在ens3 接口 添加VIP
# 如果VIP配置錯誤,可以刪除  ip addr del IP dev ens33
ip addr  add dev ens33 172.XX.XX.140/32
# 啟動 
# 如果啟動 錯誤  ① mkdir -p /etc/sysconfig   ② ipvsadm -S > /etc/sysconfig/ipvsadm 在啟動
systemctl start ipvsadm
# 添加 添加虛擬服務 
# 如果要清除DS虛擬服務器中所有記錄(含虛擬服務) 第一次配置用不到的   ipvsadm -C  
#======
###  ipvsadm   -  大寫字母 管理集群的, 小寫字母管理  真實服務器的 
#########
# -s : 算法  
#1. 輪詢調度 rr
#2. 加權輪詢 wrr
#3. 最少鏈接 lc
#4. 加權最少鏈接 wlc
# ipvsadm -A -t VIP:端口 -s rr
ipvsadm -A -t 172.XX.XX.140:80 -s rr
# 添加真實服務器  180,104 是真實處理數據的服務器IP 真實服務器后面的80端口,因為我真實服務器用Nginx 做測試的  Nginx 默認端口就是80
# -g  #  指定LVS 模式  直接路由模式 (LVS默認模式)
# -r  真實服務器的IP地址
# -t, --tcp-service service-address, 指定虛擬服務為tcp服務  IP地址:端口號
# -a, --add-server為虛擬服務添加一個real server(RS)
# -g, --gatewaying:使用網關(即直接路由DR),此模式是默認模式。
ipvsadm -a -t 172.XX.XX.140:80 -r 172.XX.XX.180:80 -g
ipvsadm -a -t 172.XX.XX.140:80 -r 172.XX.XX.104:80 -g
# 保存
ipvsadm -S > /etc/sysconfig/ipvsadm
# 啟動systemctl start ipvsadm
# 查看
# -L|-l   # 顯示內核虛擬服務器列表
# -n  # 以為數字形式輸出端口號
ipvsadm -ln

在這里插入圖片描述
》》》配置 RS真實服務器

# RS配置 每個真實服務器都有配置
#  VIP    是lo  接口     在lo接口上綁定VIP
#  刪除 VIP  ip addr del dev lo 172.30.164.140/32
ip addr  add dev lo 172.XX.XX.140/32 
# RS在LO接口配置了VIP,這個同一個網段中就擁有多個VIP(RS中每個都配置VIP,DS也配置VIP)
# 客戶端在網關發送arp廣播需找VIP時,需要RS集群中不接受這個ARP請求,即要關閉ARP響應,ARP靜默
# arp_ignore 設置1,意味著當別人的ARP請求過來的時候,如果接受的設備沒有這個IP,就不做出響應(這個ip在lo接口,lo不說接受設備的進口)
# ARP靜默   臨時
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# ARP靜默  永久 
cat >> /etc/sysctl.conf <<EOF
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
EOF
sysctl -p#  安裝nginx
apt install nginx & systemctl restart nginx
#  為了能看到數據來源那個服務器,故把默認的Index.html 覆蓋了 
# CentOS 路徑   /usr/share/nginx/html
# Ubuntu 路徑  /var/www/html/index.nginx-debian.html 
# >>  追加   > 覆蓋
echo "RS-104" > /var/www/html/index.nginx-debian.html

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

欄位注解

ipvsadm -ln --stats
Conns: 已經轉發過的連接數
InPkts:入包個數
OutPkts:出包個數
InBytes:入流量(字節)
OutBytes:出流量(字節)

ipvsadm -ln --rate
CPS:每秒連接數
InPPS:每秒的入包個數
OutPPS:每秒的出包個數
InBPS:每秒入流量(字節)
OutBPS: 每秒出流量(字節)

在這里插入圖片描述

LVS-NAT 模式 案例

》》DS(DR)負載均衡器

#  準備三臺Ubuntu系統,上網模式,NAT模式,可以通過VM中創建  
#  
#  關閉 防火墻
ufw disable
# 修改主機名,和IP地址
[主機名和IP地址](https://ares-wang.blog.csdn.net/article/details/146230753)
使用LVS-NAT模式將需要**兩個不同網段**的IP,一個IP接受外部請求服務,一般為外網ip,此IP稱為VIP,一個IP與后realserver同一地址段,負責相互通信,稱為DIP。后端realserver的網關地址需指向DIP。同時需開啟linux內核的數據包轉發功能
# 因為VIP和RIP是不同的網段,所有達到隱藏真實IP目的

在這里插入圖片描述
在這里插入圖片描述

# 啟用IP轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
# 永久生效
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
# 添加VIP
ip addr  add dev ens33 172.XX.XX.140/32
# 添加虛擬服務
ipvsadm -A -t 172.XX.XX.140:80 -s rr
# 添加真實服務器  -m  代表 NAT模式
ipvsadm -a -t 172.XX.XX.140:80 -r 192.168.2.5 -m
ipvsadm -a -t 172.XX.XX.140:80 -r 192.168.2.3-m# 啟動
systemctl start ipvsadm
# 保存 如果保存不了,則要創建文件夾 mkdir -p /etc/sysconfig
ipvsadm -S > /etc/sysconfig/ipvsadm

》》RS服務器配置

# 配置IP地址,網關要指向DIP地址即可。#  安裝nginx測試
apt install nginx & systemctl restart nginx
#  為了能看到數據來源那個服務器,故把默認的Index.html 覆蓋了 
# CentOS 路徑   /usr/share/nginx/html
# Ubuntu 路徑  /var/www/html/index.nginx-debian.html 
# >>  追加   > 覆蓋
echo "RS-104" > /var/www/html/index.nginx-debian.html

在這里插入圖片描述

LVS-TUN:隧道模式

 LVS/TUN與 LVS/DR 類似。只是在報文外面再加一層IP封裝,整個過程比LVS/DR模式多一次報文的封裝/解封過程。不同:LVS/DR只支持本地網絡,LVS/TUN卻可以跨機房用內網測試,RIP、DIP 屬于同一個網段  
我用的是私有的  
RS1——RIP:192.168.2.3   網關 192.168.2.1 
RS2——RIP:192.168.2.5   網關 192.168.2.1 
DS-DIP:192.168.2.4   網關 192.168.2.1 
# 在NAT中 RS 中RIP 網關要指向DIP,但TUN模式不可以的

》》DS(DR)負載均衡器

# 加載內核模塊modprobe ip_vsmodprobe ip_vs_rrmodprobe ip_vs_wrrmodprobe ip_vs_shmodprobe tun
# 啟用IP轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
# 永久生效
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
# 配置VIP 
sudo ip addr add 172.XX.XX.140/32 dev ens33
# 配置LVS規則 ipvsadm -A -t 172.XX.XX.140:80 -s rr  # 使用輪詢調度# -i 是隧道模式# ipvsadm -a -t VIP:端口 -r RIP:端口 -i [-w 1]  # -i-->LVS-TUNipvsadm -a -t 172.XX.XX.140:80 -r 192.168.2.5:80 -i  # -i 表示 TUN 模式ipvsadm -a -t 172.XX.XX.140:80 -r 192.168.2.3:80 -i

》》》RS服務器

# 安裝 
modprobe ipip
#  創建隧道接口 每個RS 只有添加自身的 
# ip tunnel add tun0 mode ipip remote DIP local RIP
ip tunnel add tun0 mode ipip remote 192.168.2.4 local 192.168.2.3
ip link set tun0 up
# 配置VIP
ip addr add 172.XX.XX.140/32 dev tun0
# 禁用 ARP 響應  ARP靜默  永久生效
echo 1 | sudo tee /proc/sys/net/ipv4/conf/tun0/arp_ignore
echo 2 | sudo tee /proc/sys/net/ipv4/conf/tun0/arp_announce
echo 1 | sudo tee /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 | sudo tee /proc/sys/net/ipv4/conf/all/arp_announce
# 添加路由
route add -host 172.XX.XX.140 dev tun0# 測試 隧道  如果返回 Real Server 自己的服務(如 Nginx/Apache),說明隧道配置成功。 
# curl VIP 
curl 172.XX.XX.140

在這里插入圖片描述
》》RS 持久化

資料

network:renderer: networkdethernets:ens33: # 替換為你的網絡接口名稱dhcp4: false # 關閉 DHCPdhcp6: false # 關閉 DHCPaddresses: [192.168.2.3/24] # 靜態 IP 地址和子網掩碼routes:- to: defaultvia: 192.168.2.1 # 網關地址nameservers:addresses: [8.8.8.8,114.114.114.114] # DNS 服務器地址search: [] tunnels:tun0:mode: ipipremote: 192.168.2.4 # DS負載均衡器的DIPlocal: 192.168.2.3  # 當前RS的RIPaddresses:- 172.30.164.140/32 # VIProutes:- to: 172.30.164.140/32via: 192.168.2.1scope: linkmtu: 1480version: 2
# 在不重啟的情況下,網絡配置 應用 
netplan apply  
# 驗證上面的持久化
ip ad   #  顯示所有的
ip ad show tun0 # 只顯示  tuno接口的 
ip route show  

在這里插入圖片描述

上面的虛擬服務器規則 重啟消失了

該方式添加的規則重啟服務器后規則就消失了,因此應該將該規則保存在文件中,待重啟后可以直接從文件中恢復規則

# 保存 如果保存不了,則要創建文件夾 mkdir -p /etc/sysconfig
ipvsadm -S > /etc/sysconfig/ipvsadm#   恢復  
ipvsadm -R < /etc/sysconfig/ipvsadm

可以通過systemctl 解決 ipvsadm.service

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84743.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84743.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84743.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Modbus TCP轉DeviceNet網關配置溫控儀配置案例

某工廠生產線需將Modbus TCP協議的智能儀表接入DeviceNet網絡&#xff08;主站為PLC&#xff0c;如Rockwell ControlLogix&#xff09;&#xff0c;實現集中監控。需通過開疆智能Modbus TCP轉DeviceNet網關KJ-DVCZ-MTCPS完成協議轉換。Modbus TCP設備&#xff1a;溫控器&#x…

Lodash原型污染漏洞原理詳解

文中涉及操作均來自靶場&#xff0c;切勿用于非授權滲透測試&#xff01; 一、JavaScript原型鏈基礎 要理解原型污染漏洞&#xff0c;首先需要掌握JavaScript中原型(prototype)和原型鏈(prototype chain)的基本概念。 1.1 什么是原型 JavaScript是一種基于原型的語言&#…

django 獲取當前時間 格式 YYYY-MM-DD HH:Mm:ss

在 Django 中獲取當前時間并以特定的格式顯示&#xff0c;你可以使用 Python 的 datetime 模塊結合 Django 的 timezone 模塊。這里有兩種主要的方法來做到這一點&#xff1a; 方法1&#xff1a;使用 datetime 和 timezone 首先&#xff0c;確保你已經導入了必要的模塊&#x…

k8s使用自建nfs做持久化無法控制磁盤使用大小問題處理

如題&#xff0c;創建的pvc并無法控制用戶實際使用多少nfs存儲&#xff0c;使用xfs_quota來對用戶nfs目錄做磁盤配額管理 1、需使用xfs文件系統 2、/etc/fstab掛載中開啟prjquota&#xff08;項目配額&#xff09; 具體操作如下 xfs_quota 使用說明/etc/fstab掛載磁盤 UUID&…

小結:Spring AOP 切點表達式

Spring AOP 切點表達式&#xff08;Pointcut Expression&#xff09; 一、切點表達式概述 切點表達式 是 Spring AOP 用于定義哪些方法&#xff08;或連接點&#xff09;需要被攔截的規則&#xff0c;主要基于 AspectJ 切點表達式語言。Spring AOP 僅支持方法級別的切點&#…

Linux開發工具之VsCode(Filezila、MobaXterm、Vim三合一)

文章的目的是記錄&#xff0c;編程過程中用到的高效工具Vscode。通過這個工具實現了Filezila、MobaXterm、Vim三個工具文件下載上傳&#xff0c;終端調試&#xff0c;文件編輯的功能&#xff0c;避免切換和記錄指令&#xff0c;效率提升100%。 Linux C到Android App開發推薦鏈接…

用idea進行數據同步

聲明對列和交換機 你需要先在yaml文件當中進行rabbitmq的相關配置 rabbitmq:host:192.168.150.101 //消息件的地址port:5672 //端口數據username:itcast //用戶名password:123321 //密碼virtual-host:/ //虛擬…

實戰:Java web應用性能分析之【異步日志:性能優化的金鑰匙】

概敘 實戰&#xff1a;Java web應用性能分析之【Arthas性能分析trace監控后端性能】-CSDN博客 在優化方面&#xff0c;可以采取以下步驟&#xff1a; ?性能分析工具?&#xff1a;使用Arthas或Async Profiler進行實時診斷&#xff0c;定位耗時的方法調用。這可以幫助精確找…

Puppeteer API

??親愛的技術愛好者們,熱烈歡迎來到 Kant2048 的博客!我是 Thomas Kant,很開心能在CSDN上與你們相遇~?? 本博客的精華專欄: 【自動化測試】

【機器學習】Teacher-Student框架

Teacher-Student Setup是一個經典的機器學習框架&#xff0c;包含兩個核心角色&#xff1a; 教師模型 (Teacher Model)&#xff1a; 通常是一個更大、更強、已經訓練好&#xff08;或正在訓練&#xff09;的模型。它對問題有很好的理解&#xff0c;性能優秀。它的作用是為學生提…

華為云Flexus+DeepSeek征文|體驗華為云ModelArts快速搭建Dify-LLM應用開發平臺并創建聯網大模型

華為云FlexusDeepSeek征文&#xff5c;體驗華為云ModelArts快速搭建Dify-LLM應用開發平臺并創建聯網大模型 什么是華為云ModelArts 華為云ModelArts ModelArts是華為云提供的全流程AI開發平臺&#xff0c;覆蓋從數據準備到模型部署的全生命周期管理&#xff0c;幫助企業和開發…

Web API 路徑設計哪家強

本文檔主要比較一下各家API的URL路徑設計&#xff0c;通過學習各家API的URL路徑設計&#xff0c;加深對 REST API 的理解&#xff0c;幫助我們設計出更符合 REST 風格的 API。 Google API 文檔地址&#xff1a;https://developers.google.com/apis-explorer/#p/ YouTube Dat…

微信小程序中的計算屬性庫-miniprogram-computed

miniprogram-computed 是一個用于微信小程序的擴展庫&#xff0c;它提供了計算屬性&#xff08;computed&#xff09;和監聽器&#xff08;watch&#xff09;的功能&#xff0c;類似于 Vue.js 中的計算屬性和監聽器。以下是使用 miniprogram-computed 的詳細步驟&#xff1a; …

【CSS-7】深入解析CSS偽類:從基礎到高級應用

CSS偽類是前端開發中不可或缺的強大工具&#xff0c;它們允許我們根據文檔樹之外的信息或簡單選擇器無法表達的狀態來樣式化元素。本文將全面探討CSS偽類的各種類型、使用場景和最佳實踐。 1. 偽類基礎概念 1.1 什么是偽類&#xff1f; 偽類&#xff08;Pseudo-class&#x…

藍橋杯國賽訓練 day4

目錄 再創新高 藍橋大使 表演賽 次數差 再創新高 import java.math.*; import java.util.*;public class Main {static Scanner sc new Scanner(System.in);public static void main(String[] args) {int t 1; // tsc.nextInt();for(int i0;i<t;i) {solve();}} p…

java 高并發設計

文章目錄 目錄 文章目錄 前言 一、通用設計 一、動靜分離 二、數據庫獨立部署 三、問題 1.高并發通用設計方法 2.高并發系統的拆分順序 二、計算資源高并發 三、網絡資源高并發 超高性能場景&#xff08;10萬 QPS&#xff09; 中小規模場景&#xff08;5萬 QPS以下&a…

docker compose搭建elk 8.6.2

環境搭建 選用版本是比較新的版本 (ELK) 8.6.2 &#xff0c;elk的環境做的還是比較好的又windows和Linux多個版本&#xff0c;并且開箱即用。本地直接下載官方軟件也是可以的。最近在學習docker compose&#xff0c;就使用這個環境搭建一下。 前置條件 安裝好docker和 docke…

Springboot3+的id字符串轉化問題

以下是純后端實現 Long/BigInteger ID 轉為 JSON 字符串 的詳細配置方案&#xff0c;基于 Spring Boot 3 和 SpringDoc (OpenAPI) 最新實踐 ? 1. 添加依賴 確保你的 pom.xml&#xff08;或 Gradle&#xff09;中包含&#xff1a; <dependency><groupId>com.fast…

C#學習第30天: 匹配模式

模式匹配&#xff08;Pattern Matching&#xff09;是 C# 中一個強大且靈活的特性&#xff0c;允許開發者以更直觀的方式檢查數據結構&#xff0c;并根據特定模式執行操作。 隨著 C# 語言版本的發展&#xff0c;模式匹配的功能越來越豐富&#xff0c;為處理復雜數據提供了極大…

SQL進階之旅 Day 29:NoSQL結合使用策略

【SQL進階之旅 Day 29】NoSQL結合使用策略 文章簡述 隨著數據量的激增和業務場景的復雜化&#xff0c;傳統關系型數據庫在某些場景下已難以滿足高性能、高擴展性和靈活數據結構的需求。NoSQL&#xff08;非關系型數據庫&#xff09;以其高可擴展性、靈活的數據模型和分布式架構…