Git+Jenkins 基本使用

一、什么是 Jenkins

????????Jenkins 是一個功能強大的應用程序,允許持續集成和持續交付項目(持續部署),無論用的是什么平臺。這是一個免費的源代碼,可以處理任何類型的構建或持續集成。集成 Jenkins 可以用于一些測試和部署技術。
Jenkins 原名 Hudson,2011 年改為現在的名字,它是一個開源的實現持續集成的軟件工具。官方網站網址:https://jenkins.io/ 。Jenkins 能實時監控持續集成過程中所存在的問題,提供詳細的日志文件和提醒功能,還能通過圖表的形式,形象地展示項目構建的趨勢和穩定性。
Jenkins 是一個開源軟件項目,是基于 Java 開發的一種持續集成工具,用于監控持續重復的工作,旨在提供一個開放易用的軟件平臺,使軟件項目可以進行持續集成。
jenkins 提供了一種易于使用的持續集成系統,使開發者從繁雜的集成中解脫出來,專注于更為重要的業務邏輯實現上。同時 Jenkins 能實時監控集成中存在的錯誤,提供詳細的日志文件和提醒功能,還能用圖表的形式形象地展示項目構建的趨勢和穩定性。
Jenkins 可以構建一個自動化的持續集成環境可以使用它來 “自動化” 編譯、打包、分發部署應用,它兼容 ant、maven、gradle 等多種第三方構建工具,同時與 svn、git 能無縫集成,也支持直接與知名源代碼托管網站,如 github、bitbucket 直接集成。

1:為什么要用 Jenkins

????????目前持續集成 (CI) 已成為當前許多軟件開發團隊在整個軟件開發生命周期內側重于保證代碼質量的常見做法。它是一種實踐,旨在緩和和穩固軟件的構建過程。并且能夠幫助您的開發團隊應對如下挑戰:

(1) 軟件構建自動化

????????配置完成后,CI 系統會依照預先制定的時間表,或者針對某一特定事件,對目標軟件進行構建。

(2) 構建可持續的自動化檢查

????????CI 系統能持續地獲取新增或修改后簽入的源代碼,也就是說,當軟件開發團隊需要周期性的檢查新增或修改后的代碼時,CI 系統會不斷確認這些新代碼是否破壞了原有軟件的成功構建。這減少了開發者們在檢查彼此相互依存的代碼中變化情況需要花費的時間和精力 (說直接一點也是錢啊,呵呵)。

(3) 構建可持續的自動化測試

????????構建檢查的擴展部分,構建后執行預先制定的一套測試規則,完成后觸發通知 (Email,RSS 等等) 給相關的當事人。

(4) 生成后后續過程的自動化

????????當自動化檢查和測試成功完成,軟件構建的周期中可能也需要一些額外的任務,諸如生成文檔、打包軟件、部署構件到一個運行環境或者軟件倉庫。這樣,構件才能更迅速地提供給用戶使用。

2、Jenkins 的特點

特點描述
易安裝從官網僅需下載一個 jenkins.war 文件后,直接運行,無需額外安裝,更無需安裝數據庫
易配置提供友好的 GUI 配置界面
變更支持能從代碼倉庫(SVN/Git)中獲取并產生代碼更新列表,并顯示到編譯輸出信息中
支持永久鏈接用戶通過 Web 訪問 Jenkins,Web 頁面鏈接地址是永久鏈接地址,可在各種文檔中直接使用該鏈接
集成 E-Mail/RSS/IM完成一次集成后,可通過這些工具實時收取集成結果(構建集成需花費一定時間,有此功能可在等待結果時干別的事 )
JUnit/TestNG 測試報告以圖表等形式提供詳細的測試報表功能
支持分布式構建可以把集成構建等工作分發到多臺計算機中完成
文件指紋信息會保存構建集成所產生的 jars 文件、集成構建使用了哪個版本的 jars 文件等構建記錄
支持第三方插件支持第三方插件,使 Jenkins 功能變得越來越強大

二、什么是 CI/CD

????????持續集成 (Continuous integration) 是一種軟件開發實踐,即團隊開發成員經常集成它們的工作,通過每個成員每天至少集成一次,也就意味著每天可能會發生多次集成。每次集成都通過自動化的構建(包括編譯,發布,自動化測試)來驗證,從而盡早地發現集成錯誤。

