Linux LVS集群技術

LVS集群概述

1、集群概念

1.1、介紹

集群是指多臺服務器集中在一起,實現同一業務,可以視為一臺計算機。多臺服務器組成的一組計算機,作為一個整體存在,向用戶提供一組網絡資源,這些單個的服務器就是集群的節點。

特點:

1.高性價比

通常一套系統集群架構,只需要幾臺或數十臺服務器主機即可,與動則上百萬的專用超級計算機相比具有更高的性價比

2.可擴展性

集群的性能不限于單一的服務實體,新的服務實體可以動態的加入到集群,從而增強集群的性能

3.高可用性

如果集群某個節點發生故障,這臺節點上面運行的服務,可以被其他服務節點接管,從而增強集群的高可用性。

4.負載均衡

負載均衡能把任務比較均勻的分布到集群環境下的計算和網絡資源,以便提高數據吞吐量

5.透明性

多個獨立計算機組成的松耦合集群系統構成一個虛擬服務器。用戶或客戶端程序訪問集群系統時,就像訪問一臺高性能,高可用的服務器一樣,集群中一部分服務器的上線,下線不會中斷整個系統服務,這對用戶也是透明的

6.可管理性

整個系統可能在物理上很大,但是集群系統易管理,就像管理一個單一映像系統一樣。在理想狀況下,軟硬件模塊的插入能做到即插即用

1.2、類型

負載均衡集群(Load Balance Cluster)?

負載均衡系統:集群中所有的節點都處于活動狀態,它們分攤系統的工作負載。一般Web服務器集群、數據庫集群和應用服務器集群都屬于這種類型。

負載均衡集群一般用于相應網絡請求的網頁服務器,數據庫服務器。這種集群可以在接到請求時,檢查接受請求較少,不繁忙的服務器,并把請求轉到這些服務器上。從檢查其他服務器狀態這一點上看,負載均衡和容錯集群很接近,不同之處是數量上更多。

Load Balancing負載均衡(LB),不同節點之間相互獨立,不共享任何資源;通過一定算法將客戶端的訪問請求平分到群集的各個節點上,充分利用每個節點的資源。負載均衡擴展了網絡設備和服務器帶寬,增加吞吐量,加強網絡數據處理能。

高可用集群(High Availability Cluster)

常見的就是2個節點做成的HA集群,有很多通俗的不科學的名稱,比如”雙機熱備”, “雙機互備”, “雙機”。

高可用集群解決的是保障用戶的應用程序持續對外提供服務的能力。

High availability Cluster高可用群集(HAC) ;主要用于高可用解決方案的實現,節點間以主備形式,實現容災;在大型故障(宕機,服務器故障)的情況下實現快速恢復,快速提供服務。

高可用群集可實現以下三種方式:

主從方式:主機工作,備機監控。此方式不能有效的利用服務器資源。

互為主從:兩服務器同時在線,一臺服務器故障可切換到另一臺上。此 方式有效的利用服務器資源,但當服務器故障時候,將導致一臺服務器上運行多個業務。

多臺服務器主從:大部分服務器在線使用,小部分監控;若有部分服務器故障,可切換到指定的小部分服務器上。此方式為前兩種方式的綜合。然后多臺服務器群集,也增加了管理的復雜度。

科學計算集群(High Performance Computing Cluster)

簡稱HPC集群。這類集群致力于提供單個計算機所不能提供的強大的計算能力。

并行計算或稱平行計算是相對于串行計算來說的。并行計算的能力的目的是提高計算速度。

并行計算分為時間計算和空間計算:

時間計算既是流水線技術,一個處理器分為多個單元,每個單元負責不同任務,這些單元可并行計算。

空間計算利用多個處理器并發的執行計算。目前PC機的計算能力越來越強,將大量低廉的PC機互聯起來,組成一個"大型計算機"以解決復雜的計算任務。

高性能計算集群采用將計算任務分配到集群的不同計算節點兒提高計算能力,因而主要應用在科學計算領域。

HPC集群特別適合于在計算中各計算節點之間發生大量數據通訊的計算作業,比如一個節點的中間結果會影響到其它節點計算結果的情況。

2、LVS介紹

LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統LVS簡單工作原理為用戶請求LVS VIP,LVS根據轉發方式和算法,將請求轉發給后端服務器,后端服務器接收到請求,返回給用戶。對于用戶來說,看不到Web后端具體的應用。

