Jenkins--從入門到入土

Jenkins–從入門到入土

文章目錄

  • Jenkins--從入門到入土
    • 〇、概念提要--什么是CI/DI?
      • 1、CI(Continuous Integration,持續集成)
      • 2、DI(DevOps Integration,DevOps 集成)
      • 3、解決的問題
    • 一、Jenkins安裝部署
      • 1、什么是Jenkins?
      • 2、Jenkins在開發過程中所屬位置
      • 3、安裝硬件環境和知識儲備
      • 4、安裝
        • 4.1、下載war啟動
        • 4.2、Docker啟動
        • 4.3、windows使用驅動安裝
      • 5、使用插件自定義 Jenkins
      • 6、創建第一個管理員用戶
    • 二、Jenkins配置
      • 1、環境配置
        • 1.1、更換站點鏡像
        • 1.2、全局工具的配置
      • 2、用戶權限配置
      • 3、插件介紹
    • 三、配置自動化任務--自由風格
      • 1、兩種執行方法
      • 2、安裝插件
      • 3、搭建GitLab
        • 3.1、從docker compose快速搭建GitLab
        • 3.2、上傳到服務器
      • 4、github整合Jenkins
        • 4.1、關聯github
        • 4.2、Jenkins中的github的配置
        • 4.3、新建任務
        • 4.4、立即構建
        • 4.5、Github代碼更新之后觸發構建
    • 四、配置自動化任務--Pipeline
      • 1、安裝Blue Ocean插件
      • 2、新建Github測試項目
      • 3、編寫Jenkinsfile文件
      • 4、推送到github項目中
      • 5、操作流水線Blue Ocean
      • 6、選擇倉庫創建流水線

溫馨提示:由于本文檔寫的比較雜,基本講了很多東西,所以自己根據目錄篩選自己需要的部分。

〇、概念提要–什么是CI/DI?

1、CI(Continuous Integration,持續集成)

  • 定義:持續集成是一種軟件開發實踐,開發人員頻繁地將代碼更改集成到共享代碼庫中。每次集成都觸發自動構建和測試,以盡早發現錯誤并提高軟件質量。
  • 關鍵特點
    • 頻繁集成:開發人員每天多次將代碼提交到版本控制系統。
    • 自動化構建和測試:每次提交代碼后,系統會自動構建項目并運行自動化測試。
    • 快速反饋:開發人員可以迅速知道他們的代碼是否引入了錯誤。
    • 集成工具:常用工具包括Jenkins、Travis CI、CircleCI等。

2、DI(DevOps Integration,DevOps 集成)

  • 定義:DevOps集成是一種將開發和運維團隊的工作流程、工具和文化相結合的實踐,旨在提高軟件開發和交付的速度和質量。
  • 關鍵特點
    • 自動化:通過自動化的構建、測試、部署和監控,減少手動干預,降低錯誤率。
    • 持續交付(CD):實現代碼從開發到生產環境的自動化部署。
    • 協作:開發和運維團隊緊密合作,共享責任,共同優化流程。
    • 常用工具:包括Docker、Kubernetes、Ansible、Puppet、Chef等。

3、解決的問題

CI和DI在計算機領域分別強調持續集成和DevOps實踐中的集成部分,通過自動化和協作提高軟件開發和交付的效率和質量。

持續的集成部署解決了很多問題,使得工作變成一種流程的形式,我們就負責編碼(code)的內容,其他環節都是自動化的部署完成。

image-20240524153806030

“You build it , you run it !”

一、Jenkins安裝部署

1、什么是Jenkins?

image-20240521144411533

Build great things at any scale,The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.

Jenkins官方 ,Jenkins是開源CI&CD軟件領導者, 提供超過1000個插件來支持構建、部署、自動化, 滿足任何項目的需要。

Jenkins文檔下載

2、Jenkins在開發過程中所屬位置

主流軟件開發流程:

Jenkins在Kubernetes中持續部署

3、安裝硬件環境和知識儲備

機器要求:

  • 256 MB 內存,建議大于 512 MB

  • 10 GB 的硬盤空間(用于 Jenkins 和 Docker 鏡像)