????????持續部署(continuous deployment)是通過自動化的構建、測試和部署循環來快速交付高質量的產品。某種程度上代表了一個開發團隊工程化的程度,畢竟快速運轉的互聯網公司人力成本會高于機器,投資機器優化開發流程化相對也提高了人的效率,讓 engineering productivity 最大化。

????????持續交付(Continuous delivery),是一種軟件工程手法,讓軟件產品的產出過程在一個短周期內完成,以保證軟件可以穩定、持續的保持在隨時可以釋出的狀況。它的目標在于讓軟件的建置、測試與釋出變得更快以及更頻繁。這種方式可以減少軟件開發的成本與時間,減少風險。

CICD 是 持續集成(Continuous Integration,簡稱 CI ) 和 持續交付 / 持續部署(Continuous Delivery/Continuous Deployment,簡稱 CD ) 的合稱,是一套自動化流程體系,幫你高效、穩定地把代碼變成可用的軟件,下面結合你給的流程圖,拆解講講 :


1、持續集成(CI)—— 解決 “代碼整合沖突、盡早發現問題”

流程邏輯:

????????程序員在本地開發(比如用 IDEA 寫代碼),寫完提交到「版本控制服務器」(像 Git/SVN 這類,存著完整代碼庫 )。每次提交后,版本控制里的鉤子程序會觸發操作,給 Jenkins 發通知。Jenkins 收到通知,用 git/svn 插件 拉取最新代碼,再通過 maven 插件 自動編譯、打包(生成 war/jar 這些包)。這一步核心是 “頻繁合并小改動,自動驗證” ,比如多人開發同一個項目,每天多次提交代碼,Jenkins 自動幫你整合、檢查編譯和單元測試是否能過,避免最后合并代碼一堆沖突、問題藏到上線才爆。

價值:

早發現 bug:代碼一提交就自動跑檢查,有問題立刻知道,不用等到上線才返工。
減少合并痛苦:小步提交、頻繁整合,比 “憋大招式開發”(很久才合并代碼)沖突少太多。

2、持續交付 / 持續部署(CD)—— 解決 “手動部署繁瑣、發布效率低”

持續交付(Continuous Delivery):

????????Jenkins 打包好 war/jar 包后,會通過 Publish over SSH(遠程執行命令)或 Deploy to container(比如把 war 包丟到 Tomcat 里)這些方式,把包推到測試 / 預發布環境。這一步是 “讓可部署的產物隨時能交付” ,測試團隊可以快速拿到最新包驗證,流程到這一步可能還需要人工點一下 “確認發布到生產”。

持續部署(Continuous Deployment):

是持續交付的 “升級版”,如果流程足夠成熟、自動化測試足夠可靠,Jenkins 打完包直接自動部署到生產環境(比如服務器 1、服務器 2… ),全程不用人工干預。這一步追求 “極致自動化,代碼合并后自動上線” ,適合成熟的高頻迭代項目,像互聯網大廠頻繁發版的業務。

結合流程圖看完整 CICD 閉環:

開發側:程序員在本地寫代碼(工作區 [idea] ),提交到版本控制服務器,觸發 CI 流程。
集成側:Jenkins 自動拉取、打包、驗證,把 “半成品” 變成 “可部署包”,完成 CI。
發布側:包通過自動化手段推到測試 / 生產環境,完成 CD(交付或部署 )。
反饋側:測試、前端等最終使用人員拿到部署好的環境,發現問題又能快速反饋給開發,進入下一輪迭代,形成 “開發→集成→部署→反饋→開發” 的閉環。

簡單說,CICD 就是用自動化把 “寫代碼→上線可用” 的鏈路串起來,讓開發更順滑、迭代更快、問題更早暴露,特別適合團隊協作、高頻更新的項目(像互聯網應用、 SaaS 系統 )。你可以理解成 “把手動干的‘代碼整合、打包、部署’這些重復活,交給機器自動做,人只聚焦寫業務邏輯” ,效率和穩定性都會飛升~

三、部署GitLab

1、基礎環境配置

(1) 關閉防火墻及內核