LVS(Linux Virtual Server)是基于Linux內核的四層負載均衡解決方案,通過將多臺服務器組成虛擬服務集群,實現高性能、高可用的網絡服務。其核心組件包括:

  • Director:負載均衡調度器,接收客戶端請求并分發到后端 Real Server(調度器)
  • RS (Real Server):實際處理請求的后端服務器(真實服務器)
  • VS (Virtual Server): 虛擬服務器,負責調度
  • VIP (Virtual IP):對外服務的虛擬IP地址
  • RIP (Real IP):后端服務器的真實IP地址
  • DIP (Director IP):VS內網的IP 代理服務器的 內網ip
  • CIP (Client IP):客戶端源IP地址

3、LVS和nginx區別

  • LVS比nginx具有更強的抗負載能力,性能更高,對內存和cpu資源消耗低。?
  • LVS工作在網絡層,具體流量由操作系統內核進行處理,nginx工作在應用層,可針對http應用實施一些分流策略。
  • LVS安裝配置比較復雜點,網絡依賴性較大,穩定性高,lvs不支持正則表達式,不能實現動靜分離操作。
  • LVS使用的協議范圍廣, Nginx 僅支持 HTTP、HTTPS、Email 協議,適用范圍小。

(五)、LVS調度算法
ipvs scheduler:根據其調度時是否考慮各RS當前的負載狀態分為兩種:

1. 靜態算法(不考慮RS負載)
RR(round robin,輪詢):將收到的訪問請求按照順序輪流分配給群集中的各節點,均等地對待每臺服務器,而不管服務器實際的連接數和系統負載。
WRR(weight round robin,加權輪詢):根據調度器設置的權重值來分發請求,權重值高的節點優先獲得任務并且分配的請求越多,這樣可以保證性能高的節點承擔更多請求。
SH(source hashing,源地址散列算法(HASH)):根據請求來源的IP地址進行Hash計算,得到后端服務器,這樣來自同一個IP的請求總是會落到同一臺服務器上處理,以致于可以將請求上下文信息存儲在這個服務器上。


2. 動態算法(基于RS負載狀態)
LC(leash-connection,最少連接):根據真實服務器已建立的連接數進行分配,將收到的訪問請求優先分配給連接數最少的節點。如果所有的服務器節點性能相近,采用這種方式可以更好地均衡負載。簡單算法:active * 256 + inactive (誰的小選誰)
WLC(加權最少連接):在服務器節點的性能差異較大的情況下,調度器可以根據節點服務器負載自動調整權重,權重較高的節點將承擔更大比例的活動連接負載。 ?簡單算法:(active * 256 + inactive) / weight(誰的小選誰)
SED(最少期望延遲):優化高權重節點的初始連接分配。Shortest Expection Delay,初始連接高權重優先,只檢查活動連接,而不考慮非活動連接 ;

NQ(never queue,永不排隊):Never Queue,第一輪均勻分配,后續SED。

LBLC(基于局部性的最少連接 )

不僅考慮全局的服務器負載,還考慮服務器所在局部的負載情況,從而實現更細致的負載均衡。

LBLCR(基于局部性的帶復制功能的最少連接)

在LBLC的基礎上,當某個服務器過載時,可以選擇復制流量到其他服務器,以平衡負載。

?LVS工作模式

lvs軟件相關信息

程序包:ipvsadm
Unit File: ipvsadm.service
主程序:/usr/sbin/ipvsadm
規則保存工具:/usr/sbin/ipvsadm-save
規則重載工具:/usr/sbin/ipvsadm-restore
配置文件:/etc/sysconfig/ipvsadm-config
ipvs調度規則文件:/etc/sysconfig/ipvsadm

lvs集群中的增刪改

1.管理集群服務中的增刪改
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
-A ????????#添加
-E ????????#修改
-t ????????#tcp服務
-u???????? #udp服務
-s ????????#指定調度算法,默認為WLC
-p ????????#設置持久連接超時,持久連接可以理解為在同一個時間段同一個來源的請求調度到同一Realserver
-f ????????#firewall mask 火墻標記,是一個數字
2.管理集群中RealServer的曾增刪改
ipvsadm -a|e -t|u|f service-address -r realserver-address [-g|i|m] [-w weight]
-a ????????#添加realserver
-e ????????#更改realserver
-t ????????#tcp協議
-u ????????#udp協議
-f ????????#火墻 標簽
-r ????????#realserver地址
-g???????? #直連路由模式
-i ????????#ipip隧道模式
-m ????????#nat模式
-w ????????#設定權重
-Z ????????#清空計數器
-C???????? #清空lvs策略
-L???????? #查看lvs策略
-n ????????#不做解析
--rate :輸出速率信息

