Keepalived+HAProxy 集群及虛IP切換實踐

1、軟件介紹

①Keepalived

keepalive是一個用c語言編寫的路由軟件,這個項目的主要目標是為Linux系統和基于Linux的基礎設施提供簡單而健壯的負載平衡和高可用性設施。負載均衡框架依賴于眾所周知且廣泛使用的Linux Virtual Server (IPVS)內核模塊提供第4層負載均衡。keepalive實現了一組檢查器,可以根據負載均衡服務器池的運行狀況動態地、自適應地維護和管理它們。另一方面,通過VRRP協議實現高可用性。VRRP是路由器故障轉移的基本組件。此外,keepalive實現了一組到VRRP有限狀態機的鉤子,提供低級和高速的協議交互。為了提供最快的網絡故障檢測,keepalive實現了BFD協議。VRRP狀態轉換可以利用BFD提示實現狀態快速轉換。keepalive框架可以單獨使用,也可以一起使用,以提供彈性基礎設施。

keepalive是一款免費軟件;您可以根據自由軟件基金會發布的GNU通用公共許可證條款重新發布和/或修改它;許可證的版本2,或者(根據您的選擇)任何更新的版本。(Keepalived for Linux 官方定義)

Keepalived是Linux下一個輕量級別的高可用解決方案,它基于VRRP(虛擬路由冗余協議)實現,能夠避免單點故障導致的系統不可用問題。Keepalived的作用是檢測服務器的狀態,如果有一臺web服務器宕機,或工作出現故障,Keepalived將檢測到,并將有故障的服務器從系統中剔除,同時使用其他服務器代替該服務器的工作,當服務器工作正常后Keepalived自動將服務器加入到服務器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的服務器。

②HAProxy

HAProxy是一款開源的高性能負載均衡器和代理服務器。它可以將傳入的請求分發到多臺后端服務器上,以提高系統的負載能力和可用性。HAProxy支持多種負載均衡算法,如輪詢、加權輪詢、源IP哈希等,可以根據實際需求選擇合適的算法。

HAProxy不僅僅是一個負載均衡器,它還提供了許多其他功能。它可以進行SSL終端代理,實現HTTPS的負載均衡;還可以進行內容轉換和過濾,并提供高級的HTTP請求和響應管理功能。HAProxy還支持健康檢查,可以自動剔除故障的后端服務器,并動態調整請求的分發策略。

HAProxy具有高性能和低延遲的優勢,可以處理大量的并發請求。它支持多線程和多進程模型,可以利用多核處理器的性能。此外,HAProxy還提供了詳細的統計信息和日志記錄,以便進行分析和監控。

由于其可靠性和靈活性,HAProxy被廣泛應用于各種場景,包括Web應用程序、API網關、數據庫負載均衡、云服務等。它是一個強大而可靠的負載均衡解決方案,為系統的可擴展性和可靠性提供了重要支持。

HAProxy提供了L4(TCP)和L7(HTTP)兩種負載均衡能力,具備豐富的功能。HAProxy具備媲美商用負載均衡器的性能和穩定性。

2、實驗環境

準備4臺Linux 服務器,分別作為 負載均衡器 和web服務器。 虛擬機及IP規劃如下:

序號

主機名

IP

1

LB-01

RIP:192.168.56.2

2

LB-01

RIP:192.168.56.3

3

VIP: 192.168.56.4

4

Web-01

RIP:192.168.56.5

5

Web-02

RIP:192.168.56.6

2、底層原理

Linux VIP(Virtual IP)原理:

VIP原理基于Linux內核和網絡子系統。它利用了Linux內核網絡層的能力來攔截網絡數據包,然后將他們重定向到多個系統共享的一個虛擬IP上。這里的虛擬IP地址是一個不是分配給任何特定系統的IP地址,而是分配給一個虛擬網絡接口。

具體來說,VIP技術的實現需要以下步驟:

①創建虛擬網絡接口:在Linux系統中,可以使用ifconfig,ip等命令來創建虛擬網絡接口。該接口會被分配一個新的IP地址,但實際上并不會連接到任何實際的網絡設備上,它只是一個普通的網絡接口。

②綁定真實IP地址到虛擬網絡接口上

