如何在 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.mzph.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…