1、基于NAT的LVS模式負載均衡

NAT(network address translation) 網絡地址轉換,其主要原理是修改數據報頭,使得位于企業內部的私有ip地址可以訪問外網,以及外部用戶可以訪問位于公司內部的私有的ip主機。?

LVS調度器中有一個連接Hash表,該表會記錄連接請求及其轉發信息,當同一個連接下一個數據包發送給調度器時,該Hash表可以直接找到之前連接的記錄,并根據記錄信息選出相同真實服務器及其端口信息。

1.1、工作原理

  1. 當用戶的請求到達調度器時,請求報文會先到內核空間的PREROUTING鏈上。此時報文的源IP為CIP,目標IP為VIP
  2. PREROUTING檢查發現數據包的目標IP是本機,就將數據包送至INPUT鏈。
  3. IPVS工作在INPUT鏈上,當數據包抵達INPUT鏈后,IPVS會檢查數據包所請求的服務是否為集群服務,若是,修改數據包的目標IP地址為后端服務器RIP,然后將數據包送往 POSTROUTING鏈。此時報文的源IP為CIP,目標IP為RIP。
  4. POSTROUTING鏈通過選路,將數據包轉發給Real Server
  5. Real Server對比發現目標IP是自己,就會接受這個請求報文,開始構建響應報文發回給調度器。源IP為RIP,目標IP為CIP
  6. 調度器在響應客戶端前,會將報文的源IP地址修改為自己的VIP,然后響應給客戶端。此時報文的源IP為VIP,目標IP為CIP

1.2、NAT模式特性

本質是多目標IP的DNAT,通過將請求報文中的目標地址和目標端口修改為某挑出的RS的RIP和PORT實現轉發

  • RIP和DIP應在同一個IP網絡,且應使用私網地址;RS的網關要指向DIP
  • 請求報文和響應報文都必須經由Director轉發,Director易于成為系統瓶頸
  • 支持端口映射,可修改請求報文的目標PORT
  • VS必須是Linux系統,RS可以是任意OS系統

1.3、NAT的優缺點

優點:集群中的物理服務器可以使用任何支持TCP/IP操作系統它只需要一個 IP 地址配置在調度器上,服務器組可以用私有的 IP 地址。
缺點:伸縮能力有限,當服務器節點(普通PC服務器)增長過多時,負載均衡器將成為整個系統的瓶頸,因為所有的請求包和應答包的流向都經過負載均衡器。當服務器節點過多時,大量的數據包都交匯在負載均衡器那,速度就會變慢。?

2、基于TUN的LVS負載均衡(不常用)

IP 隧道:IP Tunnel,簡稱:TUN 模式,采用開放式的網絡結構,負載調度器作為客戶機的訪問入口,各節點通過各自的 Internet 連接直接回應給客戶機,而不經過負載調度器,服務器節點分散在互聯網中的不同位置,有獨立的公網 IP 地址,通過專用 IP 隧道與負載調度器相互通信。?

?2.1、實現原理

  1. 在原有的ip報文外在封裝多一層的ip首部,內部ip首部(原地址為cip,目標ip為vip),外層ip首部原地址為dip,.目標地址為rip
  2. 客戶端發送數據包經過網絡后到 LVS 網卡,數據包源 IP 為 CIP,目的 IP 為 VIP。
  3. 進入 PREROUTING 鏈后,會根據目的 IP 去查找路由,確定是否為本機 IP,數據包將轉發至 INPUT 鏈中,到 LVS,源 IP 和 目的 IP 不變。
  4. 到 LVS 后,通過目的 IP 和目的 PORT 查找是否為 IPVS 服務,如是 IPVS 服務,將會選擇一個 RS 后端服務器, 源 IP 為 DIP,目標 IP 為 RIP,數據包將會轉發至 OUTPUT 鏈中。
  5. 數據包根據路由信息到達 LVS 網卡,發送至路由器網關,最終到達后端服務器。
  6. 后端服務器收到數據包后,會拆掉最外層的 IP 地址后,會發現還有一層 IP 首部,源 IP 為 CIP,目的 IP 為 VIP,TUNL0 上配置 VIP,查找路由后判斷為本機 IP 地址,將會發給用戶空間層的應用程序響應后 VIP 為源 IP,CIP 為目的 IP 數據包發送至網卡,最終返回至客戶端用戶。