hostnamectl set-hostname gitlab
bash
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config

(2) 解壓并安裝

tar zxf gitlab-ce-17.8.2.rpm.tar.gz
cd gitlab-ce-17.8.2.rpm
ls
dnf -y install gitlab-ce-17.8.2-ce.0.el9.x86_64.rpm

(3) 修改配置文件

vim /etc/gitlab/gitlab.rb

?external_url 'http://192.168.10.105'?是 GitLab 配置中的核心參數,用于指定 GitLab 服務對外提供訪問的基礎 URL

(4) 解決版本兼容問題

ln -s /usr/lib64/libcrypt.so.1 /usr/lib64/libcrypt.so.2

具體來說:

  • libcrypt.so?是系統中負責密碼加密相關功能的共享庫文件
  • 某些版本的 GitLab(或其依賴的組件)可能編譯時依賴?libcrypt.so.2?這個庫文件
  • 但部分 Linux 系統(如 CentOS 7 等)默認只安裝了?libcrypt.so.1(通常是?glibc?提供的版本)
  • 通過創建從?libcrypt.so.1?到?libcrypt.so.2?的軟鏈接,可以讓依賴?libcrypt.so.2?的程序 “誤以為” 找到了所需的庫文件,從而避免因庫版本不匹配導致的啟動失敗或功能異常

這個操作本質上是一種兼容處理,在系統庫版本與軟件依賴版本不一致時,通過鏈接方式臨時解決依賴問題。如果系統環境允許,更規范的做法是安裝對應版本的?libcrypt?庫(如?libcrypt2)。

2、部署

(1) GitLib初始化

gitlab-ctl reconfigure

(2) 找到初始化密碼

cat /etc/gitlab/initial_root_password
EDgqXDTjQnTGv/gMKYyFBS2yfp/BHaHntPA6cQ/e3to=

(3) 登錄

(4) 修改root密碼

四、jenkins部署

1、資源清單

操作系統配置主機名IP
openEuler 24.032C4Gjenkins192.168.10.104
openEuler 24.032C4Ggitlab192.168.10.105

2、基礎環境

hostnamectl set-hostname jenkins
bash
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config

3、安裝git

dnf -y install git

4、安裝字體庫

dnf -y install fontconfig

5、部署JDK

(1) 解壓并移動到合適位置

tar zxf jdk-11.0.16.1_linux-x64_bin.tar.gz
mv jdk-11.0.16.1 /usr/local/java

(2) 設置環境變量

export JAVA_HOME=/usr/local/java
export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

(3) 加載環境變量

source /etc/profile

(4) 查看版本

java -version

6、部署Tomcat

tar zxf apache-tomcat-8.5.56.tar.gz
mv apache-tomcat-8.5.56 /usr/local/tomcat

7、部署Meven

(1) 解壓并移動到合適位置

tar zxf apache-maven-3.6.0-bin.tar.gz
mv apache-maven-3.6.0 /usr/local/maven

(2) 設置環境變量

export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin

?(3) 加載環境變量

source /etc/profile

(4) 查看版本

mvn -version

(5) 修改配置文件

將Maven倉庫改為國內
vim /usr/local/maven/conf/settings.xml
<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共倉庫</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>

8、部署nodejs(運行時)?

(1) 部署nodejs的依賴環境

dnf -y install gcc automake autoconf libtool

?(2) 解壓并移動到合適位置

tar zxf node-v14.18.0-linux-x64.tar.gz
mv node-v14.18.0-linux-x64 /usr/local/nodejs14

(3) 優化路徑并查看版本