環境要求:

  • Java8(由于Jenkins是由Java語言編寫,所以需要 JRE 或者 JDK環境)
  • Docker (導航到網站頂部的Get Docker鏈接以訪問適合您平臺的Docker下載

4、安裝

4.1、下載war啟動
  1. 下載War包:http://mirrors.jenkins.io/war-stable/latest/jenkins.war

    mkdir -p /opt/jenkins
    wget -O /opt/jenkins/jenkins.war http://mirrors.jenkins.io/war-stable/latest/jenkins.war
    
  2. 打開終端進入到下載目錄.

     cd /opt/jenkins
    
  3. 運行命令 java -jar jenkins.war --httpPort=8080.

    java -jar jenkins.war --httpPort=8080
    
  4. 打開瀏覽器進入鏈接 http://localhost:8080.

    image-20240524105733698

  5. 按照說明完成安裝.

參考鏈接https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/

4.2、Docker啟動

docker安裝文檔:在CentOS中安裝Docker

  1. 搜索Docker鏡像:

    版本選擇:

    Jenkins: https://hub.docker.com/r/jenkins/jenkins/

    Jenkins with Blue Ocean: https://hub.docker.com/r/jenkinsci/blueocean

    image-20240522180452702

    使用命令:

    docker pull jenkins/jenkins#24版本的docker鏡像,因為我發現存在問題,當安裝依賴的時候,換個版本可以。
    docker pull  jenkins/jenkins:2.459-jdk17
    
  2. 在Docker中設置橋接網絡

    docker network create jenkins
    
  3. 啟動(三組命令,自行甄別)

    # 官方給出的命令
    docker run \--name jenkins-docker \--rm \--detach \--privileged \--network jenkins \--network-alias docker \--env DOCKER_TLS_CERTDIR=/certs \--volume jenkins-docker-certs:/certs/client \--volume jenkins-data:/var/jenkins_home \--publish 2376:2376 \docker:dind \--storage-driver overlay2# Jenkins
    docker run \-itd \-u root \-p 8080:8080 \-v jenkins-data:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \-v /usr/bin/docker:/usr/bin/docker \--name jenkins-master \jenkins/jenkins#Jenkins blueoceandocker run  \-itd  \-u root   \-p 8080:8079   \-v jenkins-data:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock  \-v /usr/bin/docker:/usr/bin/docker \--name jenkins-master \jenkinsci/blueocean# Jenkins 2.459 版本docker run  \-itd  \-u root   \-p 8080:8080   \-v jenkins-data:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock  \-v /usr/bin/docker:/usr/bin/docker \--name jenkins-master \jenkins/jenkins:2.459-jdk17
  4. 查看啟動狀態:

    docker ps
    

    image-20240524162358779

  5. 查看日志

    docker logs jenkins-master  
    

    后面的參數是容器的參數,重點看下面這個:

    image-20240524162519031

  6. 訪問:http://192.168.200.128:2376/

參考文檔:https://www.jenkins.io/doc/book/installing/docker/

4.3、windows使用驅動安裝
  1. 首先下載鏡像:官網

    image-20240522185553500

  2. 確保安裝了Java環境,并且安裝環境變量,我這里使用JDK 21演示

    image-20240522185714105

  3. Jenkins啟動

    image-20240522185926936

    image-20240522190957509

    image-20240522191052458

    image-20240522191140747

    image-20240522191216798

    image-20240522191230811

    image-20240522191245707

    image-20240522191257725

    安裝完成!

  4. 打開安裝目錄,我的在E:\Software\Jenkins,安裝中有涉及,請留意。

    image-20240522191642821

  5. 打開jenkins.xml配置文件,設置Jenkins環境變量和Java環境變量

    image-20240522192012862

    換成:

    image-20240522192342863

    但是我發現配置不修改應該也是可以運行的,只是官方這樣操作的,我只換了JAVA_HOME

  6. 搜索service,打開Jenkins服務。

    image-20240522193156980

    在這里插入圖片描述

  7. 瀏覽器訪問預先設置好的端口http://localhost:8079/:

    image-20240522193448151

  8. 查看管理員密碼image-20240522193720322

    image-20240522193800820

5、使用插件自定義 Jenkins

解鎖 Jenkins后,會出現**“自定義 Jenkins”**頁面。在這里,您可以安裝任意數量的有用插件作為初始設置的一部分。

單擊顯示的兩個選項之一:

  • 安裝建議的插件- 安裝推薦的插件集,這些插件基于最常見的用例。
  • 選擇要安裝的插件- 選擇最初安裝的插件集。當您第一次訪問插件選擇頁面時,默認選擇建議的插件。

設置向導顯示 Jenkins 的配置進度以及您選擇的 Jenkins 插件安裝集。此過程可能需要幾分鐘。

如果不確定需要什么插件,請選擇安裝建議的插件。您可以稍后通過 Jenkins 中的管理 Jenkins > 插件頁面安裝(或刪除)其他 Jenkins 插件。

6、創建第一個管理員用戶

最后,在使用插件自定義 Jenkins后,Jenkins 會要求您創建第一個管理員用戶。

  1. 當**“創建第一個管理員用戶”**頁面出現時,在相應字段中指定管理員用戶的詳細信息,然后單擊“保存并完成”
  2. Jenkins 就緒頁面出現時,單擊Start using Jenkins
  3. 如果需要,請使用您剛剛創建的用戶憑據登錄 Jenkins,然后就可以開始使用 Jenkins 了!

二、Jenkins配置

1、環境配置

1.1、更換站點鏡像

具體流程:

image-20240524170556997

將升級站點的URL更換成清華鏡像:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json

這樣插件下載就會從鏡像進行下載,相對來說下載更快。

1.2、全局工具的配置

image-20240524180523227

  • JDK:

    image-20240524180548087

  • Git:

    image-20240524180612658

還有其他環境中的工具配置。

2、用戶權限配置

  • 矩陣權限的配置

  • 添加管理員用戶所有的權限

  • 添加Authorize Project | Jenkins plugin)插件,并且在系統管理中進行配置。配置邏輯,就給用戶當前項目的矩陣權限!

    示例:

    image-20240524180316934