2.2、TUN模式特性

轉發方式:不修改請求報文的IP首部(源IP為CIP,目標IP為VIP),而在原IP報文之外再封裝一個IP首部(源IP是DIP,目標IP是RIP),將報文發往挑選出的目標RS;RS直接響應給客戶端(源IP是VIP,目標IP是CIP)。

2.3、 TUN模式的特點

  • 單臂模式,LVS 負載壓力小。

  • 數據包修改小,信息完整性高。

  • 可跨機房。?

  • 請求報文要經由Director,但響應不能經由Director?。

  • ?不支持端口映射

  • RS的OS須支持隧道功能

  • RS的網關一般不能指向DIP?

  • DIP, VIP, RIP都應該是公網地址?

2.4 、TUN模式的缺點

缺點:

  • 不支持端口映射。

  • 需在 RS 后端服務器安裝模塊(ipip)及配置 VIP。

  • 隧道頭部 IP 地址固定,RS 后端服務器網卡可能會不均勻。

  • 隧道頭部的加入可能會導致分片,最終會影響服務器性能。

3、基于DR的LVS負載均衡

直接路由:Direct Routing,簡稱 DR 模式,采用半開放式的網絡結構,與 TUN 模式的結構類似,但各節點并不是分散在各個地方,而是與調度器位于同一個物理網絡,負載調度器與各節點服務器通過本地網絡連接,不需要建立專用的 IP 隧道。它是最常用的工作模式,因為它的功能性強大。

3.1、DR 實現原理

  1. ?當用戶諸求到達Director server,此時請求的數據報文會先到內核空間的PREROUTING鏈。 此時報文的源IP為CIP,目標IP為VIP。
  2. PREROUTING檢查發現數據包的目標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地址,就接收此報文。處理完成之后,將響應報文通過10接口傳5、送給eth0網卡然后向外發出。此時的源IP地址為VIP,目標IP為CIP。
  6. 響應報文最終送達至客戶端。

4、full net模式?

4.1full net工作原理

fullnat:通過同時修改請求報文的源IP地址和目標IP地址進行轉發
CIP --> DIP
VIP --> RIP

4.2、full net模式的特點

1.VIP是公網地址,RIPDIP是私網地址,且通常不在同一IP網絡;因此,RIP的網關一般不會指向DIP
2.RS收到的請求報文源地址是DIP,因此,只需響應給DIP;但Director還要將其發往Client
3.請求和響應報文都經由Director
4.支持端口映射

?IPVS模塊

1、IPVS的介紹

IPVS基本上是一種高效的Layer-4交換機,它提供負載平衡的功能。當一個TCP連接的初始SYN報文到達時,IPVS就選擇一臺服務器,將報文轉發給它。此后通過查看報文的IP和TCP報文頭地址,保證此連接的后繼報文被轉發到相同的服務器。這樣,IPVS不用檢查到請求的內容再選擇服務器,這就要求后端的服務器組是提供相同的服務,不管請求被送到哪一臺服務器,返回結果都應該是一樣的。但是在有一些應用中后端的服務器可能功能不一,有的是提供HTML文檔的Web服務器,有的是提供圖片的Web服務器,有的是提供CGI的Web服務器。這時,就需要基于內容請求分發 (Content-Based Request Distribution),同時基于內容請求分發可以提高后端服務器上訪問的局部性。?

2、IPVS的工作原理

IPVS是LVS的關鍵,因為LVS的IP負載平衡技術就是通過IPVS模塊來實現的,IPVS是LVS集群系統的核心軟件,它的主要作用是:安裝在Director Server上,同時在Director Server上虛擬出一個IP地址,用戶必須通過這個虛擬的IP地址訪問服務。這個虛擬IP一般稱為LVS的VIP,即Virtual IP。訪問的請求首先經過VIP到達負載調度器,然后由負載調度器從Real Server列表中選取一個服務節點響應用戶的請求。