③配置ARP協議:為了讓其他系統知道這個虛擬IP地址的存在,需要配置ARP協議。他可以通過向網絡中的其他系統發送ARP廣播包來實現。當其他系統收到這個ARP廣播包時,他們會更新他們的ARP緩存表,將虛擬IP地址映射到此廣播包所在的實際系統的MAC地址上。

Linux VIP(Virtual IP)漂移原理:

是指在一個Linux集群中,當主節點(Primary)故障或不可用時,集群中的備用節點(Secondary)會接管主節點的VIP地址,以保證服務的高可用性。

漂移原理包括以下幾個步驟:

①心跳檢測:集群中的主節點和備用節點之間通過心跳檢測來確認主節點的狀態。一般使用專門的心跳設備或網絡連接來實現心跳檢測

②主節點失效檢測:當備用節點無法通過心跳檢測到主節點時,會判斷主節點已經失效。

③VIP漂移:備用節點檢測到主節點失效后,會接管主節點的VIP地址,并將其綁定到自己的網絡接口上。這樣,客戶端訪問VIP地址時就會被轉發到備用節點上。

④服務接管:備用節點接管VIP地址后,會啟動并運行主節點上的服務,以保證服務的連續性。

對于實現VIP漂移,常見的工具有keepalived,他提供了一系列用于自動檢測和控制VIP的功能,通過心跳檢測、狀態切換等機制,實現Linux集群中VIP的漂移。

3、Keepalived 安裝配置

HAProxy作為負載均衡器,Keepalived則作為兩臺負載均衡器的高可用組件,其原理就是VRRP協議。 打開IP轉發: 首先,Linux默認只會處理目標IP地址為自己的數據包,否則會丟棄。服務器作為反向代理/負載均衡器需要打開IP轉發功能,才能處理轉發目標地址非自己的數據包。

# 修改/etc/sysctl.conf配置文件
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
# 使生效
sysctl -p
cat /proc/sys/net/ipv4/ip_forward

安裝Keepalived: 通過源碼的方式進行安裝。

# 先安裝依賴
yum install gcc gcc-c++ make zlib-devel bzip2-devel openssl-devel -y
 
cd /usr/local/src
wget https://www.keepalived.org/software/keepalived-2.3.0.tar.gz
tar -zxvf keepalived-2.3.0.tar.gz
 
# 編譯及安裝
cd /usr/local/src/keepalived-2.3.0
./configure --prefix=/usr/local/keepalived-2.3.0
make && make install

將Keepalived注冊為系統服務:

# 拷貝啟動文件到/etc/rc.d/init.d目錄中
cp /usr/local/src/keepalived-2.3.0/keepalived/etc/init.d/keepalived /etc/rc.d/init.d/
 
# 拷貝環境變量文件
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
 
# 在bash中使用keepalived命令
cp /usr/local/keepalived/sbin/keepalived? /usr/local/sbin/

接下來就可以編輯Keepalived的配置文件:

cd /usr/local/keepalived/etc/keepalived
 
vim keepalived.conf
# MASTER配置:
! Configuration File for keepalived
 
global_defs {
?? notification_email {
???? root@localhost
?? }
?? notification_email_from keepalived@localhost
?? smtp_server 127.0.0.1
?? smtp_connect_timeout 30
?? router_id HAProxy_DEVEL_1
}
 
vrrp_script chk_haproxy {
?? script "/usr/local/keepalived/etc/keepalived/check_haproxy.sh"? #用shell命令檢查haproxy服務是否運行
??? interval 1??????? ??????????????????#時間間隔為1秒檢測一次
??? weight -2?????????????????????????? #當haproxy的服務不存在了,就把當前的權重-2
??? fall 2????????????????????????????? #測試失敗的次數
??? rise 1????????????????????????????? #測試成功的次數
}
 