3、插件介紹

  • Publish over SSH

    這個是一個遠程Shell工具,可以遠程去執行一些shell命令

  • HTTP Request Plugin

    跨平臺調用,在構建前后可以通過該插件以http形式調用各種api接口實現和內部系統的聯動

  • Publish Over FTP

    用于遠程使用FTP發布,比較合適于靜態資源的發布。

  • Performance Plugin

? 該插件可以讀取和解析測試框架輸出的報告,并且在 Jenkins 上繪制性能和穩定性相關的圖表。Performance Plugin 支持的測試框架有 JUnit、JMeter, Twitter 的 Lago 和 Taurus。

? https://plugins.jenkins.io/performance

  • Gitlab Merge Request Builder Plugin

? Gitlab Merge Request Builder Plugin 可以方便的自動發起代碼審查,它在創建 pull request 的時候,會自動帶上關聯任務的運行結果,以方便代碼審查著確認改動的正確性。

? 同時,這款插件還支持自動合并,既在代碼審查通過后自動合并該 pull request 內容。

? https://github.com/timols/jenkins-gitlab-merge-request-builder-plugin

  • JIRA Plugin

? JIRA Plugin 可以讓 Jenkins 任務和 JIRA 集成起來,這樣項目管理者可以通過 JIRA 了解項目進度,開發者也可以通過該插件直接更改 JIRA 上的 issue 狀態。

? https://plugins.jenkins.io/jira

  • Kubernetes Plugin

? 和最近大熱的容器編排框架 Kubernetes 集成當然不能落下了。另外,Jenkins 對執行機的管理一直比較弱,無法做到快速的擴容和縮容。Kubernetes Plugin 通過引入 Kubernetes 的容器編排能力,讓 Jenkins 執行機運行在 Kubernetes 環境中。

? https://github.com/jenkinsci/kubernetes-plugin

  • Build Pipeline plugin

    https://github.com/jenkinsci/build-pipeline-plugin

? 對一個系統的持續集成會包含很多個方面,如果將它們都雜糅在一個 Jenkins 任務中,會提高排查成本,也不利于整個持續集成的運作。Build Pipeline plugin 可以讓項目管理員針對系統持續集成步驟設置一系列關聯的任務,任務之間可以設置不同的觸發條件,以確認何時需要人工介入。該插件可以讓整個持續集成流程變得非常直觀:

image-20240524181357541

上述內容部分參考于鏈接:https://www.jianshu.com/p/6bcb2853fae2

三、配置自動化任務–自由風格

1、兩種執行方法

  • 配置自由風格的項目
  • 配置Pipeline使用Jenkinsfile

2、安裝插件

  • 版本控制

    • github
    • gitlab

    image-20240524182419991

  • SSH

    • SSH
    • Publish Over SSH
    • SSH Agent
    • SSH Pipeline Steps

    image-20240524182126772

3、搭建GitLab

3.1、從docker compose快速搭建GitLab