LVS的本身分成了兩個部分,第一部分是工作在內核空間的一個IPVS的模塊(工作在Netfilter框架的input鏈上),其實LVS的功能都是IPVS模塊實現的,第二部分是工作在用戶空間的一個用來定義集群服務的一個工具ipvsadm, 這個工具的主要作用是將管理員定義的集群服務列表傳送給工作在內核空間中的IPVS模塊。

3、ipvsadm命令

核心功能:
  • 集群服務管理:增、刪、改
  • 集群服務的RS管理:增、刪、改
  • 查看

命令參數:

管理集群服務 
ipvsadm -A|E -t(tcp)|u(udp)|f(防護墻標簽) \service-address(集群地址) \ 
[-s scheduler(調度算法)] \ 
[-p [timeout]] \ 
[-M netmask] \ 
[--pepersistence_engine] \ 
[-b sched-flags] 
ipvsadm -D -t|u|f service-address 刪除 
ipvsadm –C 清空 
ipvsadm –R 重載 
ipvsadm -S [-n] 保存 管理集群中的real server 
ipvsadm -a|e -t|u|f service-address -r server-address [-g | -i| -m](工作模式) [-w weight](權重) 
ipvsadm -d -t|u|f service-address -r server-address 刪除RS 
ipvsadm -L|l [options] 查看rs
ipvsadm -Z [-t|u|f service-address] 清楚計數器
pvs規則:/proc/net/ip_vs
ipvs連接:/proc/net/ip_vs_conn

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

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

相關文章

spring-ai-alibaba如何上傳文件并解析

問題引出 在我們日常使用大模型時,有一類典型的應用場景,就是將文件發送給大模型,然后由大模型進行解析,提煉總結等,這一類功能在官方app中較為常見,但是在很多模型的api中都不支持,那如何使用…

「雙容器嵌套布局法」:打造清晰層級的網頁架構設計