vrrp_instance VI_1 {
??? state MASTER??????????? #實例狀態,只有MASTER 和 BACKUP兩種狀態,并且需要全部大寫。搶占模式下,其中MASTER為工作狀態,BACKUP為備用狀態。
??? interface enp0s8??????? #指定綁定虛擬IP的網絡接口
??? virtual_router_id 51??? #VRRP組名,兩個節點的設置必須一樣,以指明各個節點屬于同一個VRRP組
??? priority 101??????????? #主節點的優先級(1--255),備節點必須比主節點優先級低
??? advert_int 1??????????? #組播信息發送間隔,兩個節點設置必須一樣
??? authentication {??????? #設置驗證信息,兩個節點設置必須一樣
??????? auth_type PASS
??????? auth_pass 1111
??? }
 
?? track_script {
????? chk_haproxy
?? }
 
?? virtual_ipaddress {? #指定虛擬IP(VIP),兩個節點設置必須一樣,虛擬IP地址池,可以有多個IP,每個IP占一行,不需要指定子網掩碼。注意:這個IP必須與我們的設定的vip保持一致
??????? 192.168.56.4
?? }
}

# BACKUP配置
! Configuration File for keepalived
 
global_defs {
?? notification_email {
???? root@localhost
?? }
?? notification_email_from keepalived@localhost
?? smtp_server 127.0.0.1
?? smtp_connect_timeout 30
?? router_id HAProxy_DEVEL_2
}
 
vrrp_script chk_haproxy {
?? script "/usr/local/keepalived/etc/keepalived/check_haproxy.sh"? #用shell命令檢查haproxy服務是否運行
??? interval 1??????? ??????????????????#時間間隔為1秒檢測一次
??? weight -2?????????????????????????? #當haproxy的服務不存在了,就把當前的權重-2
??? fall 2????????????????????????????? #測試失敗的次數
??? rise 1????????????????????????????? #測試成功的次數
}
 
vrrp_instance VI_1 {
??? state MASTER??????????? #實例狀態,只有MASTER 和 BACKUP兩種狀態,并且需要全部大寫。搶占模式下,其中MASTER為工作狀態,BACKUP為備用狀態。
??? interface enp0s8??????? #指定綁定虛擬IP的網絡接口
??? virtual_router_id 51??? #VRRP組名,兩個節點的設置必須一樣,以指明各個節點屬于同一個VRRP組
??? priority 100??????????? #主節點的優先級(1--255),備節點必須比主節點優先級低
??? advert_int 1??????????? #組播信息發送間隔,兩個節點設置必須一樣
??? authentication {??????? #設置驗證信息,兩個節點設置必須一樣
??????? auth_type PASS
??????? auth_pass 1111
??? }
 
?? track_script {
????? chk_haproxy
?? }
 
?? virtual_ipaddress {? #指定虛擬IP(VIP),兩個節點設置必須一樣,虛擬IP地址池,可以有多個IP,每個IP占一行,不需要指定子網掩碼。注意:這個IP必須與我們的設定的vip保持一致
??????? 192.168.56.4
?? }
}

 
vim /usr/local/keepalived/etc/keepalived/check_haproxy.sh
 
#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 1 ];then
? exit 0
else
? exit 1
fi

配置文件里優先級(priority)高的那臺服務器會正為,較低的會成為

以下是對部分參數的說明:

router-id,唯一,自定義

vrrp_instance VI_1,一個VRRP組

virtual_router_id 51,一個組內的路由器的值要一樣

advert_int 1,每隔一秒發一次包

priority,優先級高的為主

virtual_ipaddress,虛擬的IP地址,也就是我們實際發布服務的IP地址

啟動Keepalived:

systemctl enable keepalived
systemctl start keepalived
systemctl status keepalived

正常啟動后,可以通過ip addr查看VIP地址是否已在MASTER節點的網卡顯示。

4、HAProxy 安裝配置

下載及安裝:

yum install gcc gcc-c++ make zlib-devel bzip2-devel openssl-devel -y
yum install lua -y
 
cd /usr/local/src
wget https://www.haproxy.org/download/2.9/src/haproxy-2.9.9.tar.gz
tar -zxvf haproxy-2.9.9.tar.gz
 
# 編譯安裝
cd haproxy-2.9.9
make TARGET=linux-glibc? PREFIX=/usr/local/haproxy-2.9.9 
make install PREFIX=/usr/local/haproxy-2.9.9

編寫HAProxy的配置文件:

mkdir /etc/haproxy
vim /etc/haproxy/haproxy.cfg
 