ln -s /usr/local/nodejs14/bin/* /usr/local/bin
node -v

(4) 查看node包管理工具(構建工具)

npm -v

9、部署jenkins

mv jenkins.war /usr/local/tomcat/webapps/
cd /usr/local/tomcat/webapps/
ls
/usr/local/tomcat/bin/startup.sh

10、設置Jenkins插件更新源

cd
cd .jenkins/updates/
sed -i 's/https:\/\/www.jenkins.io/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
sed -i 's/https:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

11、找到初始密碼

cat /root/.jenkins/secrets/initialAdminPassword

12、登錄Jenkins

13、安裝插件(選離線)

14、跳過在線安裝插件

15、創建管理員用戶生成永久鏈接

16、開始使用

17、后續如需安裝插件

18、拉取本地插件(原先下載好的)


19、然后重啟 Jenkins

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

重新查看插件是否已經被添加

20、安裝JDK

21、安裝Maven

22、安裝NodeJS

五、Jenkins角色與權限管理

????????我們可以利用Role-basedAuthorization Strategy 插件來管理 Jenkins 用戶權限,在前面的插件安裝中已經安裝過此插件。

1、全局安全配置

“Dashboard”-->“ManageJenkins”-->“Security”-->“Authentication”

將授權策略修改為“Role-Based Strategy”,并保存設置。

2、創建角色

為了更方便的為用戶授權,jenkins 中使用角色作為一類權限的容器。角色是一組相關權限的集合。可以為用戶指定角色,而不是直接指定權限。

(1) 角色種類

Global roles:Global roles(全局角色):管理員等高級用戶可以創建基于全局的角色

Item roles:針對某個或者某些項目的角色

Agent roles:節點相關的權限

(2) 設置角色

“Dashboard”-->“Manage Jenkins”-->“Manage and AssingRoles”。點擊“Manage Roles”

(3) 創建全局角色

????????baseRole:該角色為全局角色。這個角色需要綁定 Overall 下面的 Read 權限,是為了給所有用戶綁定最基本的 Jenkins 訪問權限。注意:如果不給后續用戶綁定這個角色,會報錯誤:用戶名ismissing the Overall/Read permission

(4) 創建項目角色

role1:該角色為項目角色。使用正則表達式綁定"my-item01.*",意思是只能操作名稱為“my-item01”開頭的項目。

role2:該角色也為項目角色。綁定"my-item02.*",意思是只能操作“my-item02”開頭的項目。

為角色分配權限

3、創建用戶

(1) 添加用戶

Dashboard”-->“Manage Jenkins”-->“Users”,在右上角點擊“CreateUser”,創建用戶。

添加兩個用戶zhangsan、lisi

(2) 用戶綁定到角色

????????“Dashboard”-->“Manage Jenkins”-->“Manage and Assign Roles”,然后點擊“Assign Roles”。

zhangsan 用戶綁定 baseRole role1 角色

4、創建項目

5、憑證管理

????????有許多第三方網站和應用程序可以與Jenkins 進行交互,例如程序代碼倉庫,云存儲系統和服務等。此類應用程序的系統管理員可以在應用程序中配置憑據以專供 Jenkins 使用。通常通過將訪問控制應用于這些憑據來完成這項工作,以“鎖定”Jenkins 可用的應用程序功能區域。一旦 Jenkins 管理員(即管理 Jenkins 站點的 Jenkins 用戶)在 Jenkins 中添加/配置這些憑據,Pipeline 項目就可以 使用憑據與這些第三方應用程序進行交互。

用管理員登錄到 jenkins。

????????要在 Jenkins 使用憑證管理功能,需要安裝 CredentialsBinding 插件,前面已經安裝過此插件, 這里不再安裝。

????????憑據可以用來存儲需要密文保護的數據庫密碼、Gitlab 密碼信息、Docker 私有倉庫密碼等,以便Jenkins 可以和這些第三方的應用進行交互。

憑據的種類

????????jenkins 提供了多種類型的憑據,適應與不同的業務需求,具體類型如下:

  • Username with password:用戶名和密碼
  • GitHub AppGitHub 應用進行身份驗證
  • GitLab API token:存儲 Gitlab 的用戶API token
  • OpenShift Username and password:存儲OpenShift 的用戶名和密碼
  • SSH Username with private key 使用 SSH 用戶和密鑰
  • Secret file:需要保密的文本文件,使用時Jenkins 會將文件復制到一個臨時目錄中,再將文件路徑設置到一個變量中,等構建結束后,所復制的 Secret file 就會被刪除。
  • Secret text:需要保存的一個加密的文本串,如釘釘機器人或Github api token
  • Certificate:通過上傳證書文件的方式

????????其中,常用的憑證類型有:Username with password(用戶密碼)和 SSH Username with private key(SSH 密鑰)。接下來以使用 Git 工具到 Gitlab 拉取項目源碼為例,演示 Jenkins 的如何管理 Gitlab的憑證。

????????注意:為了讓 Jenkins 支持從 Gitlab 拉取源碼,需要安裝 Git 插件以及在 CentOS7 系統上安裝 Git工具。

(1) 憑據的作用范圍

????????憑證具有與它們相關聯的范圍。這是一種表示它們如何才能被暴露的方式。Jenkins使用的主要范圍有如下 2 種。

System(系統)

????????顧名思義,這個范圍與根上下文,也就是Jenkins 系統相關聯。此范圍中的憑證只被暴露給系統和后臺任務,并且一般被用于連接到構建節點或代理節點等。

全局

全局范圍是默認選項,通常用來確保 Jenkins中的任務可以使用憑證。

(2) 添加用戶密碼類型的憑據

添加憑據

????????“Manage jenkins”-->“Credentials”,打開如下頁面,并點擊“System”,進入全局憑據管理界面,如下圖所示。

在如下界面中,點擊右上角的“Add Credentials”按鈕,添加憑據

填寫憑據參數

這里主要的內容有:

憑據類型:Username withpassword

范圍:Global

用戶名:root(該賬號是 gitlab 中添加的賬號)

密碼:gitlab 中為 root 用戶設置的密碼(本案例此處為 pwd12345,注意不是系統的 root 密碼

ID:選填(設置憑據的唯一標識,不設置會自行分配一個唯一標識)

描述:選填(憑據名稱,此處最好填寫一下,使用憑據的時候便于識別,不設置就使用用戶名)

6、使用憑據

(1) 賬號密碼模式

創建test01任務

(2) 配置源碼管理

登錄gitlab

創建項目

導入一個項目

設置參數

(3)添加SSH類型的憑據

SSH 類型的憑據可以使Jenkins 在拉取gitlab 中的代碼時使用秘鑰對的方式,不僅實現了免密連接,同時也會對數據進行加密,是一種安全可靠的憑據方式。

在 jenkins 主機上以root 身份生成密鑰對
ssh-keygen
cd
cd .ssh/
ls
cat id_ed25519.pub
cat id_ed25519

公鑰
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHA8FJ6slmXppZahXmTtq/MLWLU9rBWIszNs2W7lE7EB root@jenkins
私鑰
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACBwPBSerJZl6aWWoV5k7avzC1i1PawViLMzbNlu5ROxAQAAAJA1NAuONTQL
jgAAAAtzc2gtZWQyNTUxOQAAACBwPBSerJZl6aWWoV5k7avzC1i1PawViLMzbNlu5ROxAQ
AAAEAd5GuCXddppIoVcfLDaM4Gy3b7DznVapqX6rD2Rv8n3XA8FJ6slmXppZahXmTtq/ML
WLU9rBWIszNs2W7lE7EBAAAADHJvb3RAamVua2lucwE=
-----END OPENSSH PRIVATE KEY-----

將公鑰存放的gitlab

????????用 root 用戶登錄 gitlab,點擊右上角的頭像,在下拉菜單中點“preferences”,然后在左側列表點擊“SSH Keys”。

在Jenkins種添加SSH憑據

“Manage jenkins”-->“Credentials”,打開如下頁面,并點擊“System”,進入全局憑據管理界

添加憑據參數

這里主要的參數有:

類型:SSH

范圍:Global

ID:可選

描述:可選

Username:root(這個秘鑰對是用 root 的身份生成的)

Private Key:填寫 root 生成的私鑰。

創建test02任務

配置源碼管理

????????如果報一下錯誤可以使用Jenkins節點手動使用ssh登錄一下

????????在使用秘鑰對時,要提前在 jenkins 主機上生成 gitlab 主機的 fingerprint,否則,此處會提示錯誤。錯誤信息如下:

????????第一次連接的話可以看到提示: “Are yousure you want to continue connecting (yes/no)? yes”,輸入 yes 并回車即可生成 gitlab 主機的 fingerprint。

發布結果

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

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

相關文章

Linux第十三講:線程同步和互斥

Linux第十三講&#xff1a;線程同步和互斥1.線程互斥1.1進程線程間的互斥背景概念1.2什么是鎖1.2.1認識鎖&#xff0c;理解鎖2.線程同步2.1條件變量2.2生產和消費模型2.3基于阻塞隊列(blockqueue)的生產消費模型2.3.1單生產&#xff0c;單消費的阻塞隊列模擬實現2.3.2多生產&am…

SAP 簡單的AMDP demo 練習使用

SAP AMDP&#xff08;ABAP Managed Database Procedure&#xff09;是SAP的一項先進技術&#xff0c;用于在SAP HANA數據庫上執行高性能的數據庫操作。它允許ABAP開發人員編寫數據庫過程&#xff0c;這些過程可以在數據庫級別上執行&#xff0c;從而實現更快的數據處理和更高的…

Maven JAR Plugin 插件使用說明

Maven JAR Plugin 插件使用說明1 Maven JAR Plugin 插件地址2 Maven JAR Plugin 特點3 maven-assembly-plugin 的用法3.1 無依賴項 maven-jar-plugin 配置3.2 有依賴項 maven-jar-plugin 配置3.3 配合maven-dependency-plugin 將依賴復制到指定位置1 Maven JAR Plugin 插件地址…

QT+Yolov8 推理部署,ONNX模型 ,實例分割+目標檢測

QTYolov8 實例分割、目標檢測推理。QT源碼。 程序準備/版本:QT creator QT6.8 編譯器:MSVC2022 opencv:4.7 onnxruntime:1.16.0 cpu版本 QTyolo推理部署程序部分源碼: #include "aitoolinterface.h" #include "ui_aitoolinterface.h" #include <QDebu…

【java實現一個接口多個實現類通用策略模式】

java實現同個接口多個實現類通用策略模式 項目業務中&#xff0c;有多個平臺&#xff0c;多個平臺直接有相同的業務&#xff0c;只有一個接口入口&#xff0c;但是 不同的平臺入口&#xff0c;雖然接口相同&#xff0c;參數相同&#xff0c;但是各自的具體實現不同&#xff0c;…

leetcode-139. 單詞拆分-C

暴力回溯回溯過程就是一個決策樹模型&#xff0c;從所有選擇中找到合適的繼續&#xff0c;否則回到上一級繼續。該方法思路簡單&#xff0c;時間復雜度過高&#xff0c;大概1/4的用例超時。 bool backtrack(char *s, int cur, char** wordDict, int wordDictSize) {// 基線條件…

《彩色終端》詩解——ANSI 藝術解碼(DeepSeek)

AIi詩解通吾靈&#xff0c;直抄原文享分玲。 筆記模板由python腳本于2025-08-18 23:35:59創建&#xff0c;本篇筆記適合喜歡詩&代碼的coder翻閱。 學習的細節是歡悅的歷程 博客的核心價值&#xff1a;在于輸出思考與經驗&#xff0c;而不僅僅是知識的簡單復述。 Python官網…

抓包工具tcpdump詳細指南

目錄 1. 核心功能與特性 2. 關鍵參數速查表 3. 基礎命令 3.1 協議/端口過濾 3.2 IP 地址過濾 3.3 高級邏輯組合 3.4 控制輸出詳細度 3.5 解析包內容 3.6 特殊包過濾 3.7 限制抓包數量 3.8 過濾特定大小包 3.9 過濾提升性能 ??????3.10 多網卡綁定 3.11 高級…

三高架構雜談

我們的秒殺請求到了tomcat之后&#xff0c;我整個請求到了后端&#xff0c;我們怎么抗住高并發 也就是讓他1s抗住10w的訂單量&#xff0c;該怎么做 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>…

后端通用基礎代碼

后端通用基礎代碼 通用基礎代碼是指&#xff1a;“無論在任何后端項目中&#xff0c;都可以復用的代碼。這種代碼一般 “一輩子只用寫一次” &#xff0c;了解作用之后復制粘貼即可&#xff0c;無需記憶。 目錄結構如下&#xff1a;1、自定義異常 自定義錯誤碼&#xff0c;對錯…

基于51單片機WIFI心率計脈搏體溫測量儀APP設計

1 系統功能介紹 本設計基于 STC89C52 單片機&#xff0c;結合 脈搏傳感器、溫度傳感器 DS18B20、LCD1602 液晶顯示器、WiFi 模塊 等外設&#xff0c;構建了一個 WiFi 心率計脈搏體溫測量儀 APP 系統。系統能夠實現對人體心率與體溫的實時采集、處理、顯示和遠程上傳&#xff0c…

從零到一構建企業級GraphRAG系統:GraphRag.Net深度技術解析

當RAG遇上知識圖譜&#xff0c;會碰撞出怎樣的火花&#xff1f;本文將帶你深入探索GraphRag.Net這個開源項目&#xff0c;看看如何用.NET技術棧打造一個企業級的圖譜增強檢索系統。 引言&#xff1a;為什么我們需要GraphRAG&#xff1f; 在AI大模型時代&#xff0c;RAG&#x…

前端Element-plus的選擇器 el-select 清空內容時,后端對應的更新方式,支持更新為null

1、所屬小類選擇器 el-select 清空內容時&#xff0c;前端通過事件設置為空字符串clear"handleSmallCategoryClear"【所屬小類選擇器】只能選擇&#xff0c;不能輸入信息<script setup lang"ts" name"QualityFileInfoDialog"> ...... // 所…

【筆記】和各大AI大語言模型合作寫項目—slirp.go

最近和各大AI大語言模型一起合作寫了個小項目&#xff0c;讓大家看看AI離取代人類還差多遠。 開發大家都在一個共享環境下&#xff0c;連docker都不能運行&#xff0c;rootless也沒有。不過好在linux環境&#xff0c;弄個proot能apt或者yum install自由&#xff0c;但是諸如pod…

國標:開展環境衛生滿意度調查

隨著社會的進步和人們生活水平的提高&#xff0c;&#xff08;滿意度調查&#xff09;&#xff08;問卷調查&#xff09;&#xff08;第三方市場咨詢公司&#xff09;對生活品質的追求以及對環境保護的重視已經成為了當下社會的主旋律。在這樣的背景下&#xff0c;環境衛生問題…

【辦公類-54-08】20250902 2025學年第一學期班級點名冊模版(雙休國定假涂成灰色、修改標題和頁眉,批量導出PDF)根據新Excel模版,標題增加園區、空姓名行填充灰色

背景需求: 之前做了優化過的點名冊 【辦公類-54-07】20250901 2025學年第一學期班級點名冊模版(雙休國定假涂成灰色、修改標題和頁眉,批量導出PDF)-CSDN博客文章瀏覽閱讀984次,點贊27次,收藏29次。【辦公類-54-07】20250901 202學年第一學期班級點名冊模版(雙休國定假…

【C++知識雜記1】智能指針及其分類

智能指針&#xff08;smart pointer&#xff09; 是 C11 引入的一類 模板類&#xff0c;用來封裝原始指針&#xff0c;自動管理堆內存的生命周期&#xff0c;避免出現 內存泄漏 和 懸空指針&#xff08;野指針&#xff09; 的問題。 當智能指針對象離開作用域時&#xff0c;它會…

vue從入門到精通:搭建第一個vue項目

目錄 Vue是什么 一、nodejs安裝 二、安裝Vue CLI 三、創建Vue項目 四、配置vue.config.js文件 五、創建第一個應用hello word Vue是什么 Vue是一款?用于構建用戶界面的 JavaScript 漸進式架構?既可作為庫(僅關注視圖層)也可擴展為框架,支持從靜態頁面到復雜單頁應用…

C# Queue源碼分析

Queue<T> 是 .NET 中實現隊列&#xff08;先進先出&#xff09;的一種泛型集合類。它基于數組實現&#xff0c;支持動態擴容、線程不安全&#xff0c;適用于大多數需要隊列結構的場景。一、類結構與字段說明 public class Queue<T> : IEnumerable<T>, IColle…

微服務之注冊中心與ShardingSphere關于分庫分表的那些事

小伙伴們&#xff0c;你們好呀&#xff01;我是老寇&#xff01;跟我一起學習注冊中心與ShardingSphere怎么一起使用 使用 nacos-shardingsphere例子&#xff0c;請點擊我 注意&#xff1a;需要自己提前創建數據庫和表 create database kcloud_platform_test;DROP TABLE IF…