還在手動部署?用Jenkins+Docker+Git實現自動化CI/CD

“每次發版都要手動打包上傳,部署宕機了才發現出錯?”
你還在重復“開發提測-打包部署-驗證回歸”的流水線操作?明明可以一鍵搞定的流程,為何還在親力親為?是時候了解并掌握 自動化 CI/CD 的真正威力了!

手動部署就像騎自行車在高速公路上賽跑——費力又低效!每次代碼更新,您是否還在手動構建、測試、部署,擔心出錯導致系統崩潰?用戶體驗下降、業務受損的后果讓人不寒而栗!持續集成與持續部署(CI/CD)的自動化技術徹底改變了這一局面,而 Jenkins、Docker 和 Git 的黃金組合更是讓部署如行云流水。今天,我們為您獻上一份 Jenkins + Docker + Git 自動化 CI/CD 指南,從環境搭建到管道運行,帶您一步步實現高效部署!無論您是開發新手還是 DevOps 老兵,這篇指南都將點燃您的自動化熱情,助您邁向高效開發新時代!

在如今的互聯網時代,隨著軟件開發復雜度的不斷提高,軟件開發和發布管理也越來越重要。目前已經形成一套標準的流程,最重要的組成部分就是持續集成(Continuous Integration,CI)及持續部署、交付(CD)。在此,我們來以一個案例初步了解 CI 流程。那么什么是 CI 呢?簡單來講,CI 就是將傳統的代碼合并、構建、部署、測試都集成在一起,不斷地執行這個過程,并對結果進行反饋。

什么是 CI/CD?Jenkins、Docker 和 Git 如何協同打造自動化管道?自動化部署能帶來哪些實際好處?如何通過這三者實現快速迭代?在 2025 年的微服務和云原生趨勢中,自動化 CI/CD 為何如此重要?通過本文,我們將深入解答這些問題,帶您從理論到實踐,全面掌握自動化 CI/CD 的精髓!

CI 流程設計圖:

圖片

圖片

工作流程:

  • 開發人員提交代碼到Git版本倉庫;

  • Jenkins人工/定時觸發項目構建;

  • Jenkins拉取代碼、代碼編碼、打包鏡像、推送到鏡像倉庫;

  • Jenkins在Docker主機創建容器并發布

主機環境規劃:

  • docker-jenkins: ? ?10.0.0.98

  • docker-git-harbor:10.0.0.99

部署Git代碼版本倉庫

安裝:

?yum install git -y

配置git用戶:

useradd gitpasswd git

創建庫:

mkdir?tomcat-java-demo.gitcd tomcat-java-demo.git/git --bare initInitialized?empty?Git?repository?in?/home/git/tomcat-java-demo.git/lsbranches ?config ?description ?HEAD ?hooks ?info ?objects ?refs[git@docker-git-harbor tomcat-java-demo.git]$

另一臺docker-jenkins訪問該倉庫:

[root@docker-jenkins ~]# git clone git@10.0.0.99:/home/git/tomcat-java-demo.gitCloning into 'solo'...The?authenticity?of?host?'10.0.0.99 (10.0.0.99)'?can't?beestablished.ECDSA?key?fingerprintis?SHA256:XNWQhGsAsqd84k/6OYV3xl1+mPGjtASsxeV1YVLZVas.ECDSA?keyfingerprint?is?MD5:b4:bd:16:2b:de:e7:7c:fd:c5:dd:91:75:20:ff:3e:0a.Are?you?sure?you?want?to?continue?connecting (yes/no)? yesWarning:?Permanently added?'10.0.0.99' (ECDSA)?to the list of known hosts.git@10.0.0.99'spassword:warning:?You appear to have cloned an empty repository.[root@docker-jenkins ~]# lsanaconda-ks.cfg ?tomcat-java-demo.git[root@docker-jenkins ~]# ls tomcat-java-demo.git[root@docker-jenkins ~]#

?

模擬生產項目,拉取github上的一個demo,并上傳至本地git庫

