如何在 Amazon EC2 上部署 Java(Spring Boot 版)

讓我們學習如何將 Java Spring Boot Web 服務器部署到 Amazon EC2。每月只需 3 美元。
使用 Azure,您可能不知道要花費多少錢。

Spring Boot 項目示例


在本教程中,我們將重點介紹如何將 Java Spring Boot 服務器部署到 Amazon EC2,因此我們不會學習如何從頭開始構建 Spring Boot Web 服務。

啟動 Amazon Linux EC2 實例


首先,編寫下面的main.tf文件

provider "aws" {region = "ap-southeast-2"
}resource "aws_instance" "example_server" {ami           = "ami-0f6a1a6507c55c9a8"instance_type = "t2.micro"key_name = "rockaws"tags = {Name = "RockSpringBootExample"}
}

?運行terraform apply 來創建EC2。

ninjamac@ip-192-168-1-2 target % terraform apply  Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:+ createTerraform will perform the following actions:# aws_instance.example_server will be created
Plan: 1 to add, 0 to change, 0 to destroy.Do you want to perform these actions?Terraform will perform the actions described above.Only 'yes' will be accepted to approve.Enter a value: yesaws_instance.example_server: Creating...
aws_instance.example_server: Still creating... [10s elapsed]
aws_instance.example_server: Creation complete after 16s [id=i-0d3b6e22f089bebf2]

通過 SSH 連接到 EC2 實例

ninjamac@ip-192-168-1-2 key % ssh -i rockaws.pem ec2-user@13.211.xx.xxThe authenticity of host '13.211.xx.xx (13.211.xx.xx)' can't be established.
ED25519 key fingerprint is SHA256:Q45g4PVqKnhtTnw9KQnWXnF5LoeOAFQ7qH2khVmw+Hg.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '13.211.xx.xx' (ED25519) to the list of known hosts.,     #_~\_  ####_        Amazon Linux 2023~~  \_#####\~~     \###|~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023~~       V~' '->~~~         /~~._.   _/_/ _/_/m/'

在 Amazon Linux 上安裝 Java 17