# 兩臺負載均衡服務器配置需要一致
global
????? maxconn 4096???????????????????? #默認最大連接數
????? pidfile /var/run/haproxy.pid???? #haproxy的pid存放路徑
????? daemon?????????????????????????? #以后臺形式運行haproxy
defaults
??????? log global
??????? mode http????????????????????? #所處理的類別 (#7層 http;4層tcp? )
??????? retries 3????????????????????? #三次連接失敗就認為是服務器不可用
??????? option abortonclose??????????? #當服務器負載很高的時候,自動結束掉當前隊列處理比較久的連接
??????? maxconn 4096?????????????????? #最大連接數
??????? timeout connect 50000????????? #連接超時
??????? timeout client 50000?????????? #客戶端超時
??????? timeout server 50000?????????? #服務器超時
??????? balance roundrobin???????????? #默認的負載均衡的方式,輪詢方式
 
listen web_proxy
??????? bind *:18080?????????????????? #監聽端口
??????? mode http????????????????????? #http的7層模式
??????? balance roundrobin
??????? option httpclose
??????? server web01 192.168.56.5:8080 check inter 3000 fall 3 rise 5
??????? server web02 192.168.56.6:8080 check inter 3000 fall 3 rise 5
 ???
listen stats
?????? bind *:8888
?????? mode http
?????? maxconn 10
?????? balance roundrobin
?????? stats refresh 5s
?????? stats uri /???????????????????? #網站健康檢測URL,用來檢測HAProxy管理的網站是否可以用,正常返回200,不正常返回503
?????? stats realm Haproxy\ Statistics
?????? stats auth admin:admin????????? #賬號密碼

defaults塊里配置的參數是默認參數,如web_proxy未配置相關參數則會繼承defaults里的。如果web_proxy里對相關參數進行了重新配置,則web_proxy里的配置會優先于defaults的配置。

啟動HAProxy

systemctl enable haproxy
systemctl start haproxy
systemctl stauts haproxy

另外,haproxy自帶了監控頁面,非常詳細好用。已經在配置文件中配置,可以通過訪問http://192.168.56.2:8888/status查看。

5、高可用測試

1)Keepalived節點本身網絡故障倒換測試

默認的keepalived配置,MASTER節點在LB-01上,BACKUP節點在LB-02上。所以訪問VIP地址192.168.56.4都由LB-01這臺服務器轉發。

為了驗證keepalived的可用性,我們測試將LB-01這臺服務器的網卡連接給斷開,模擬網絡或服務器故障的場景,驗證VIP是否能自動切換到LB-02這個節點上。

由于實驗環境為虛擬機,把虛擬網卡連接斷開即可。在斷開之前,在物理機上發起一個長ping 192.168.56.4,觀察節點切換的情況。?ping 192.168.56.4 -t

可以看到,在斷開LB-01的網卡連接后,此時可以查看VIP 192.168.56.4已經漂移到了LB-02上。

接下來恢復LB-01的網絡,由于沒有配置搶占,所以MASTER節點仍然會在LB-02上。不配置搶占的好處是當故障節點恢復后不會導致抖動。

2)HAProxy進程故障倒換測試

除了Keepalived本身的故障外,HAProxy進程可能也會出現故障,如果keepalived無法判斷haproxy是否異常,那么就無法進行故障切換。

因此,需要增加一個探測腳本,以判斷haproxy服務是否正常。當退出碼為0,keepalived就會認為探測成功,如退出碼為1,keepalived就會認為探測失敗,就會進入FAULT狀態并把VIP給移除。

vim /usr/local/keepalived/etc/keepalived/check_haproxy.sh
 
#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 1 ];then
? exit 0
else
? exit 1
fi

在keepalived配置文件中,加入以下腳本檢測

vrrp_script chk_http_port {
?? script "/usr/local/keepalived/etc/keepalived/check_haproxy.sh"? #用shell命令檢查haproxy服務是否運行
??? interval 1??????? ??????????????????#時間間隔為1秒檢測一次
??? weight -2?????????????????????????? #當haproxy的服務不存在了,就把當前的權重-2
??? fall 2????????????????????????????? #測試失敗的次數
??? rise 1????????????????????????????? #測試成功的次數
}
 
vrrp_instance VI_1 {
??? track_script {
??????? chk_haproxy
??? }
}

然后停掉haproxy的進程,模擬進程故障。?systemctl stop haproxy?此時LB-01節點的keepalived進入FAULT狀態,VIP被移除,備機接管了VIP。

3)后端服務器故障倒換測試