[root@docker-jenkins ~]# mv tomcat-java-demo tomcat-java-demo.bak[root@docker-jenkins ~]# git clone https://github.com/dingkai163/tomcat-java-demo.git[root@docker-jenkins tomcat-java-demo]# cat .git/config[core]repositoryformatversion?=?0filemode?=?truebare?=?falselogallrefupdates?=?true[remote "origin"]url?=?git@10.0.0.99:/home/git/tomcat-java-demo.git ?# 修改為本地的git庫地址fetch?=?+refs/heads/*:refs/remotes/origin/*[branch "master"]remote?=?originmerge?=?refs/heads/master[root@docker-jenkins tomcat-java-demo]# git add .[root@docker-jenkins tomcat-java-demo]# git status# On branch masternothing?to?commit,?working?directory?clean[root@docker-jenkins tomcat-java-demo]# git commit -m "all"# On branch masternothingto?commit,?working?directory?clean[root@docker-jenkins tomcat-java-demo]# git push origin mastergit@10.0.0.99'spassword:Counting objects:?229, done.Compressing objects:?100% (185/185), done.Writing objects:?100% (229/229), 4.52 MiB | 0 bytes/s, done.Total?229 (delta 25), reused 229 (delta 25)To git@10.0.0.99:/home/git/tomcat-java-demo.git* [new branch] ?? ??master -> master[root@docker-jenkins tomcat-java-demo]#

jenkins環境部署

部署jdk環境及maven

[root@docker-jenkins ~]# mkdir tools[root@docker-jenkins ~]# cd tools[root@docker-jenkins tools]# rz -y[root@docker-jenkins tools]# tar zxvf jdk-8u45-linux-x64.tar.gz[root@docker-jenkins tools]# mv jdk1.8.0_45 /usr/local/jdk[root@docker-jenkins tools]# vim /etc/profileJAVA_HOME=/usr/local/jdk?PATH=$PATH:$JAVA_HOME/bin??CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar?export?JAVA_HOME?PATH?CLASSPATH[root@docker-jenkins tools]# source /etc/profile[root@docker-jenkins tools]# java -versionjava version?"1.8.0_45"Java(TM)SE?Runtime?Environment?(build 1.8.0_45-b14)Java?HotSpot(TM)64-Bit?Server?VM?(build 25.45-b02, mixed mode)[root@docker-jenkins tools]# tar zxf apache-maven-3.5.0-bin.tar.gz[root@docker-jenkins tools]# mv apache-maven-3.5.0 /usr/local/maven

在10.0.0.98主機安裝Jenkins,下載Tomcat二進制包將war包到webapps下即可:

[root@docker-jenkins tools]# wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war[root@docker-jenkins tools]# wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz[root@docker-jenkins tools]# tar zxf apache-tomcat-8.5.38.tar.gz[root@docker-jenkins tools]# lsapache-tomcat-8.5.38??apache-tomcat-8.5.38.tar.gz ?jdk-8u45-linux-x64.tar.gz ?jenkins.war[root@docker-jenkins tools]# mv apache-tomcat-8.5.38 /usr/local/tomcat-jenkins[root@docker-jenkins tools]# ls /usr/local/tomcat-jenkins/webapps/docs ?examples ?host-manager??manager ?ROOT[root@docker-jenkins tools]# rm -rf /usr/local/tomcat-jenkins/webapps/*[root@docker-jenkins tools]# mv jenkins.war /usr/local/tomcat-jenkins/webapps/ROOT.war[root@docker-jenkins tools]# ll /usr/local/tomcat-jenkins/webapps/total 75520-rw-r--r--. 1 root root 77330344 Mar 15 00:55 ROOT.war[root@docker-jenkins tools]# cd /usr/local/tomcat-jenkins/bin/[root@docker-jenkins bin]# ./startup.shUsing?CATALINA_BASE: ??/usr/local/tomcat-jenkinsUsingCATALINA_HOME: ??/usr/local/tomcat-jenkinsUsing?CATALINA_TMPDIR:?/usr/local/tomcat-jenkins/tempUsing?JRE_HOME: ? ? ???/usr/local/jdk1.8Using?CLASSPATH: ? ? ??/usr/local/tomcat-jenkins/bin/bootstrap.jar:/usr/local/tomcat-jenkins/bin/tomcat-juli.jarTomcat started.[root@docker-jenkins bin]#