[ec2-user@ip-172-31-14-36 ~]$ sudo yum install java-17-amazon-corretto-headless -y
Amazon Linux 2023 Kernel Livepatch repository   133 kB/s |  15 kB     00:00    
Dependencies resolved.
================================================================================Package                      Arch   Version                  Repository   Size
================================================================================
Installing:java-17-amazon-corretto-headlessx86_64 1:17.0.14+7-1.amzn2023.1 amazonlinux  91 M
Installing dependencies:alsa-lib                     x86_64 1.2.7.2-1.amzn2023.0.2   amazonlinux 504 kcairo                        x86_64 1.18.0-4.amzn2023.0.1    amazonlinux 718 kdejavu-sans-fonts            noarch 2.37-16.amzn2023.0.2     amazonlinux 1.3 Mdejavu-sans-mono-fonts       noarch 2.37-16.amzn2023.0.2     amazonlinux 467 kdejavu-serif-fonts           noarch 2.37-16.amzn2023.0.2     amazonlinux 1.0 Mfontconfig                   x86_64 2.13.94-2.amzn2023.0.2   amazonlinux 273 kfonts-filesystem             noarch 1:2.0.5-12.amzn2023.0.2  amazonlinux 9.5 kfreetype                     x86_64 2.13.2-5.amzn2023.0.1    amazonlinux 423 kgoogle-noto-fonts-common     noarch 20201206-2.amzn2023.0.2  amazonlinux  15 kgoogle-noto-sans-vf-fonts    noarch 20201206-2.amzn2023.0.2  amazonlinux 492 kgraphite2                    x86_64 1.3.14-7.amzn2023.0.2    amazonlinux  97 kharfbuzz                     x86_64 7.0.0-2.amzn2023.0.2     amazonlinux 873 kjavapackages-filesystem      noarch 6.0.0-7.amzn2023.0.6     amazonlinux  12 klangpacks-core-font-en       noarch 3.0-21.amzn2023.0.4      amazonlinux  10 klibX11                       x86_64 1.8.10-2.amzn2023.0.1    amazonlinux 659 klibX11-common                noarch 1.8.10-2.amzn2023.0.1    amazonlinux 147 klibXau                       x86_64 1.0.11-6.amzn2023.0.1    amazonlinux  33 klibXext                      x86_64 1.3.6-1.amzn2023.0.1     amazonlinux  42 klibXrender                   x86_64 0.9.11-6.amzn2023.0.1    amazonlinux  29 klibbrotli                    x86_64 1.0.9-4.amzn2023.0.2     amazonlinux 315 klibjpeg-turbo                x86_64 2.1.4-2.amzn2023.0.5     amazonlinux 190 klibpng                       x86_64 2:1.6.37-10.amzn2023.0.6 amazonlinux 128 klibxcb                       x86_64 1.17.0-1.amzn2023.0.1    amazonlinux 235 kpixman                       x86_64 0.43.4-1.amzn2023.0.4    amazonlinux 296 kxml-common                   noarch 0.6.3-56.amzn2023.0.2    amazonlinux  32 kTransaction Summary
================================================================================
Install  26 PackagesTotal download size: 99 M
Installed size: 260 M
Downloading Packages:
(1/26): alsa-lib-1.2.7.2-1.amzn2023.0.2.x86_64. 6.8 MB/s | 504 kB     00:00    
(2/26): cairo-1.18.0-4.amzn2023.0.1.x86_64.rpm  8.4 MB/s | 718 kB     00:00    
(3/26): dejavu-sans-fonts-2.37-16.amzn2023.0.2.  13 MB/s | 1.3 MB     00:00    
(4/26): dejavu-sans-mono-fonts-2.37-16.amzn2023  11 MB/s | 467 kB     00:00    
(5/26): dejavu-serif-fonts-2.37-16.amzn2023.0.2  26 MB/s | 1.0 MB     00:00    
(6/26): fontconfig-2.13.94-2.amzn2023.0.2.x86_6 5.4 MB/s | 273 kB     00:00    
(7/26): fonts-filesystem-2.0.5-12.amzn2023.0.2. 245 kB/s | 9.5 kB     00:00    
(8/26): freetype-2.13.2-5.amzn2023.0.1.x86_64.r  11 MB/s | 423 kB     00:00    
(9/26): google-noto-sans-vf-fonts-20201206-2.am  20 MB/s | 492 kB     00:00    
(10/26): google-noto-fonts-common-20201206-2.am 542 kB/s |  15 kB     00:00    
(11/26): graphite2-1.3.14-7.amzn2023.0.2.x86_64 2.1 MB/s |  97 kB     00:00    
(12/26): harfbuzz-7.0.0-2.amzn2023.0.2.x86_64.r  14 MB/s | 873 kB     00:00    
(13/26): javapackages-filesystem-6.0.0-7.amzn20 336 kB/s |  12 kB     00:00    
(14/26): langpacks-core-font-en-3.0-21.amzn2023 440 kB/s |  10 kB     00:00    
(15/26): libX11-1.8.10-2.amzn2023.0.1.x86_64.rp  16 MB/s | 659 kB     00:00    
(16/26): libX11-common-1.8.10-2.amzn2023.0.1.no 4.8 MB/s | 147 kB     00:00    
(17/26): libXau-1.0.11-6.amzn2023.0.1.x86_64.rp 1.4 MB/s |  33 kB     00:00    
(18/26): libXext-1.3.6-1.amzn2023.0.1.x86_64.rp 1.8 MB/s |  42 kB     00:00    
(19/26): libXrender-0.9.11-6.amzn2023.0.1.x86_6 1.3 MB/s |  29 kB     00:00    
(20/26): libbrotli-1.0.9-4.amzn2023.0.2.x86_64.  10 MB/s | 315 kB     00:00    
(21/26): libjpeg-turbo-2.1.4-2.amzn2023.0.5.x86 6.2 MB/s | 190 kB     00:00    
(22/26): libpng-1.6.37-10.amzn2023.0.6.x86_64.r 4.6 MB/s | 128 kB     00:00    
(23/26): libxcb-1.17.0-1.amzn2023.0.1.x86_64.rp  10 MB/s | 235 kB     00:00    
(24/26): xml-common-0.6.3-56.amzn2023.0.2.noarc 1.6 MB/s |  32 kB     00:00    
(25/26): pixman-0.43.4-1.amzn2023.0.4.x86_64.rp 7.5 MB/s | 296 kB     00:00    
(26/26): java-17-amazon-corretto-headless-17.0.  66 MB/s |  91 MB     00:01    
--------------------------------------------------------------------------------
Total                                            62 MB/s |  99 MB     00:01     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                        1/1 Installing       : fonts-filesystem-1:2.0.5-12.amzn2023.0.2.noarch       1/26 Installing       : dejavu-sans-mono-fonts-2.37-16.amzn2023.0.2.noarch    2/26 Installing       : dejavu-sans-fonts-2.37-16.amzn2023.0.2.noarch         3/26 Installing       : libpng-2:1.6.37-10.amzn2023.0.6.x86_64                4/26 Installing       : dejavu-serif-fonts-2.37-16.amzn2023.0.2.noarch        5/26 Running scriptlet: xml-common-0.6.3-56.amzn2023.0.2.noarch               6/26 Installing       : xml-common-0.6.3-56.amzn2023.0.2.noarch               6/26 Installing       : pixman-0.43.4-1.amzn2023.0.4.x86_64                   7/26 Installing       : libjpeg-turbo-2.1.4-2.amzn2023.0.5.x86_64             8/26 Installing       : libbrotli-1.0.9-4.amzn2023.0.2.x86_64                 9/26 Installing       : libXau-1.0.11-6.amzn2023.0.1.x86_64                  10/26 Installing       : libxcb-1.17.0-1.amzn2023.0.1.x86_64                  11/26 Installing       : libX11-common-1.8.10-2.amzn2023.0.1.noarch           12/26 Installing       : libX11-1.8.10-2.amzn2023.0.1.x86_64                  13/26 Installing       : libXext-1.3.6-1.amzn2023.0.1.x86_64                  14/26 Installing       : libXrender-0.9.11-6.amzn2023.0.1.x86_64              15/26 Installing       : javapackages-filesystem-6.0.0-7.amzn2023.0.6.noarc   16/26 Installing       : graphite2-1.3.14-7.amzn2023.0.2.x86_64               17/26 Installing       : google-noto-fonts-common-20201206-2.amzn2023.0.2.n   18/26 Installing       : google-noto-sans-vf-fonts-20201206-2.amzn2023.0.2.   19/26 Installing       : langpacks-core-font-en-3.0-21.amzn2023.0.4.noarch    20/26 Installing       : cairo-1.18.0-4.amzn2023.0.1.x86_64                   21/26 Installing       : harfbuzz-7.0.0-2.amzn2023.0.2.x86_64                 22/26 Installing       : freetype-2.13.2-5.amzn2023.0.1.x86_64                23/26 Installing       : fontconfig-2.13.94-2.amzn2023.0.2.x86_64             24/26 Running scriptlet: fontconfig-2.13.94-2.amzn2023.0.2.x86_64             24/26 Installing       : alsa-lib-1.2.7.2-1.amzn2023.0.2.x86_64               25/26 Installing       : java-17-amazon-corretto-headless-1:17.0.14+7-1.amz   26/26 Running scriptlet: java-17-amazon-corretto-headless-1:17.0.14+7-1.amz   26/26 Running scriptlet: fontconfig-2.13.94-2.amzn2023.0.2.x86_64             26/26 Running scriptlet: java-17-amazon-corretto-headless-1:17.0.14+7-1.amz   26/26 Verifying        : alsa-lib-1.2.7.2-1.amzn2023.0.2.x86_64                1/26 Verifying        : cairo-1.18.0-4.amzn2023.0.1.x86_64                    2/26 Verifying        : dejavu-sans-fonts-2.37-16.amzn2023.0.2.noarch         3/26 Verifying        : dejavu-sans-mono-fonts-2.37-16.amzn2023.0.2.noarch    4/26 Verifying        : dejavu-serif-fonts-2.37-16.amzn2023.0.2.noarch        5/26 Verifying        : fontconfig-2.13.94-2.amzn2023.0.2.x86_64              6/26 Verifying        : fonts-filesystem-1:2.0.5-12.amzn2023.0.2.noarch       7/26 Verifying        : freetype-2.13.2-5.amzn2023.0.1.x86_64                 8/26 Verifying        : google-noto-fonts-common-20201206-2.amzn2023.0.2.n    9/26 Verifying        : google-noto-sans-vf-fonts-20201206-2.amzn2023.0.2.   10/26 Verifying        : graphite2-1.3.14-7.amzn2023.0.2.x86_64               11/26 Verifying        : harfbuzz-7.0.0-2.amzn2023.0.2.x86_64                 12/26 Verifying        : java-17-amazon-corretto-headless-1:17.0.14+7-1.amz   13/26 Verifying        : javapackages-filesystem-6.0.0-7.amzn2023.0.6.noarc   14/26 Verifying        : langpacks-core-font-en-3.0-21.amzn2023.0.4.noarch    15/26 Verifying        : libX11-1.8.10-2.amzn2023.0.1.x86_64                  16/26 Verifying        : libX11-common-1.8.10-2.amzn2023.0.1.noarch           17/26 Verifying        : libXau-1.0.11-6.amzn2023.0.1.x86_64                  18/26 Verifying        : libXext-1.3.6-1.amzn2023.0.1.x86_64                  19/26 Verifying        : libXrender-0.9.11-6.amzn2023.0.1.x86_64              20/26 Verifying        : libbrotli-1.0.9-4.amzn2023.0.2.x86_64                21/26 Verifying        : libjpeg-turbo-2.1.4-2.amzn2023.0.5.x86_64            22/26 Verifying        : libpng-2:1.6.37-10.amzn2023.0.6.x86_64               23/26 Verifying        : libxcb-1.17.0-1.amzn2023.0.1.x86_64                  24/26 Verifying        : pixman-0.43.4-1.amzn2023.0.4.x86_64                  25/26 Verifying        : xml-common-0.6.3-56.amzn2023.0.2.noarch              26/26 Installed:alsa-lib-1.2.7.2-1.amzn2023.0.2.x86_64                                        cairo-1.18.0-4.amzn2023.0.1.x86_64                                            dejavu-sans-fonts-2.37-16.amzn2023.0.2.noarch                                 dejavu-sans-mono-fonts-2.37-16.amzn2023.0.2.noarch                            dejavu-serif-fonts-2.37-16.amzn2023.0.2.noarch                                fontconfig-2.13.94-2.amzn2023.0.2.x86_64                                      fonts-filesystem-1:2.0.5-12.amzn2023.0.2.noarch                               freetype-2.13.2-5.amzn2023.0.1.x86_64                                         google-noto-fonts-common-20201206-2.amzn2023.0.2.noarch                       google-noto-sans-vf-fonts-20201206-2.amzn2023.0.2.noarch                      graphite2-1.3.14-7.amzn2023.0.2.x86_64                                        harfbuzz-7.0.0-2.amzn2023.0.2.x86_64                                          java-17-amazon-corretto-headless-1:17.0.14+7-1.amzn2023.1.x86_64              javapackages-filesystem-6.0.0-7.amzn2023.0.6.noarch                           langpacks-core-font-en-3.0-21.amzn2023.0.4.noarch                             libX11-1.8.10-2.amzn2023.0.1.x86_64                                           libX11-common-1.8.10-2.amzn2023.0.1.noarch                                    libXau-1.0.11-6.amzn2023.0.1.x86_64                                           libXext-1.3.6-1.amzn2023.0.1.x86_64                                           libXrender-0.9.11-6.amzn2023.0.1.x86_64                                       libbrotli-1.0.9-4.amzn2023.0.2.x86_64                                         libjpeg-turbo-2.1.4-2.amzn2023.0.5.x86_64                                     libpng-2:1.6.37-10.amzn2023.0.6.x86_64                                        libxcb-1.17.0-1.amzn2023.0.1.x86_64                                           pixman-0.43.4-1.amzn2023.0.4.x86_64                                           xml-common-0.6.3-56.amzn2023.0.2.noarch                                       Complete!