接下來模擬一下當web01故障能否重新把請求分發到web02上。 直接通過停止web01的運行,再通過瀏覽器發起請求,可以看到已經切換到web02上了。

通過登錄HAProxy自帶的監控頁面,可以看到健康檢查web01已經down掉,所以負載均衡直接把web01剔除了。

6、小結

通過實驗可以基本驗證到基于HAProxy的七層負載均衡的功能,以及通過Keepalived搭建的高可用集群,還是非常好用的。

另外一個問題就是,通過keepalived實現的高可用,MASTER節點只能在一臺服務器上,即同時只能一個節點工作,如果需要橫向擴展,需要另外一種實現高可用的方案:比如說不采用Keepalived的方式,在HAPorxy前面再部署LVS或者硬件F5,用這種L4+L7的架構來實現L7負載均衡的橫向擴展和高可用。

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

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

相關文章

srs直播內網拉流帶寬飆升問題記錄

問題背景 srs部署在云服務器上,32核cpu,64G內存,帶寬300M. 客戶端從srs拉流,發現外網客戶端拉流,cpu和帶寬都正常。然而內網客戶端拉流,拉流人數超過5人以上,帶寬就會迅速飆升。 排查 用srs…

數學建模論文寫作文檔word

目錄 1. 摘要寫法1.1 確定題目與方法1.2 編寫開頭段落1.3 填寫問題一1.4 重復步驟3填寫其他問題1.5 編寫結尾段落1.6 編寫關鍵詞 2. 問題重述2.1 問題背景2.2 問題提出 3. 問題分析4. 問題X模型的建立與求解5. 模型的分析5.1 靈敏度分析5.2 誤差分析(主要用于預測類…

Milvus lite start 及存儲策略

背景 今天開始寫下Milvus,為了方便,我直接使用的是 milvus-lite 版本,default 情況下,你可能不知道他到底將 db 存儲到什么位置了。啟動 default-server,看下Milvus 的start及存儲邏輯 主邏輯 def start(self):sel…

adb參數詳解

文章目錄 1. -d2. -e3. -s4. -t5. -H6. -P7. -L8. --one-device9. --exit-on-write-error10. connect / disconnect11. pair12. forward13. forward --list14. reverse15. mdns check16. mdns services17. push18. pull19. sync20.shell21. install22. uninstall23. bugreport2…

最小二乘支持向量機(Least Squares Support Vector Machine,LSSVM)及其Python和MATLAB實現

LSSVM(Least Squares Support Vector Machine)又稱最小二乘支持向量機,是支持向量機(SVM)的一種變體,它通過將SVM的優化問題轉化為帶約束的二次規劃問題,利用最小二乘法進行優化求解&#xff0c…

redis集群部署 (通過redis工具快速部署,手動部署)

目錄 一、快速部署集群 1、 進入集群目錄,創建集群 2、 查看正常啟動 二、部署集群 1、分配集群節點 2、驗證集群可用性 3、停止redis進程 三、手動部署集群 1、配置redis.conf配置文件 2、啟動redis集群 3、手動創建redis集群 4、驗證 四、集群…

mysql異常數據損壞處理,報錯:Operating system error number 2 in a file operation

一、問題描述 某次一線反應,某主庫表全部丟失,查看為空,登陸主機查看mysqld.log后報錯:Operating system error number 2 in a file operation數據目錄OS重裝后修改過,但只是指向方式不同,目錄還是同一目錄…

【綠色版】Mysql下載、安裝、配置與使用(保姆級教程)

大家都知道,Mysql安裝版的卸載過程非常繁瑣,而且卸載不干凈會出現許多問題,很容易讓大家陷入重裝系統的窘境。基于此,博主今天給大家分享綠色版Mysql的安裝、配置與使用。 目錄 一、Mysql安裝、配置與使用 1、下載解壓 2、創建…

vue對axios進行請求響應封裝

一、原因 像是在一些業務邏輯上,比如需要在請求之前展示loading效果,或者在登錄的時候判斷身份信息(token)等信息有沒有過期,再者根據服務器響應回來的code碼進行相應的提示信息。等等在請求之前,之后做的一…

ABAP注釋快捷鍵修改(留著備用)

ABAP注釋快捷鍵修改(留著備用) 在使用ABAP編輯器的時候,原有的添加代碼注釋和取消代碼注釋的快捷鍵未生效,這時我們可以考慮對注釋快捷鍵進行修改 在事務碼SE38(ABAP編輯器)屏幕右下角,點擊【Options選項】圖標 在【鍵盤】|【命令】輸入欄中…

DWM 相關實現代碼 [自用]

1. DWM 縮略圖和模糊隱藏實現半透明 #include <windows.h> #include <dwmapi.h> #include <string> #pragma comment(lib, "dwmapi.lib")// 檢查 UWP 窗口是否可見 bool IsUWPWindowVisible(HWND hwnd) {DWORD cloaked 0;DwmGetWindowAttribute(…

【c語言】玩轉文件操作

&#x1f31f;&#x1f31f;作者主頁&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所屬專欄&#xff1a;C語言 目錄 引言 一、文件的打開和關閉 1.流 2.標準流 3.文本文件和二進制文件 4.控制文件打開與關閉的函數 二、文件的順序讀寫 三、文件的隨機讀寫 1…

深入理解OAuth 2.0:原理、流程與實踐

一、什么是OAuth 2.0 1. 什么是OAuth 2.0 OAuth 2.0 是一套關于授權的行業標準協議。 OAuth 2.0 允許用戶授權第三方應用訪問他們在另一個服務提供方上的數據&#xff0c;而無需分享他們的憑據&#xff08;如用戶名、密碼&#xff09;。 2. OAuth 2.0 應用場景 OAuth 2.0的…

非參數檢測6——優缺點

優點&#xff1a; 參量檢測的特點在于以似然比處理器為基礎&#xff0c;并建立在假定干擾或噪聲的統計特性已知的基礎上。但實際上&#xff0c;干擾環境往往十分復雜&#xff0c;包括自然和人為因素&#xff0c;且常常隨時改變。這使我們很難確定噪聲的統計特性。因此人們提出…

服務器U盤安裝Centos 7時提示Warning:/dev/root does not exist

這是沒有找到正確的鏡像路徑導致的&#xff0c;我們可以在命令行輸入ls /dev看一下有哪些盤符 像圖中紅色圈起來的就是我插入U盤的盤符&#xff0c;大家的輸幾盤可能做了多個邏輯盤&#xff0c;這種情況下就可以先將U盤拔掉再ls /dev看一下和剛才相比少了那兩個盤符&#xff0c…

在Spring Boot中實現多線程任務調度

在Spring Boot中實現多線程任務調度 大家好&#xff0c;我是微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 1. Spring Boot中的任務調度 Spring Boot通過集成Spring框架的Task Execution和Scheduling支持&#xff0c;提供…

Double 4 VR仿真情景實訓教學系統在法律專業課堂上的應用

隨著科技的飛速發展&#xff0c;VR技術逐漸滲透到各個領域&#xff0c;為教育行業帶來了革命性的變化。 VR技術以其獨特的沉浸式體驗&#xff0c;為法律課堂帶來了前所未有的學習體驗。通過Double 4 VR仿真情景實訓教學系統&#xff0c;學生可以身臨其境地進入虛擬的仿真情景中…

vue前端面試

一 .v-if和v-show的區別 v-if 和 v-show 是 Vue.js 中兩個常用的條件渲染指令&#xff0c;它們都可以根據條件決定是否渲染某個元素。但是它們之間存在一些區別。 語法&#xff1a;v-if 和 v-show 的語法相同&#xff0c;都接收一個布爾值作為參數。 <div v-if"show…

權力之望怎么下載客戶端 權力之望一鍵下載

《權力之望》是一款由NX3 Games開發、Smilegate發行的多人在線動作MMORPG游戲。這款游戲最大的特點是高度的自由度和豐富的角色定制選項。我們在游戲中不僅可以自由更換武器&#xff0c;而且游戲還提供了54種能力和60多種職業選擇&#xff0c;讓我們可以根據自己的游戲風格和喜…

繼 承

為什么要有繼承&#xff0c;繼承的作用&#xff1f; 繼承(inheritance)機制&#xff1a;是面向對象程序設計使代碼可以復用的最重要的手段&#xff0c;它允許程序員在保持原有類特性的基礎上進行擴展&#xff0c;增加新功能&#xff0c;這樣產生新的類&#xff0c;稱派生類。 …