這里我們使用GitLab來測試。

使用docker compose在docker環境下快速部署:

搭建docker compose環境參考文章:docker compose快速安裝

學習docker compose參考文章(本篇博客不需要,只是推薦學習)DockerCompose(初識、安裝、部署) Docker Compose 命令說明文檔

docker-compose.yaml文件鏈接:https://github.com/sameersbn/docker-gitlab/blob/master/docker-compose.yml

image-20240524183353761

可以點擊下載,也可以新建docker-compose.yaml文件,將內容復制粘貼。

也可以直接復制(但是建議從官網下載,可能版本會更新之類的):

version: '2.3'services:redis:restart: alwaysimage: redis:6.2command:- --loglevel warningvolumes:- redis-data:/data:Zpostgresql:restart: alwaysimage: sameersbn/postgresql:14-20230628volumes:- postgresql-data:/var/lib/postgresql:Zenvironment:- DB_USER=gitlab- DB_PASS=password- DB_NAME=gitlabhq_production- DB_EXTENSION=pg_trgm,btree_gistgitlab:restart: alwaysimage: sameersbn/gitlab:17.0.0depends_on:- redis- postgresqlports:- "10080:80"- "10022:22"volumes:- gitlab-data:/home/git/data:Zhealthcheck:test: ["CMD", "/usr/local/sbin/healthcheck"]interval: 5mtimeout: 10sretries: 3start_period: 5menvironment:- DEBUG=false- DB_ADAPTER=postgresql- DB_HOST=postgresql- DB_PORT=5432- DB_USER=gitlab- DB_PASS=password- DB_NAME=gitlabhq_production- REDIS_HOST=redis- REDIS_PORT=6379- TZ=Asia/Kolkata- GITLAB_TIMEZONE=Kolkata- GITLAB_HTTPS=false- SSL_SELF_SIGNED=false- GITLAB_HOST=- GITLAB_PORT=10080- GITLAB_SSH_PORT=10022- GITLAB_RELATIVE_URL_ROOT=- GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string- GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string- GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string- GITLAB_ROOT_PASSWORD=- GITLAB_ROOT_EMAIL=- GITLAB_NOTIFY_ON_BROKEN_BUILDS=true- GITLAB_NOTIFY_PUSHER=false- GITLAB_EMAIL=notifications@example.com- GITLAB_EMAIL_REPLY_TO=noreply@example.com- GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com- GITLAB_BACKUP_SCHEDULE=daily- GITLAB_BACKUP_TIME=01:00- SMTP_ENABLED=false- SMTP_DOMAIN=www.example.com- SMTP_HOST=smtp.gmail.com- SMTP_PORT=587- SMTP_USER=mailer@example.com- SMTP_PASS=password- SMTP_STARTTLS=true- SMTP_AUTHENTICATION=login- IMAP_ENABLED=false- IMAP_HOST=imap.gmail.com- IMAP_PORT=993- IMAP_USER=mailer@example.com- IMAP_PASS=password- IMAP_SSL=true- IMAP_STARTTLS=false- OAUTH_ENABLED=false- OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=- OAUTH_ALLOW_SSO=- OAUTH_BLOCK_AUTO_CREATED_USERS=true- OAUTH_AUTO_LINK_LDAP_USER=false- OAUTH_AUTO_LINK_SAML_USER=false- OAUTH_EXTERNAL_PROVIDERS=- OAUTH_CAS3_LABEL=cas3- OAUTH_CAS3_SERVER=- OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false- OAUTH_CAS3_LOGIN_URL=/cas/login- OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate- OAUTH_CAS3_LOGOUT_URL=/cas/logout- OAUTH_GOOGLE_API_KEY=- OAUTH_GOOGLE_APP_SECRET=- OAUTH_GOOGLE_RESTRICT_DOMAIN=- OAUTH_FACEBOOK_API_KEY=- OAUTH_FACEBOOK_APP_SECRET=- OAUTH_TWITTER_API_KEY=- OAUTH_TWITTER_APP_SECRET=- OAUTH_GITHUB_API_KEY=- OAUTH_GITHUB_APP_SECRET=- OAUTH_GITHUB_URL=- OAUTH_GITHUB_VERIFY_SSL=- OAUTH_GITLAB_API_KEY=- OAUTH_GITLAB_APP_SECRET=- OAUTH_BITBUCKET_API_KEY=- OAUTH_BITBUCKET_APP_SECRET=- OAUTH_BITBUCKET_URL=- OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL=- OAUTH_SAML_IDP_CERT_FINGERPRINT=- OAUTH_SAML_IDP_SSO_TARGET_URL=- OAUTH_SAML_ISSUER=- OAUTH_SAML_LABEL="Our SAML Provider"- OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient- OAUTH_SAML_GROUPS_ATTRIBUTE=- OAUTH_SAML_EXTERNAL_GROUPS=- OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL=- OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME=- OAUTH_SAML_ATTRIBUTE_STATEMENTS_USERNAME=- OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME=- OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME=- OAUTH_CROWD_SERVER_URL=- OAUTH_CROWD_APP_NAME=- OAUTH_CROWD_APP_PASSWORD=- OAUTH_AUTH0_CLIENT_ID=- OAUTH_AUTH0_CLIENT_SECRET=- OAUTH_AUTH0_DOMAIN=- OAUTH_AUTH0_SCOPE=- OAUTH_AZURE_API_KEY=- OAUTH_AZURE_API_SECRET=- OAUTH_AZURE_TENANT_ID=volumes:redis-data:postgresql-data:gitlab-data:

打開編輯文件內容:

image-20240524184143182

3.2、上傳到服務器
  1. 新建文件夾:

    mkdir /home/gitlab
    
  2. 上傳文件docker-compose.yaml,也可以新建文件,將內容粘貼過去。

    image-20240524184829197

  3. 啟動docker compose

    docker-compose up -d
    
    • -d參數:后臺啟動。
  4. 使用docker ps命令可以看見新增的三個docker容器:

    image-20240524190730297

  5. 瀏覽器訪問:192.168.200.128:80即可進入GitLab的頁面。

    本來我想用GitLab來整合Jenkins,但是服務器資源受限,沒有配置成功,我換成了github來演示。

4、github整合Jenkins

4.1、關聯github
  1. 打開github,找到Settings,找到Developer Settings,打開Psonal access tokens中的Tokens (classic),點擊Generate a personal access token生成新的token。

    image-20240526132053005

  2. 填寫Note,勾選下面的兩個選項。

    image-20240526132356069

  3. 點擊生成

    image-20240526132451337

  4. 確保復制你的token,請確保立即復制您的個人訪問令牌。你再也看不到了!

    image-20240526132524834

  5. 選擇你的項目,創建webhook

    image-20240526143036767

4.2、Jenkins中的github的配置

打開設置:

image-20240526153927365

在設置中找到github的選項(往下劃),按照如下操作,添加Github服務器:

image-20240526153403520

上述第4步添加憑據,注意:必須是具有操作權限的github的賬戶!!

image-20240526153618578

添加并保存退出即可!

4.3、新建任務
  1. 新建Item

    image-20240526154453857

  2. General

  • 添加描述:

image-20240526154548087

  • 添加Github項目地址:

image-20240526154812220

  1. 源碼管理:

    • image-20240526155132270

    • 添加Credentials:本篇博客的4.2中的第四步講到,操作相同,不再贅述。

    • 設置分支

      image-20240526155347509

  2. 構建觸發器:

    image-20240526170308832

  3. 構建環境

    image-20240526155751453

    憑據沒有的話直接添加就行:

    image-20240526160018806

  4. Build Steps:構建步驟:

    • Set build status to “pending” on GitHub commit

      image-20240526160247886

    • 執行 shell

      image-20240526160401586

  5. 構建后操作

    image-20240526160506678

  6. 最后設置完畢保存即可。

來自曼諾爾雷迪亞茲的提示:上述的配置項只是為了了解并熟悉Jenkins,并且進行快速入門,具體的配置詳情可以根據業務需求和個人喜好來具體設置不同的參數。

4.4、立即構建

image-20240526162042927

image-20240526162214977

image-20240526162240293

查看控制臺輸出:

image-20240526162259337

image-20240526162415535

4.5、Github代碼更新之后觸發構建
  1. 對代碼進行更新并推送

    image-20240526162935826

    Github代碼:

    image-20240526163014754

  2. 自動構建:

    image-20240526170200399

  3. 構建成功

    image-20240526170342899

四、配置自動化任務–Pipeline

1、安裝Blue Ocean插件

image-20240526172129605

image-20240526172511622

image-20240526172607753

返回控制臺就可以看見:

image-20240526172621220

2、新建Github測試項目