使用 mvn 創建 jar 文件


只需運行 mvn package 命令即可創建 Java 應用程序的 .jar 文件。
您將在目標目錄中看到兩個 .jar 文件:

ninjamac@ip-192-168-1-2 target % ls -al
total 44624
drwxr-xr-x  16 ninjamac  staff       512  4 20 20:20 .
drwxr-xr-x  11 ninjamac  staff       352  4 20 19:38 ..
drwxr-xr-x   4 ninjamac  staff       128  4 20 19:38 classes
drwxr-xr-x   3 ninjamac  staff        96  4 20 19:38 generated-sources
drwxr-xr-x   3 ninjamac  staff        96  4 20 19:38 generated-test-sources
-rw-r--r--   1 ninjamac  staff  22820488  4 20 19:40 hello-0.0.1-SNAPSHOT.jar
-rw-r--r--   1 ninjamac  staff      3404  4 20 19:39 hello-0.0.1-SNAPSHOT.jar.original

使用 rsync 將 .jar 文件復制到 EC2

ninjamac@ip-192-168-1-2 target % rsync -avz -e "ssh -i ~/Desktop/Rock/key/rockaws.pem" ./hello-0.0.1-SNAPSHOT.jar ec2-user@13.211.xx.xx:~/
building file list ... done
hello-0.0.1-SNAPSHOT.jar
sent 20421458 bytes  received 42 bytes  220772.97 bytes/sec