啟動后,瀏覽器訪問http://10.0.0.98:8080/,按提示輸入密碼,登錄即可。

圖片

觀點與案例結合

觀點:CI/CD 通過自動化流程提升代碼質量和部署效率,Jenkins 負責管道編排,Docker 確保環境一致性,Git 管理代碼版本。三者結合,構建了高效、可靠的自動化部署體系,適合現代微服務和云原生架構。

CI/CD 流程與核心步驟

步驟

描述

工具/操作

案例

安裝環境

在服務器上安裝 Git、Jenkins 和 Docker,配置環境變量。

Ubuntu: sudo apt install git openjdk-11-jdk docker.io
Jenkins: 下載 Jenkins WAR

小李在 Ubuntu 服務器上 10 分鐘完成環境搭建,開始 CI/CD 配置。

配置 Jenkins

安裝 Git 和 Docker 插件,設置 Git Webhook。

Jenkins 插件管理:安裝 “Git” 和 “Docker Pipeline”
Webhook: 在 Git 倉庫添加 Jenkins URL

小張配置 Webhook,代碼提交后自動觸發管道。

編寫 Jenkinsfile

定義管道,包括拉取代碼、構建鏡像、測試和部署。

groovy<br>pipeline {<br> agent any<br> stages {<br> stage('Checkout') {<br> steps {<br> git 'https://github.com/user/repo.git'<br> }<br> }<br> stage('Build') {<br> steps {<br> sh 'docker build -t myapp .'<br> }<br> }<br> stage('Test') {<br> steps {<br> sh 'docker run myapp pytest'<br> }<br> }<br> stage('Deploy') {<br> steps {<br> sh 'docker push myapp'<br> sh 'docker run -d -p 80:80 myapp'<br> }<br> }<br> }<br>}<br>

某團隊用 Jenkinsfile 實現自動化部署,效率提升 50%。

運行與監控

運行管道,監控構建、測試和部署結果。

jenkins > Build History > Console Output

小王通過 Jenkins 儀表板監控,優化部署時間 30%。

技術要點詳解

  1. Git 版本控制

    • 功能:管理代碼變更,觸發 Jenkins 管道。

    • 操作:配置 Webhook,URL 如 http://jenkins-server:8080/github-webhook/。

    • 案例:某公司通過 Git Webhook 實現代碼提交后自動構建,減少手動操作。

  2. Jenkins 管道

    • 功能:編排 CI/CD 流程,支持多階段任務。

    • 配置:使用 Jenkinsfile 定義 Checkout、Build、Test 和 Deploy 階段。

    • 案例:某電商平臺通過 Jenkins 管道,部署周期從每周一次縮短到每天多次。

  3. Docker 容器化

    • 功能:構建一致性環境,運行測試和部署。

    • 操作:編寫 Dockerfile,構建鏡像:docker build -t myapp .。

    • 案例:某團隊用 Docker 容器運行測試,解決環境不一致問題,測試成功率提升 40%。

  4. 監控與優化

    • 功能:通過 Jenkins 報告和日志分析瓶頸。

    • 工具:Jenkins Dashboard、Docker 監控命令(如 docker stats)。

    • 案例:某開發者通過日志發現測試階段內存不足,優化后性能提升 20%。

綜合案例

某互聯網公司開發電商平臺,采用 Jenkins + Docker + Git 實現 CI/CD。開發者提交代碼到 Git 倉庫,觸發 Jenkins 管道,自動拉取代碼、構建 Docker 鏡像、運行測試并部署到生產環境。部署周期從每周一次縮短到每天多次,bug 修復速度提升 50%,用戶滿意度顯著提高。

部署私有鏡像倉庫

企業級harbor鏡像倉庫部署:

https://www.cnblogs.com/kaye/p/10524391.html

構建Tomcat基礎鏡像,并推送到harbor鏡像庫:

 
[root@docker-git-harbor ~]# cd tomcat
[root@docker-git-harbor tomcat]# cat Dockerfile-tomcat
FROM centos:7
MAINTAINER?www.cnblogs.com/kaye/ENV?VERSION=8.5.38RUN?yum?install?java-1.8.0-openjdkwget?curl?unzip?iproute net-tools -y && \yum?clean all && \rm?-rf /var/cache/yum/*RUN wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v${VERSION}/bin/apachetomcat-${VERSION}.tar.gz && \tar?zxf apache-tomcat-${VERSION}.tar.gz && \mv?apache-tomcat-${VERSION} /usr/local/tomcat && \rm -rf apache-tomcat-${VERSION}.tar.gz /usr/local/tomcat/webapps/* && \mkdir?/usr/local/tomcat/webapps/test && \echo?"ok" >?/usr/local/tomcat/webapps/test/status.html && \sed?-i '1a JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"'?/usr/local/tomcat/bin/catalina.sh && \ln?-sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeENV?PATH?$PATH:/usr/local/tomcat/binEXPOSE?8080
CMD?["catalina.sh", "run"][root@docker-git-harbor tomcat]# docker build -t tomcat:v1 -f Dockerfile-tomcat .[root@docker-git-harbor tomcat]# docker tag tomcat:v1 reg.dingkai.com/library/tomcat:v1[root@docker-git-harbor tomcat]# docker login reg.dingkai.com[root@docker-git-harbor tomcat]# docker push reg.dingkai.com/library/tomcat:v1

Jenkins安裝必要插件

由于jenkins是離線安裝,所有在此需要配置一下插件下載地址:系統管理-->插件管理-->Advanced

圖片

圖片

修改下方地址,將https修改為http 再點Submit

圖片

Submit后點擊Available,Check now此時我們可以看到很多可獲得插件

圖片

首先搜索并安裝Pipeline插件
pipeline 是一套運行于jenkins上的工作流框架,將原本獨立運行于單個或者多個節點的任務連接起來,實現單個任務難以完成的復雜流程編排與可視化。

圖片

再安裝SCM to job 插件,同上步驟(搜索,安裝)。

項目創建

創建jobs

圖片

?

選擇流水線類型

圖片

到這里我們就開始配置Pipeline script,點擊Pipeline語法,來自動生成我們需要的配置。

圖片

?

如下圖,我們Git方式,配置Git倉庫地址,再添加認證相關

圖片

?

這里我們使用的是秘鑰認證方式,需要將jenkins上生成的公鑰發送到git服務器上,然后將jenkins上的生成的私鑰內容粘貼到下圖Key中,這樣jenkins就可以免交互的拉取git倉庫中的代碼了。

[root@docker-jenkins bin]# ssh-keygenGenerating public/private rsa key pair.
Enter?file?in?which?tosavethe?key?(/root/.ssh/id_rsa):
Enterpassphrase?(empty for no passphrase):
Enter?same?passphrase?again:
Your?identification?hasbeen?saved?in?/root/.ssh/id_rsa.
Your?public?keyhas?been?saved?in?/root/.ssh/id_rsa.pub.
The?keyfingerprint?is:
SHA256:1vD8XM3lDYFmrxgAbwPTLwb0fl+oEx8cFgtykpg4ODI root@
docker-jenkinsThe?key's?randomart?image?is:
+---[RSA 2048]----+| ? . o==o.o ... ?||E o o +=++ .+o . || o . . .*o o+.. .|| ? ? ? oo*oo o.=o|| ? ? ? .S.*o+.o =|| ? ? ? . ..B.+ ? || ? ? ? ? ?o = ? ?|| ? ? ? ? ? . ? ? || ? ? ? ? ? ? ? ? |+----[SHA256]-----+[root@docker-jenkins bin]# cd
[root@docker-jenkins ~]#
[root@docker-jenkins ~]#
[root@docker-jenkins ~]# ls .ssh/id_rsa ?id_rsa.pub ?known_hosts[root@docker-jenkins ~]# ssh-copy-id git@10.0.0.99/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysgit@10.0.0.99'spassword:Number?of?key(s)added: 1Now?trylogging?into?the?machine,?with: ? "ssh 'git@10.0.0.99'"
andcheck?to?make?sure?that?onlythe?key(s)you?wanted?were?added.[root@docker-jenkins ~]#

圖片

?

圖片

配置完成后,我們就可以生成Pipeline腳本了。點擊下方Generate Pipeline Script,然后復制方框內的內容。

圖片

編寫我們所需要的Pipeline腳本如下,將其粘貼到script的拉取代碼模塊中,并修改分支master為${branch},其他模塊內容自行編寫。

圖片

?

在Pipeline腳本里面我們指定了一個branch參數,所以我們需要傳遞一個參數變量,這里我們選擇參數化構建,默認值為master分支。

圖片

然后保存配置。

開始構建任務

回到主界面,我們開始構建任務

圖片

可以通過Console Output輸出查看jenkins構建流程

圖片

?

成功構建會提示:?SUCCESS

圖片

?

我們也可以查看構建成功后的圖形構建過程

圖片

社會現象分析

在許多中小企業中,CI/CD 落地依然被認為“太復雜”“運維成本高”。
但事實上,工具鏈已經趨于成熟,從 Git 提交,到構建打包、鏡像部署,甚至通知回調,全程可自動化。這不僅節省人力成本,還大幅提高上線效率與穩定性,是 DevOps 流程中的“基建神器”。

自動化 CI/CD 已成為軟件開發的核心趨勢。根據 Gartner 2024 報告,90% 的高績效 IT 組織采用 CI/CD 實踐,顯著提升交付速度和質量。Jenkins 作為開源 CI/CD 工具的領軍者,擁有超過 10 萬 GitHub Stars;Docker 的容器化技術解決了環境不一致問題;Git 則以其版本控制能力成為行業標準。隨著微服務和云原生架構的普及,自動化 CI/CD 管道需求激增,尤其在電商、金融和游戲行業。然而,Jenkins 的配置復雜性可能讓初學者望而卻步,需通過社區支持和實踐降低學習曲線。相比 GitLab CI,Jenkins 的靈活性和插件生態更適合復雜項目。

總結與升華

Jenkins、Docker 和 Git 的組合為自動化 CI/CD 提供了強大支持。從代碼提交到生產部署,每一步都通過自動化流程實現高效、穩定運行。在 2025 年的微服務和云原生時代,掌握這一組合不僅能提升開發效率,還能為業務創新注入動力。無論是縮短部署周期還是提高系統穩定性,自動化 CI/CD 都將成為您的得力助手。讓我們從現在開始,擁抱自動化,邁向高效開發的新高度!

部署不應是開發的阻力,而應成為加速的引擎。
通過 Jenkins、Docker 與 Git 三者協作,開發者可以真正專注業務邏輯,而不是陷于重復的發布流程之中。構建一次、部署無憂,讓 CI/CD 成為你的默認工作方式!

手動部署是體力活,自動化部署才是生產力!
別再讓上線像打仗,用 Jenkins + Docker + Git,把“部署”變成一場優雅的演出吧!

“Jenkins + Docker + Git,自動化 CI/CD,點燃您的開發未來!”

?

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

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

相關文章

Stream流中間方法的使用

Stream流的中間方法詳解 Stream流的中間方法指那些返回新Stream的操作&#xff0c;允許鏈式調用。這些方法通常用于數據過濾、映射、排序等操作&#xff0c;不會觸發最終計算。 filter方法 filter用于篩選滿足條件的元素&#xff0c;接受一個Predicate函數式接口參數。 Lis…

華為云Flexus+DeepSeek征文|華為云ModelArts結合FeedMe:開啟AI驅動的RSS閱讀新時代

華為云FlexusDeepSeek征文&#xff5c;華為云ModelArts結合FeedMe&#xff1a;開啟AI驅動的RSS閱讀新時代 前言一、華為云ModelArts Studio平臺介紹1.1 ModelArts Studio介紹1.2 ModelArts Studio主要特點1.3 ModelArts Studio使用場景1.4 ModelArts Studio產品架構 二、FeedMe…

華為云Flexus+DeepSeek征文 | 華為云ModelArts Studio新手入門:DeepSeek服務的配置與使用詳解

華為云FlexusDeepSeek征文 | 華為云ModelArts Studio新手入門&#xff1a;DeepSeek服務的配置與使用詳解 前言一、ModelArts Studio介紹1. 華為云ModelArts Studio簡介2. 華為云ModelArts Studio主要特點3. 華為云ModelArts Studio主要使用場景 二、ModelArts Studio平臺開通De…

Note2:機器學習基本攻略(Machine Learning by Hung-yi Lee)

目錄 基本思路 1.訓練資料上loss很大 1.1 model bias 1.2 optimazation&#xff08;優化不夠好&#xff09; 1.3如何確定是 model bias還是optimazation 解決方法 2.訓練資料上loss很小 2.1 Overfitting 解決方案 1.使用更多訓練資料 2.限制模型 2.2 Mismatch 3.…

使用ubuntu下的FAST和gfzrnx進行廣播星歷下載及版本之間的轉換

使用FAST下載混合的廣播星歷文件 cd FAST_V3.00.03 (進入文件夾) chmod x FAST (授權) chmod x bin/* ./FAST1 下載&#xff1a;https://gnss.gfz.de/services/gfzrnx/download &#xff08;需注冊&#xff09; 2 打開bash&#xff0c;依次輸入 (其中gfzrnx_2.1.12_lx64為下載…

vue裁剪圖片

有一個需求就是在你有倆張圖片一樣大小&#xff0c;一個亮色的&#xff0c;一個暗色的&#xff0c;亮色的根據后端返回的數據顯示多高&#xff0c;這樣就有一個感覺是慢慢往上走的&#xff0c;主要用到了css的一個屬性 .my-info-image {width: 280px;height: 200px;position: a…

使用GDAL庫統計不同分區內的災害點分布情況,計算災害相對密度等統計指標

主要功能是處理地理空間柵格數據&#xff08;TIFF文件&#xff09;和災害點數據&#xff08;CSV文件&#xff09;&#xff0c;統計不同分區內的災害點分布情況&#xff0c;并計算災害相對密度等統計指標。 TIFF文件&#xff1a;已經重分類后的文件 CSV文件&#xff1a;災害點…

jar 包如何下載

在 Javaweb - 2 中&#xff0c;我們導入了三那個 jar 包來進行服務端的 JSON 串格式轉換&#xff0c;這個為大家做一個如何下載那三個 jar 包的教程~ 打開倉庫網站 我們需要先打開一個倉庫網址&#xff1a;Maven Repository: Search/Browse/Explore 這個網址中&#xff0c;幾…

【vue3】打包配置webpack壓縮,哈希值設置

壓縮配置 依賴下載&#xff1a; npm i --save-dev compression-webpack-plugin vue.config.js配置 const CompressionWebpackPlugin require(compression-webpack-plugin);filenameHashing: true, // 打包后為文件名增加hash值// 配置webpackconfigureWebpack: config >…

vue3 + elementPlus 封裝hook,檢測form表單數據修改變更;示例用 script setup 語法使用

vue3 elementPlus 封裝hook,檢測form表單數據修改變更&#xff1b;示例 script setup 語法 原文&#xff1a;https://mp.weixin.qq.com/s/gCuqKskp-KBxdClxcpwFqw原文&#xff1a;https://mp.weixin.qq.com/s/gCuqKskp-KBxdClxcpwFqw原文&#xff1a;https://mp.weixin.qq.com…

Java-泛型類

一、泛型類的基本概念 1. 什么是泛型類 泛型類是指使用類型參數定義的類&#xff0c;可以在類定義時不指定具體類型&#xff0c;而在實例化時指定。 2. 泛型類的作用 類型安全&#xff1a;編譯時檢查類型匹配 消除強制轉換&#xff1a;減少運行時ClassCastException風險 代…

信任邊界的人生智慧

我曾經是個喜歡試探的人 總想知道朋友會不會在我困難時伸手&#xff0c;合作伙伴會不會在利益面前變臉&#xff0c;愛人會不會在誘惑下堅守 結果發現&#xff0c;每一次試探都像是在關系上撒鹽 不是因為對方經不起考驗&#xff0c;而是「考驗」這個行為本身就充滿了不信任的…

SQL Server 中 GO 的作用

CREATE DATABASE MyDatabase; USE MyDatabase; GO --定義局部變量 DECLARE s_no varchar(8), s_avgrade numeric(4,1); --對局部變量賦值 SET s_no 20170208; SET s_avgrade 95.0; --使用局部變量 UPDATE student SET s_avgrade s_avgrade WHERE s_no s_no;&#x1f31f; G…

指標中臺+大模型:解密衡石Agentic BI的NL2DSL架構實現

——Text2Metrics引擎如何攻克語義鴻溝&#xff0c;碾壓傳統NL2SQL方案 一、傳統NL2SQL的“架構原罪”&#xff1a;業務語義的失控黑洞 當某銀行嘗試用NL2SQL分析“高凈值客戶流失率”時&#xff0c;系統生成如下危險SQL&#xff1a; 這正是NL2SQL的三大架構缺陷&#xff1a;…

設計模式 - 抽象工廠

抽象工廠是對工廠的抽象化&#xff0c;而不只是制造方法。 為了滿足不同用戶對產品的多樣化需求&#xff0c;工廠不會只局限于生產一類產品&#xff0c;但是系統如果按工廠方法那樣為每種產品都增加一個工廠又會造成工廠泛濫。所以&#xff0c;為了調和這種矛盾&#xff0c;抽…

面向對象Plus(2/2)

目錄 面向對象Plus(qianwen) 一.面向對象三大特性 封裝 繼承 多態 二.多態 1.了解多態 2.體驗多態 三.類屬性和實例屬性 1.類屬性 a.設置和訪問類屬性 類屬性的優點 b.修改類屬性 四.類方法和靜態方法 1.類方法 a.類方法特點 b.類方法應用場景 2.靜態方法 a…

MocapApi 中文文檔 和github下載地址 NeuronDataReader(以下簡稱 NDR)的下一代編程接口

以下是 MocapApi 技術文檔 github https://github.com/pnmocap/MocapApi?tabreadme-ov-file 國內可以查找getcode 英文文檔 https://mocap-api.noitom.com/mocap_api_en.html 概述 MocapApi 是 NeuronDataReader&#xff08;以下簡稱 NDR&#xff09;的下一代編程接口&…

STM32歷史、命名、Flash、工作頻率

目錄 命名: Flash: 工作頻率&#xff1a; 復位&#xff1a; 低功耗模式&#xff1a; IO端口&#xff1a; JATG: 看門狗定時器&#xff1a; STM是一家半導體公式&#xff0c;專門做芯片的&#xff0c;STM32是指32位的微處理器&#xff0c;其中芯片的架構是ARM結構的&#…

了解公共部門中的數據網格:支柱、架構和示例

作者&#xff1a;來自 Elastic Elastic Platform Team 想想那些像公共健康記錄、城市規劃模型等項目背后的所有數據。政府機構一直在產生大量數據。當數據分散在云平臺、本地系統或像衛星和應急響應中心這樣的專業環境中時&#xff0c;情況變得更加復雜。找到信息變得困難&…

阿里云ACP-檢索分析服務

當數據量爆炸增長&#xff0c;并且需要提供全文檢索功能&#xff0c;需要有效的數據檢索能力 用什么數據庫怎么保證安全性如何解決統計分析問題如何解決單點故障如何解決檢索難題 應對方案&#xff1a; 關系型數據庫&#xff1a;主從備份解決數據安全性問題&#xff0c;數據…