image-20240526172747746

我克隆在本地了,因為我要添加一個文件,也可以在Github中添加文件:

本地:

image-20240526172911488

github:

image-20240526172932672

3、編寫Jenkinsfile文件

Jenkins流水線官方中文文檔 學習Jenkins流水線。

在項目中新建文件Jenkinsfile,文件內容如下:

pipeline {agent {docker{images 'node:10'args '-p 20000:8080'}} stages {stage('Build') { steps {sh 'node -v'sh 'echo "hello world !!"'}}// stage('Test') { //     steps {//         // //     }// }// stage('Deploy') { //     steps {//         // //     }// }}
}

這個 Jenkins Pipeline 使用 Docker 作為代理,在一個包含 Node.js 的 Docker 容器中執行構建步驟。

4、推送到github項目中

image-20240526174313173

5、操作流水線Blue Ocean

  1. 打開Blue Ocean

    image-20240526174406531

  2. 創建流水線

    image-20240526174901301

    需要注意的是,這里的token權限必須要有repo和user:emil才可以,沒有的話重新創建token,參照本博客4.1.

    image-20240526174756762

6、選擇倉庫創建流水線

image-20240526175156571

創建中:

image-20240526175242020

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

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

相關文章

iOS 開發系列:基于VNRecognizeTextRequest識別圖片文字

1.添加Vision Kit依賴 在項目設置中點擊"General"選項卡,然后在"Frameworks, Libraries, and Embedded Content"(框架、庫和嵌入內容)部分,點擊""按鈕。搜索并選擇"Vision.framework"。…

[AIGC] flink sql 消費kafka消息,然后寫到mysql中的demo

這是一個使用 Flink SQL 從 Kafka 中消費數據并寫入 MySQL 的示例。在這個示例中,我們將假設有一個 Kafka 主題 “input_topic”,它產生格式為 (user_id: int, item_id: int, behavior: string, timestamp: long) 的數據,我們需要把這些數據寫…

world machine學習筆記(4)

選擇設備: select acpect: heading:太陽的方向 elevation:太陽的高度 select colour:選擇顏色 select convexity:選擇突起(曲率) select height:選擇高度 falloff&a…

用常識滾雪球:拼多多的內生價值,九年的變與不變

2024年5月22日,拼多多公布了今年一季度財報,該季度拼多多集團營收868.1億元,同比增長131%,利潤306.0億,同比增長了202%,數據亮眼。 市場對拼多多經歷了“看不見”、“看不懂”、“跟不上”三個階段。拼多多…

Vue.js條件渲染與列表渲染指南

title: Vue.js條件渲染與列表渲染指南 date: 2024/5/26 20:11:49 updated: 2024/5/26 20:11:49 categories: 前端開發 tags: VueJS前端開發數據綁定列表渲染狀態管理路由配置性能優化 第1章:Vue.js基礎與環境設置 1.1 Vue.js簡介 Vue.js (讀音:/vju…

SwiftUI中的Slider的基本使用

在SwiftUI中,可以使用Slider視圖創建一個滑動條,允許用戶從范圍中選擇一個值。通過系統提供的Slider,用起來也很方便。 Slider 先看一個最簡單的初始化方法: State private var sliderValue: Float 100var body: some View {V…

[AIGC] mac os 中 .DS_Store 是什么

.DS_Store 是在 MacOS 系統中由 Finder 應用程序創建和維護的一種隱藏文件,用于保存有關其所在目錄的自定義屬性,例如圖標位置或背景顏色。 “.DS_Store” 是 “Desktop Services Store” 的縮寫。 .DS_Store 的作用 .DS_Store 文件在每個 Mac OS X 文…

ollama 使用,以及指定模型下載地址

ollama windows 使用 官網: https://ollama.com/ windows 指定 models 下載地址 默認會下載在C盤 ,占用空間 在Windows系統中,可以通過設置環境變量OLLAMA_MODELS來指定模型文件的下載和存儲路徑。具體操作步驟如下: 1.打開系統…

【python006】miniconda3環境搭建(非root目錄,最近更新中)

1.熟悉、梳理、總結項目研發實戰中的Python開發日常使用中的問題。 2.歡迎點贊、關注、批評、指正,互三走起來,小手動起來! 文章目錄 1.背景介紹2. 1.背景介紹 環境移植,可能影響部署本機環境信息,探索、總結移植有效…

輕量化微調相關學習

輕量化微調(Lightweight Fine-Tuning)是指在大型預訓練模型基礎上,通過修改或添加少量參數來進行模型適應性調整的一種方法,旨在減少計算資源消耗和避免過擬合問題,同時保持模型的性能。這種方法特別適用于資源有限或需…

一個程序員的牢獄生涯(36)夾帶

星期一 夾 帶 鄭所和小X州在小院子里說著話,盡管我豎起耳朵想要聽到他們的說話內容。但因為他們的說話聲音很低,我努力半天后,什么都聽不清。只能看到小X州恭恭敬敬的站在鄭所面前,不時地點頭答應著的樣子。 沒過多長時間,小X州從院子里返回了號子。我注意到他的臉上帶著一…

15、設計模式之責任鏈模式

責任鏈模式 顧名思義,責任鏈模式(Chain of Responsibility Pattern)為請求創建了一個接收者對象的鏈。這種模式給予請求的類型,對請求的發送者和接收者進行解耦。這種類型的設計模式屬于行為型模式。 在這種模式中,通…

搜索引擎--ES基礎概念

ES是一款開源的搜索引擎&#xff0c;相比于mysql&#xff0c;它提供了非常強大的搜索功能 下面我們需要簡單的了解一下ES相比于mysql中的一些基本概念的區別&#xff1a; 首先我們要知道es在存儲數據的時候都是以json格式來存儲的 mysql <------> ES&#xff1a; table…

【九十四】【算法分析與設計】練習四蠻力法練習,排列問題和組合問題,求解最大連續子序列和問題,求解冪集問題,求解0/1背包問題,求解任務分配問題

求解最大連續子序列和問題 給定一個有n&#xff08;n≥1&#xff09;個整數的序列&#xff0c;要求求出其中最大連續子序列的和。 例如&#xff1a; 序列&#xff08;-2&#xff0c;11&#xff0c;-4&#xff0c;13&#xff0c;-5&#xff0c;-2&#xff09;的最大子序列和為20…

pymysql.err.OperationalError: (1030, ‘Got error 168 from storage engine‘)

錯誤 pymysql.err.OperationalError: (1030, Got error 168 from storage engine) 通常與MySQL的InnoDB存儲引擎相關&#xff0c;它指示你試圖進行的操作超出了存儲引擎的能力或資源限制。具體來說&#xff0c;MySQL錯誤代碼168&#xff08;或“ER_TABLE_NEEDS_UPGRADE”&#…

[處理器芯片]-6 超標量CPU實現之浮點運算

1 浮點運算單元FPU 超標量CPU中的浮點運算單元是專門處理浮點數運算的關鍵組件。浮點運算單元的設計涉及多個復雜的子模塊和技術&#xff0c;以保證高效、準確地執行浮點數的加減法、乘法、除法、平方根等操作。 1&#xff09;浮點數術語 浮點數通常采用IEEE 754標準表示&…

顯示IPS技術

顯示器的IPS&#xff08;In-Plane Switching&#xff0c;平面轉換&#xff09;技術是一種先進的液晶面板技術&#xff0c;由日立公司在2001年推出。該技術優化了液晶分子的排列方式&#xff0c;采取水平排列&#xff0c;使得分子結構在遇到外界壓力時仍能保持穩定&#xff0c;不…

第 33 次CCF認證

1. 詞頻統計 題目描述 樣例輸入 代碼 #include <bits/stdc.h>using namespace std;int main() {int n,m;cin>>n>>m;vector<int> ans1(m,0),ans2(m,0);while (n --) {int t;cin>>t;vector<int> vis(m1,0);for (int i 1;i < t;i ) {i…

python去除html中<div>等

用beautifulsoup并不能將全部的去除得到剩余的txt&#xff0c;特別在興趣段找關鍵字的時候。 使用re模塊可以實現這個功能。 for a in a_d:em_name str(a.find(em))pattern re.compile(r<[^>]>, re.S)result pattern.sub(, em_name)result result.strip(\n)name_…

Spring Boot 中的HTTP請求方式詳解:優缺點與代碼示例

在Spring Boot中&#xff0c;有多種方式可以發起HTTP請求。主要的工具包括RestTemplate、WebClient和增強的AsyncRestTemplate。本文將詳細介紹每種請求方式及其優缺點&#xff0c;并給出代碼示例。 1. RestTemplate RestTemplate 是 Spring 提供的一個用于同步 HTTP 請求的客…