?使用 Java 執行 .jar 文件


我們之前安裝了 Java,因此可以使用它的命令行界面 (CLI) 運行 .jar 文件,使用 -jar 參數并傳入 .jar 文件的路徑:

[ec2-user@ip-172-31-14-36 ~]$ java -jar ./hello-0.0.1-SNAPSHOT.jar .   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot ::                (v3.3.0)2025-04-20T12:41:34.568Z  INFO 26691 --- [hello] [           main] com.learnaws.hello.HelloApplication      : Starting HelloApplication v0.0.1-SNAPSHOT using Java 17.0.14 with PID 26691 (/home/ec2-user/hello-0.0.1-SNAPSHOT.jar started by ec2-user in /home/ec2-user)
2025-04-20T12:41:34.583Z  INFO 26691 --- [hello] [           main] com.learnaws.hello.HelloApplication      : No active profile set, falling back to 1 default profile: "default"
2025-04-20T12:41:37.221Z  INFO 26691 --- [hello] [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2025-04-20T12:41:37.244Z  INFO 26691 --- [hello] [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2025-04-20T12:41:37.244Z  INFO 26691 --- [hello] [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.24]
2025-04-20T12:41:37.555Z  INFO 26691 --- [hello] [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2025-04-20T12:41:37.556Z  INFO 26691 --- [hello] [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2851 ms
2025-04-20T12:41:39.058Z  INFO 26691 --- [hello] [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint beneath base path '/actuator'
2025-04-20T12:41:39.222Z  INFO 26691 --- [hello] [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path '/'
2025-04-20T12:41:39.254Z  INFO 26691 --- [hello] [           main] com.learnaws.hello.HelloApplication      : Started HelloApplication in 5.58 seconds (process running for 6.56)

在 EC2 安全組中為 Spring Boot 啟用 8080 端口


前往連接到您的 EC2 實例的安全組,并添加 8080 端口范圍:

?使用 IP 測試在 EC2 上運行的 Spring Boot 服務器

使用curl測試 actuator的健康狀態

ninjamac@ip-192-168-1-2 target % curl 13.211.239.xx:8080/actuator/health
{"status":"UP"}%

如何為生產環境設置 Spring Boot

  1. 使用 Caddy 設置自定義域名和 SSL
  2. 將您的域名指向 EC2 IP
  3. 安裝并設置 Caddy 作為反向代理
  4. 設置 CDN(例如 CloudFront 或 Cloudflare)用于緩存

保持 Java 服務器在后臺運行


我們希望在系統重啟和應用程序崩潰時自動啟動應用程序,為此可以使用 systemd。

創建 systemd 服務文件
使用 vim 在 /etc/systemd/system/java-server.service 中創建一個服務文件:

sudo vim /etc/systemd/system/java-server.service
?

[Unit]
Description=Spring Boot Server[Service]
ExecStart=java -jar /home/ec2-user/hello-0.0.1-SNAPSHOT.jar
Restart=on-failure
RestartSec=1s[Install]
WantedBy=multi-user.target

使用 systemctl 啟用 java-server 服務
現在您需要重新加載 systemd 并啟用 java 服務器:

sudo systemctl daemon-reload
sudo systemctl enable java-server
啟動 java-server 服務
sudo systemctl start java-server
使用 systemctl 檢查狀態
sudo systemctl status java-server
您將看到類似以下內容:

[ec2-user@ip-172-31-14-36 ~]$ sudo systemctl daemon-reload 
[ec2-user@ip-172-31-14-36 ~]$ sudo systemctl enable java-server
Created symlink /etc/systemd/system/multi-user.target.wants/java-server.service → /etc/systemd/system/java-server.service.
[ec2-user@ip-172-31-14-36 ~]$ sudo systemctl start java-server
[ec2-user@ip-172-31-14-36 ~]$ sudo systemctl status java-server
● java-server.service - Spring Boot ServerLoaded: loaded (/etc/systemd/system/java-server.service; enabled; preset: >Active: active (running) since Sun 2025-04-20 12:57:18 UTC; 1s agoMain PID: 27376 (java)Tasks: 15 (limit: 1111)Memory: 46.4MCPU: 1.405sCGroup: /system.slice/java-server.service└─27376 java -jar /home/ec2-user/hello-0.0.1-SNAPSHOT.jarApr 20 12:57:18 ip-172-31-14-36.ap-southeast-2.compute.internal systemd[1]: Sto>
Apr 20 12:57:18 ip-172-31-14-36.ap-southeast-2.compute.internal systemd[1]: jav>
Apr 20 12:57:18 ip-172-31-14-36.ap-southeast-2.compute.internal systemd[1]: Sta>

現在,即使您重啟系統或退出 SSH 會話,這也能確保您的 Java Web 服務器繼續運行。

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

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

相關文章

Git常用命令分類匯總

Git常用命令分類匯總 一、基礎操作 初始化倉庫git init添加文件到暫存區git add file_name # 添加單個文件 git add . # 添加所有修改提交更改git commit -m "提交描述"查看倉庫狀態git status二、分支管理 創建/切換分支git branch branch_name …

mysql——基礎知識

關鍵字大小寫不敏感 查看表結構中的 desc describe 描述 降序中的 desc descend 1. 數據庫的操作 1. 創建數據庫 create database 數據庫名;為防止創建的數據庫重復 CREATE DATABASE IF NOT EXISTS 數據庫名;手動設置數據庫采用的字符集 character set 字符集名;chars…

Redis 哨兵與集群腦裂問題詳解及解決方案

Redis 哨兵與集群腦裂問題詳解及解決方案 本文將深入探討Redis在哨兵模式和集群模式下可能出現的腦裂問題,包括其發生場景、原因以及有效的解決策略。同時,我們還將提供相應的代碼示例和配置方案來幫助讀者理解和實施。 一、腦裂問題概述 腦裂&#x…

國內網絡設備廠商名單(List of Domestic Network Equipment Manufacturers)

國內網絡設備廠商名單 運維工程師必須廣泛熟悉國內外各大廠商的設備,深入掌握其應用場景、功能特點及優勢。這不僅有助于在故障排查時迅速定位問題,還能在系統設計、優化與升級中做出更合理的決策。對設備特性的精準把握,能夠顯著提升運維效…

2、SpringAI接入ChatGPT與微服務整合

2、SpringAI接入ChatGPT與微服務整合 小薛博客AI 大模型資料 1、SpringAI簡介 https://spring.io/projects/spring-ai Spring AI是一個人工智能工程的應用框架。其目標是將Spring生態系統的設計原則(如可移植性和模塊化設計)應用于人工智能領域&#…

基于ubuntu24.10安裝NACOS2.5.1的簡介

基于ubuntu24.10安裝NACOS2.5.1的簡介 官方網站地址: https://nacos.io 可訪問nacos站點 https://nacos.io/zh-cn/ 2025年04月記錄發布 V2.5.1 版本 一、環境預準備 64 bit JDK 1.8; sudo apt update sudo apt install openjdk-8-jdk sudo apt upda…

神經網絡:從基礎到應用,開啟智能時代的大門

在當今數字化時代,神經網絡已經成為人工智能領域最熱門的技術之一。從語音識別到圖像分類,從自然語言處理到自動駕駛,神經網絡的應用無處不在。它不僅改變了我們的生活方式,還為各個行業帶來了前所未有的變革。本文將帶你深入了解…

[k8s實戰]Containerd 1.7.2 離線安裝與配置全指南(生產級優化)

[k8s實戰]Containerd 1.7.2 離線安裝與配置全指南(生產級優化) 摘要:本文詳細講解在無外網環境下部署 Containerd 1.7.2 容器運行時的完整流程,涵蓋二進制包安裝、私有鏡像倉庫配置、Systemd服務集成等關鍵步驟,并提供…

【CPU】結合RISC-V CPU架構回答中斷系統的7個問題(個人草稿)

結合RISC-V CPU架構對中斷系統七個關鍵問題的詳細解析,按照由淺入深的結構進行說明: 一、中斷請求機制(問題①) 硬件基礎: RISC-V通過CLINT(Core Local Interrupter)和PLIC(Platfor…

[密碼學實戰]國密算法面試題解析及應用

以下是密碼學領域常見的面試題及其詳細解析,涵蓋基礎理論、算法實現與應用場景,幫助系統化備戰技術面試 一、基礎概念類 1. 密碼學的主要目標是什么? 答案: 確保數據的機密性(加密防止竊聽)、完整性(哈希校驗防篡改)、認證性(數字簽名驗證身份)和不可否認性(簽名防…

Spring Boot 實現 Excel 導出功能(支持前端下載 + 文件流)

🧠 一、為什么用 EasyExcel? 在 Java 開發中,操作 Excel 的框架主要有: Apache POI(經典但慢、內存占用大) JXL(老舊不維護) Alibaba EasyExcel(阿里出品,…

【論文速遞】2025年06周 (Robotics/Embodied AI/LLM)

目錄 SMOLLM2:當Smol變得大 - 以數據為中心的小語言模型英文摘要中文摘要 OmniHuman-1:重新考慮一階段的人類動畫模型的擴展英文摘要中文摘要 S1:簡單的測試時間縮放英文摘要中文摘要 直接對齊算法間的差異日漸模糊英文摘要中文摘要 VideoJAM…

學習深度學習是否要先學習機器學習?工程師的路徑選擇策略

深度學習與機器學習的關系,如同摩天大樓與地基——前者是后者的高階延伸,但能否繞過地基直接造樓?本文從技術本質、學習曲線、應用場景三個維度剖析這一關鍵問題。 一、技術血脈的承繼關系 概念體系同源: 損失函數、梯度下降、過擬…

開始放飛之先搞個VSCode

文章目錄 開始放飛之先搞個VSCode重要提醒安裝VSCode下載MinGW-w64回到VSCode中去VSCode原生調試鍵盤問題遺留問題參考文獻 開始放飛之先搞個VSCode 突然發現自己的新臺式機上面連個像樣的編程環境都沒有,全是游戲了!!!&#xff…

【2025“華中杯”大學生數學建模挑戰賽】選題分析 A題 詳細解題思路

目錄 2025“華中杯”大學生數學建模挑戰賽選題分析A題:晶硅片產銷策略優化B題:校園共享單車的調度與維護問題C題:就業狀態分析與預測D題:患者院內轉運不良事件的分析與預測 A 題 晶硅片產銷策略優化問題 1:月利潤計算模…

YOLO11改進,尺度動態損失函數Scale-based Dynamic Loss,減少標簽不準確對損失函數穩定性的影響

在目標檢測領域,標簽噪聲與尺度敏感問題始終是制約模型性能提升的"阿喀琉斯之踵"。2025年CVPR最佳論文提出的尺度動態損失函數(Scale-based Dynamic Loss, SDL),通過構建自適應損失調節機制,不僅實現了對YOLOv11檢測精度的指數級提升,更重新定義了損失函數的設…

緩存 --- 內存緩存 or 分布式緩存

緩存 --- 內存緩存 or 分布式緩存 內存緩存(In-Memory Cache)分布式緩存(Distributed Cache)內存緩存 vs 分布式緩存 內存緩存和分布式緩存是兩種常見的緩存策略,它們在存儲位置、訪問速度和適用場景上有所不同。下面分…

Python+CoppeliaSim+ZMQ remote API控制機器人跳舞

這是一個使用Python和CoppeliaSim(V-REP)控制ASTI人型機器人進行舞蹈動作的演示項目。 項目描述 本項目展示了如何使用Python通過ZeroMQ遠程API與CoppeliaSim仿真環境進行交互,控制ASTI人型機器人執行預定義的舞蹈動作序列。項目包含完整的機…

進程管理,關閉進程

查看Linux系統中的進程信息 語法:ps【-e -f】 一般與管道符與grep配合使用,,去過濾指定的信息 -e:顯示出全部的進程 -f:以完全格式化的形式展示信息(展示全部信息) 簡單用法:p…

線性代數-矩陣的秩

矩陣的秩(Rank)是線性代數中的一個重要概念,表示矩陣中線性無關的行(或列)的最大數量。它反映了矩陣所包含的“有效信息”的維度,是矩陣的核心特征之一。 直觀理解 行秩與列秩: 行秩&#xff1…