一、命名與核心概念 “雙容器嵌套布局法”,核心是通過兩層容器嵌套構建網頁結構:外層容器負責控制布局的“宏觀約束”(如頁面最大寬度、背景色等),內層容器聚焦“微觀排版”(內容居中、內邊距調整、紅色內容…

基于深度學習的自然語言處理:構建情感分析模型

前言 自然語言處理(NLP)是人工智能領域中一個非常活躍的研究方向,它致力于使計算機能夠理解和生成人類語言。情感分析(Sentiment Analysis)是NLP中的一個重要應用,其目標是從文本中識別和提取情感傾向&…

JWT原理及利用手法

JWT 原理 JSON Web Token (JWT) 是一種開放的行業標準,用于在系統之間以 JSON 對象的形式安全地傳輸信息。這些信息經過數字簽名,因此可以被驗證和信任。其常用于身份驗證、會話管理和訪問控制機制中傳遞用戶信息。 與傳統的會話令牌相比,JWT…

DeepSeek 助力 Vue3 開發:打造絲滑的日歷(Calendar),日歷_睡眠記錄日歷示例(CalendarView01_30)

前言:哈嘍,大家好,今天給大家分享一篇文章!并提供具體代碼幫助大家深入理解,徹底掌握!創作不易,如果能幫助到大家或者給大家一些靈感和啟發,歡迎收藏關注哦 💕 目錄DeepS…

git的diff命令、Config和.gitignore文件

diff命令:比較git diff xxx:工作目錄 vs 暫存區(比較現在修改之后的工作區和暫存區的內容)git diff --cached xxx:暫存區 vs Git倉庫(現在暫存區內容和最一開始提交的文件內容的比較)git diff H…

Linux中的LVS集群技術

一、實驗環境(RHEL 9)1、NAT模式的實驗環境主機名IP地址網關網絡適配器功能角色client172.25.254.111/24(NAT模式的接口)172.25.254.2NAT模式客戶機lvs172.25.254.100/24(NAT模式的接口)192.168.0.100/24&a…

【數據結構】「隊列」(順序隊列、鏈式隊列、雙端隊列)

- 第 112篇 - Date: 2025 - 07 - 20 Author: 鄭龍浩(仟墨) 文章目錄隊列(Queue)1 基本介紹1.1 定義1.2 棧 與 隊列的區別1.3 重要術語2 基本操作3 順序隊列(循環版本)兩種版本兩種版本區別版本1.1 - rear指向隊尾后邊 且 無 size …

Java行為型模式---解釋器模式

解釋器模式基礎概念解釋器模式(Interpreter Pattern)是一種行為型設計模式,其核心思想是定義一個語言的文法表示,并定義一個解釋器,使用該解釋器來解釋語言中的句子。這種模式將語法解釋的責任分開,使得語法…

[spring6: PointcutAdvisor MethodInterceptor]-簡單介紹

Advice Advice 是 AOP 聯盟中所有增強(通知)類型的標記接口,表示可以被織入目標對象的橫切邏輯,例如前置通知、后置通知、異常通知、攔截器等。 package org.aopalliance.aop;public interface Advice {}BeforeAdvice 前置通知的標…

地圖定位與導航

定位 1.先申請地址權限(大致位置精準位置) module.json5文件 "requestPermissions": [{"name": "ohos.permission.INTERNET" },{"name": "ohos.permission.LOCATION","reason": "$string:app_name",&qu…

【數據結構】揭秘二叉樹與堆--用C語言實現堆

文章目錄1.樹1.1.樹的概念1.2.樹的結構1.3.樹的相關術語2.二叉樹2.1.二叉樹的概念2.2.特殊的二叉樹2.2.1.滿二叉樹2.2.2.完全二叉樹2.3.二叉樹的特性2.4.二叉樹的存儲結構2.4.1.順序結構2.4.2.鏈式結構3.堆3.1.堆的概念3.2.堆的實現3.2.1.堆結構的定義3.2.2.堆的初始化3.2.3.堆…

區間樹:多維數據的高效查詢

區間樹:多維數據的高效查詢 大家好,今天我們來探討一個在計算機科學中非常有趣且實用的數據結構——區間樹。想象一下,你是一位城市規劃師,需要快速找出某個區域內所有的醫院、學校或商場。或者你是一位游戲開發者,需要…

SQL 魔法:LEFT JOIN 與 MAX 的奇妙組合

一、引言 在數據庫操作的領域中,數據的關聯與聚合處理是核心任務之一。LEFT JOIN作為一種常用的連接方式,能夠將左表中的所有記錄與右表中滿足連接條件的記錄進行關聯,即便右表中沒有匹配的記錄,左表的記錄也會被保留,…

手寫tomcat

package com.qcby.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target(ElementType.TYPE)// 表示該注解只能用于類上 Retention(Retentio…

Android平臺下openssl動態庫編譯

1. 下載Linux平臺下的NDK軟件包 NDK 下載 | Android NDK | Android Developers 下載完成后執行解壓命令 # unzip android-ndk-r27d-linux.zip 2. 下載openssl-1.1.1w源碼包,并解壓 # tar -xzvf openssl-1.1.1w.tar.gz 3. 進入解壓后的openssl-1.1.1w目錄 …

【C++基礎】面試高頻考點解析:extern “C“ 的鏈接陷阱與真題實戰

名稱修飾(Name Mangling)是C為支持重載付出的代價,而extern "C"則是跨越語言邊界的橋梁——但橋上的陷阱比橋本身更值得警惕 一、extern "C" 的核心概念與高頻考點1.1 鏈接規范與名字改編機制C 為支持函數重載&#xff0…

OpenCV 官翻 4 - 相機標定與三維重建

文章目錄相機標定目標基礎原理代碼配置校準去畸變1、使用 cv.undistort()2、使用**重映射**方法重投影誤差練習姿態估計目標基礎渲染立方體極線幾何目標基礎概念代碼練習從立體圖像生成深度圖目標基礎概念代碼附加資源練習相機標定 https://docs.opencv.org/4.x/dc/dbb/tutori…

Python類中方法種類與修飾符詳解:從基礎到實戰

文章目錄Python類中方法種類與修飾符詳解:從基礎到實戰一、方法類型總覽二、各類方法詳解1. 實例方法 (Instance Method)2. 類方法 (Class Method)3. 靜態方法 (Static Method)4. 抽象方法 (Abstract Method)5. 魔術方法 (Magic Method)三、方法修飾符對比表四、綜合…

VSCode使用Jupyter完整指南配置機器學習環境

接下來開始機器學習部分 第一步配置環境: VSCode使用Jupyter完整指南 1. 安裝必要的擴展 打開VSCode,按 CtrlShiftX 打開擴展市場,搜索并安裝以下擴展: 必裝擴展: Python (Microsoft官方) - Python語言支持Jupyter (Mi…