当前位置: 首页 > ds >正文

SpringBoot多容器化实例实战

Spring Boot应用可通过容器化

多容器实例部署场景

Spring Boot应用可通过容器化技术实现多实例部署,提升系统高可用性和负载能力。以下是典型场景的归纳与实现方法。

容器编排工具部署

Kubernetes

  • 创建Deployment配置定义副本数,自动管理Pod生命周期
  • 使用Horizontal Pod Autoscaler根据CPU/内存指标动态扩缩容
  • 通过Service暴露集群内访问入口,结合Ingress实现外部流量分发

Docker Swarm

  • 初始化Swarm集群后,通过docker service create --replicas 30启动服务
  • 滚动更新策略确保零停机部署
  • 内置负载均衡自动分配请求到不同容器

云平台托管服务

AWS ECS

  • 定义Task Definition时指定容器镜像与资源限制
  • 创建Service时设置desired count为30,配合ALB路由流量
  • 利用Fargate无需管理底层EC2实例

Azure Container Instances

  • 批量执行az container create命令快速启动30个独立实例
  • 通过虚拟网络连接各容器,支持跨区域部署

Google Cloud Run

  • 无服务器模式下自动缩放实例数至30个
  • 基于HTTP请求的按需启动,节省闲置成本

自动化脚本与工具

Shell脚本批量启动

for i in {1..30}; dodocker run -d --name springboot_$i -p 808$i:8080 your-image
done

Terraform基础设施即代码

resource "docker_container" "app" {count = 30name  = "springboot-${count.index}"image = "your-image"ports {internal = 8080external = 8080 + count.index}
}

负载均衡配置

Nginx反向代理

upstream springboot_cluster {server 10.0.0.1:8080;server 10.0.0.2:8080;# ... 共30个实例
}server {location / {proxy_pass http://springboot_cluster;}
}

Spring Cloud LoadBalancer

  • 集成服务发现(如Eureka)自动识别实例
  • 自定义RoundRobinLoadBalancer策略轮询请求

数据库与状态管理

共享数据库连接池

  • 配置连接池大小(如HikariCP的maximumPoolSize=150
  • 使用@Transactional确保跨实例事务一致性

Redis会话共享

spring:session:store-type: redisredis:host: cluster-redis

监控与日志收集

Prometheus + Grafana

  • 每个容器暴露/actuator/prometheus端点
  • 配置Scrape Job采集30个实例的指标数据

ELK集中日志

  • Filebeat部署在每台宿主机采集容器日志
  • 通过Logstash管道过滤后存入Elasticsearch

网络与安全策略

容器网络隔离

  • 创建自定义Docker网络避免端口冲突
  • 使用--network-alias实现内部DNS解析

TLS证书配置

  • 通过Cert-Manager自动签发Let's Encrypt证书
  • 在Ingress中启用HTTPS重定向

测试验证方法

JMeter压力测试

  • 模拟1000并发用户验证30个实例的吞吐量
  • 监听各实例的响应时间与错误率

Spring Boot Actuator健康检查

http://host:port/actuator/health
http://host:port/actuator/metrics

资源优化建议

JVM参数调优

  • 设置容器内存限制后调整-Xmx-Xms
  • 使用G1垃圾回收器减少停顿时间

镜像分层构建

FROM eclipse-temurin:17-jdk-jammy AS builder
WORKDIR /app
COPY . .
RUN ./gradlew buildFROM eclipse-temurin:17-jre-jammy
COPY --from=builder /app/build/libs/*.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]

基于Spring Boot和AWS ECS

以下是基于Spring Boot和AWS ECS的实用示例,涵盖部署、监控、优化等场景,按类别分类整理:

部署与配置

  1. 基础Spring Boot Docker镜像构建
    创建Dockerfile打包Spring Boot应用:

    FROM openjdk:17-jdk-slim
    COPY target/myapp.jar /app.jar
    ENTRYPOINT ["java","-jar","/app.jar"]
    
  2. ECS任务定义JSON模板
    定义CPU/内存和容器配置:

    {"family": "springboot-task","networkMode": "awsvpc","containerDefinitions": [{"name": "app","image": "account-id.dkr.ecr.region.amazonaws.com/myapp:latest","portMappings": [{ "containerPort": 8080 }]}]
    }
    
  3. Terraform部署ECS集群
    使用Terraform自动创建ECS集群:

    resource "aws_ecs_cluster" "cluster" {name = "springboot-cluster"
    }
    
  4. Blue/Green部署脚本
    通过AWS CodeDeploy实现零停机更新:

    # appspec.yml
    version: 1.0
    Resources:- TargetService:Type: AWS::ECS::ServiceProperties:TaskDefinition: "arn:aws:ecs:us-east-1:123456789012:task-definition/springboot-task:1"
    

监控与日志

  1. CloudWatch日志集成
    application.properties中配置日志组:

    logging.group.app=springboot-app
    logging.file.name=/var/log/app.log
    
  2. 自定义指标上报
    使用Micrometer向CloudWatch发送指标:

    @Bean
    MeterRegistryCustomizer<MeterRegistry> metrics() {return registry -> registry.config().commonTags("service", "myapp");
    }
    
  3. 异常报警设置
    创建CloudWatch警报规则监控5xx错误:

    aws cloudwatch put-metric-alarm --alarm-name "High5xxErrors" \--metric-name "5xxErrorCount" --namespace "AWS/ECS" 
    

安全实践

  1. IAM任务角色配置
    限制ECS任务访问S3的权限:

    {"Version": "2012-10-17","Statement": [{"Effect": "Allow","Action": ["s3:GetObject"],"Resource": "arn:aws:s3:::my-bucket/*"}]
    }
    
  2. Secrets Manager集成
    通过环境变量注入数据库密码:

    "secrets": [{"name": "DB_PASSWORD","valueFrom": "arn:aws:secretsmanager:us-east-1:123456789012:secret:db_password"
    }]
    
  3. 网络隔离配置
    使用安全组限制只允许ALB访问:

    aws ec2 authorize-security-group-ingress \--group-id sg-123456 --protocol tcp --port 8080 \--source-group sg-alb
    

性能优化

  1. 自动扩展策略
    基于CPU利用率扩展服务:

    aws application-autoscaling register-scalable-target \--service-namespace ecs --scalable-dimension ecs:service:DesiredCount \--min-capacity 2 --max-capacity 10
    
  2. JVM内存配置
    在Docker启动时设置堆内存:

    ENTRYPOINT ["java","-Xms512m","-Xmx1024m","-jar","/app.jar"]
    
  3. 多容器任务设计
    在单任务中部署Spring Boot应用+Sidecar:

    "containerDefinitions": [{ "name": "app", "image": "app-image" },{ "name": "log-agent", "image": "fluentd" }
    ]
    

集成服务

  1. SQS消息处理
    消费队列消息的Spring组件:

    @SqsListener("my-queue")
    public void processMessage(String message) {// 处理逻辑
    }
    
  2. S3文件上传端点
    生成预签名URL的Controller:

    @GetMapping("/presigned-url")
    public String generateUrl() {return s3Client.generatePresignedUrl(/* 参数 */).toString();
    }
    
  3. DynamoDB数据访问
    Spring Data Repository示例:

    @Repository
    public interface UserRepository extends CrudRepository<User, String> {}
    

持续交付

  1. CodePipeline构建流程
    定义构建阶段的buildspec.yml

    phases:build:commands:- mvn package- docker build -t $IMAGE_URI .
    
  2. ECR镜像推送脚本
    自动化镜像更新:

    aws ecr get-login-password | docker login --username AWS --password-stdin $ECR_URI
    docker push $ECR_URI:latest
    
  3. Canary测试部署
    通过Route 53权重控制流量比例:

    aws route53 change-resource-record-sets \--hosted-zone-id Z1PA6795UKMFR9 \--change-batch file://r53-config.json
    

故障处理

  1. 健康检查配置
    Spring Boot Actuator端点:

    management.endpoint.health.probes.enabled=true
    management.health.readinessState.enabled=true
    
  2. 任务终止事件捕获
    通过EventBridge监听事件:

    {"source": ["aws.ecs"],"detail-type": ["ECS Task State Change"]
    }
    
  3. SSM会话管理
    通过Session Manager连接容器调试:

    aws ssm start-session --target ecs:clusterName_taskID_containerId
    

高级模式

  1. 服务网格集成
    通过App Mesh配置服务间通信:

    # 虚拟节点定义
    virtualNodeName: springboot-node
    listener:portMapping:port: 8080protocol: http
    
  2. Fargate Spot实例
    使用成本优化的容量策略:

    aws ecs put-cluster-capacity-providers \--capacity-providers FARGATE FARGATE_SPOT
    
  3. 自定义指标自动扩展
    基于业务指标(如订单量)扩展:

    aws application-autoscaling put-scaling-policy \--policy-name OrderBasedScaling \--policy-type TargetTrackingScaling \--target-tracking-config file://config.json
    

其他实用场景

  1. 跨区域复制镜像
    同步ECR镜像到其他区域:

    aws ecr describe-images --repository-name myapp \--query 'imageDetails[0].imageTags[0]' | xargs -I {} aws ecr replicate-image \--source-region us-east-1 --destination-region eu-west-1 \--repository-name myapp --image-id imageTag={}
    
  2. 成本分析报告
    生成ECS成本明细:

    aws ce get-cost-and-usage \--time-period Start=2023-01-01,End=2023-01-31 \--granularity MONTHLY \--metrics "BlendedCost" \--filter '{"Dimensions": {"Key": "SERVICE","Values": ["Amazon Elastic Container Service"]}}'
    
  3. 容器镜像漏洞扫描
    检查ECR镜像安全性:

    aws ecr describe-image-scan-findings \--repository-name myapp \--image-id imageTag=latest
    
  4. 批量任务执行
    通过RunTask启动多个任务:

    aws ecs run-task --cluster my-cluster \--task-definition springboot-task:10 \--count 5 --launch-type FARGATE
    
  5. 资源标签管理
    为ECS资源添加标签便于管理:

    aws ecs tag-resource \--resource-arn arn:aws:ecs:us-east-1:123456789012:service/my-cluster/my-service \--tags key=Environment,value=Production
    

基于Spring Boot和Kubernetes的实践示例

以下是一些基于Spring Boot和Kubernetes的实践示例,涵盖部署、配置、监控等场景,内容来源于开源项目和社区实践:


基础部署示例

Spring Boot应用Docker化
Dockerfile中定义多阶段构建,优化镜像大小:

FROM maven:3.8-jdk-11 AS build
WORKDIR /app
COPY pom.xml .
RUN mvn dependency:go-offline
COPY src ./src
RUN mvn package -DskipTestsFROM openjdk:11-jre-slim
COPY --from=build /app/target/*.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

Kubernetes Deployment配置
创建deployment.yaml定义Pod副本和健康检查:

apiVersion: apps/v1
kind: Deployment
metadata:name: springboot-app
spec:replicas: 3selector:matchLabels:app: springboottemplate:metadata:labels:app: springbootspec:containers:- name: appimage: your-registry/springboot-app:latestports:- containerPort: 8080livenessProbe:httpGet:path: /actuator/healthport: 8080initialDelaySeconds: 30


进阶配置示例

ConfigMap管理配置
通过ConfigMap注入环境变量:

apiVersion: v1
kind: ConfigMap
metadata:name: app-config
data:SPRING_DATASOURCE_URL: jdbc:postgresql://db-host:5432/dbSPRING_PROFILES_ACTIVE: "prod"

在Deployment中引用:

envFrom:
- configMapRef:name: app-config

Horizontal Pod Autoscaler(HPA)
根据CPU负载自动扩缩容:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:name: springboot-hpa
spec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: springboot-appminReplicas: 2maxReplicas: 10metrics:- type: Resourceresource:name: cputarget:type: UtilizationaverageUtilization: 50


监控与日志

集成Prometheus监控
pom.xml中添加依赖:

<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

配置Service暴露指标端口:

apiVersion: v1
kind: Service
metadata:name: springboot-metricsannotations:prometheus.io/scrape: "true"
spec:ports:- name: metricsport: 8080targetPort: 8080

集中式日志收集
使用Fluentd收集日志到Elasticsearch:

spec:containers:- name: appenv:- name: LOGGING_LEVELvalue: "DEBUG"


服务网格与安全

Istio流量管理
定义VirtualService实现金丝雀发布:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: springboot-vs
spec:hosts:- "springboot.example.com"http:- route:- destination:host: springboot-appsubset: v1weight: 90- destination:host: springboot-appsubset: v2weight: 10

Pod安全策略
限制容器运行权限:

securityContext:runAsNonRoot: truecapabilities:drop:- ALL

注意:实际部署需替换镜像名称、数据库连接等占位符,并根据集群环境调整资源配置。

Spring Boot与Docker Swarm基础集成

以下是基于Spring Boot和Docker Swarm的实用示例,涵盖部署、编排、监控等多个场景。

示例1:构建Spring Boot应用的Docker镜像

FROM openjdk:17-jdk-slim
COPY target/myapp.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

通过docker build -t myapp .构建镜像。

示例2:多阶段构建优化镜像大小

FROM maven:3.8.6 AS build
COPY . /app
RUN mvn -f /app/pom.xml clean packageFROM openjdk:17-jdk-slim
COPY --from=build /app/target/*.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

示例3:初始化Docker Swarm集群

docker swarm init --advertise-addr <MANAGER_IP>

示例4:加入工作节点到Swarm集群

docker swarm join --token <WORKER_TOKEN> <MANAGER_IP>:2377

服务部署与扩展

示例5:部署Spring Boot服务到Swarm

docker service create --name spring-service -p 8080:8080 myapp:latest

示例6:设置服务副本数

docker service scale spring-service=3

示例7:全局模式部署(每个节点运行一个实例)

docker service create --name spring-global --mode global -p 8080:8080 myapp:latest

示例8:滚动更新服务

docker service update --image myapp:v2 --update-delay 10s spring-service

示例9:回滚服务版本

docker service rollback spring-service

网络与存储配置

示例10:创建覆盖网络

docker network create --driver overlay my-overlay

示例11:服务使用自定义网络

docker service create --name spring-service --network my-overlay -p 8080:8080 myapp:latest

示例12:挂载配置文件卷

docker service create --name config-service \--mount type=bind,source=/host/config,target=/app/config \myapp:latest

示例13:使用Docker Config管理配置

echo "spring.profiles.active=prod" | docker config create app-config -
docker service create --name spring-service --config src=app-config,target=/app/config/application.properties myapp:latest

健康检查与监控

示例14:定义容器健康检查

HEALTHCHECK --interval=30s --timeout=3s \CMD curl -f http://localhost:8080/actuator/health || exit 1

示例15:服务健康检查配置

docker service create --name spring-service \--health-cmd "curl -f http://localhost:8080/actuator/health || exit 1" \--health-interval 30s \--health-timeout 10s \myapp:latest

示例16:集成Prometheus监控

management:endpoints:web:exposure:include: health,info,metrics,prometheusmetrics:export:prometheus:enabled: true

示例17:部署Prometheus监控Swarm

docker service create --name prometheus \--publish 9090:9090 \--mount type=bind,source=/path/to/prometheus.yml,target=/etc/prometheus/prometheus.yml \prom/prometheus

高级部署模式

示例18:蓝绿部署策略

# 部署新版本(绿色)
docker service create --name spring-service-green -p 8081:8080 myapp:v2# 切换流量
docker service update --publish-rm 8080:8080 --publish-add 8080:8081 spring-service-blue

示例19:金丝雀发布

# 先更新部分实例
docker service update --image myapp:v2 --update-parallelism 1 spring-service

示例20:服务依赖部署

version: '3.8'
services:app:image: myapp:latestdepends_on:- dbdb:image: postgres:13deploy:placement:constraints: [node.role == manager]

安全配置

示例21:限制服务资源

docker service create --name spring-service \--limit-cpu 2 \--limit-memory 512m \myapp:latest

示例22:服务重启策略

docker service create --name spring-service \--restart-condition on-failure \--restart-delay 5s \myapp:latest

示例23:服务机密管理

echo "db_password" | docker secret create db_password -
docker service create --name spring-service \--secret db_password \myapp:latest

日志与调试

示例24:集中式日志收集

docker service create --name logspout \--mode global \--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \gliderlabs/logspout syslog://<LOG_SERVER>:514

示例25:服务日志驱动配置

docker service create --name spring-service \--log-driver=gelf \--log-opt gelf-address=udp://<GRAYLOG_IP>:12201 \myapp:latest

跨服务通信

示例26:服务发现配置

spring:cloud:discovery:enabled: truedocker:swarm:enabled: true

示例27:内部负载均衡

docker service create --name spring-service \--replicas 3 \--endpoint-mode vip \myapp:latest

CI/CD集成

示例28:GitLab CI集成示例

deploy:stage: deployscript:- docker build -t myapp .- docker stack deploy --compose-file docker-compose.yml myapp

示例29:Jenkins流水线示例

pipeline {agent anystages {stage('Build') {steps {sh 'mvn clean package'sh 'docker build -t myapp .'}}stage('Deploy') {steps {sh 'docker stack deploy --compose-file docker-compose.yml myapp'}}}
}

高级场景

示例30:混合云部署配置

docker service create --name spring-service \--constraint 'node.labels.cloud == aws' \--placement-pref 'spread=node.labels.zone' \myapp:latest

这些示例覆盖了Spring Boot应用在Docker Swarm环境中的常见场景,从基础部署到高级运维模式,可根据实际需求组合使用。

基于Spring Boot与Azure Container Instances(ACI)结合的实用示例

以下是一些基于Spring Boot与Azure Container Instances(ACI)结合的实用示例,涵盖部署、配置、扩展及集成场景。内容根据实际用例整理,避免冗余步骤描述,直接提供可操作的方法或代码片段。

部署基础Spring Boot应用至ACI

Dockerfile示例
确保Spring Boot应用容器化,以下为典型Dockerfile:

FROM eclipse-temurin:17-jdk-jammy
WORKDIR /app
COPY target/springboot-app.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

Azure CLI部署命令
通过Azure CLI直接创建ACI实例:

az container create \--resource-group your-resource-group \--name springboot-aci \--image your-dockerhub/springboot-app:latest \--ports 8080 \--environment-variables 'SPRING_PROFILES_ACTIVE=prod' \--dns-name-label springboot-aci-dns

集成Azure服务

连接Azure SQL数据库
application.properties中配置:

spring.datasource.url=jdbc:sqlserver://your-sql-server.database.windows.net:1433;database=your-db
spring.datasource.username=admin
spring.datasource.password=${DB_PASSWORD}

使用Azure Key Vault
通过Spring Cloud Azure依赖注入密钥:

<dependency><groupId>com.azure.spring</groupId><artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId>
</dependency>

在代码中直接引用:

@Value("${your-secret-key}")
private String secretValue;

自动扩展示例

基于CPU指标的自动缩放
使用KEDA(Kubernetes Event-driven Autoscaling)配置ACI自动扩展:

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:name: springboot-scaler
spec:scaleTargetRef:name: springboot-acitriggers:- type: cpumetadata:type: Utilizationvalue: "50"

日志与监控

集成Azure Monitor
pom.xml中添加依赖:

<dependency><groupId>com.microsoft.azure</groupId><artifactId>applicationinsights-spring-boot-starter</artifactId><version>2.6.3</version>
</dependency>

配置AI密钥:

azure.application-insights.instrumentation-key=your-instrumentation-key

网络与安全

启用HTTPS
通过Azure Front Door配置SSL终止:

az network front-door create \--resource-group your-resource-group \--name springboot-frontdoor \--accepted-protocols Https \--backend-address your-aci-dns.azurecontainer.io

多容器部署

Sidecar模式(App + Redis)
使用YAML定义多容器组:

location: eastus
properties:containers:- name: springboot-appproperties:image: your-registry/springboot-appports:- port: 8080- name: redisproperties:image: redis:alpineosType: Linux

以上示例覆盖了从基础部署到高级集成的常见场景,可根据实际需求调整参数或扩展功能。

 基于Spring Cloud Azure的实例

以下是基于Spring Cloud Azure的30个实用示例,涵盖常见场景和功能模块,代码和配置均经过简化,可直接参考或扩展使用。


服务总线(Service Bus)集成

示例1:发送消息到队列

@Service
public class QueueSender {@Autowiredprivate ServiceBusSenderClient senderClient;public void send(String message) {senderClient.sendMessage(new ServiceBusMessage(message));}
}

示例2:监听队列消息

@Service
public class QueueListener {@ServiceBusListener(destination = "your-queue-name")public void receive(String message) {System.out.println("Received: " + message);}
}

示例3:发布主题消息

@Service
public class TopicPublisher {@Autowiredprivate ServiceBusSenderClient topicSender;public void publish(String message) {topicSender.sendMessage(new ServiceBusMessage(message));}
}

示例4:订阅主题消息

@Service
public class TopicSubscriber {@ServiceBusListener(topicName = "your-topic",subscriptionName = "your-subscription")public void receive(String message) {System.out.println("Received from topic: " + message);}
}


存储(Storage)操作

示例5:上传Blob文件

@Autowired
private BlobServiceClient blobServiceClient;public void uploadBlob(String containerName, String blobName, String data) {BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(containerName);BlobClient blobClient = containerClient.getBlobClient(blobName);blobClient.upload(BinaryData.fromString(data));
}

示例6:下载Blob文件

public String downloadBlob(String containerName, String blobName) {BlobClient blobClient = blobServiceClient.getBlobContainerClient(containerName).getBlobClient(blobName);return blobClient.downloadContent().toString();
}

示例7:列出容器中的Blobs

public void listBlobs(String containerName) {blobServiceClient.getBlobContainerClient(containerName).listBlobs().forEach(blob -> System.out.println(blob.getName()));
}

示例8:删除Blob文件

public void deleteBlob(String containerName, String blobName) {blobServiceClient.getBlobContainerClient(containerName).getBlobClient(blobName).delete();
}

Key Vault集成

示例9:读取Key Vault密钥

# application.yml
spring:cloud:azure:keyvault:secret:property-sources:- name: key-vaultendpoint: https://your-vault.vault.azure.net

示例10:动态获取密钥值

@Value("${your-secret-name}")
private String secretValue;

示例11:通过SDK访问Key Vault

@Autowired
private SecretClient secretClient;public String getSecret(String secretName) {return secretClient.getSecret(secretName).getValue();
}

Cosmos DB集成

示例12:配置Cosmos DB连接

spring:cloud:azure:cosmos:endpoint: https://your-account.documents.azure.com:443/key: your-keydatabase: your-db

示例13:定义实体类

@Container(containerName = "users")
public class User {@Idprivate String id;private String name;
}

示例14:CRUD操作

@Repository
public interface UserRepository extends CosmosRepository<User, String> {}

示例15:自定义查询

@Query("SELECT * FROM c WHERE c.name = @name")
List<User> findByName(@Param("name") String name);

Active Directory集成

示例16:OAuth2登录配置

spring:security:oauth2:client:registration:azure:client-id: ${AZURE_CLIENT_ID}client-secret: ${AZURE_CLIENT_SECRET}scope: openid,profile,emailprovider:azure:issuer-uri: https://login.microsoftonline.com/${AZURE_TENANT_ID}/v2.0

示例17:获取用户信息

@GetMapping("/me")
public Map<String, Object> userInfo(@AuthenticationPrincipal OAuth2User user) {return user.getAttributes();
}

其他集成示例

示例18:发送事件到Event Grid

@Autowired
private EventGridPublisherClient eventGridPublisherClient;public void sendEvent(String eventData) {eventGridPublisherClient.sendEvent(new EventGridEvent("example-event","Example.EventType",BinaryData.fromString(eventData),"1.0"));
}

示例19:监控指标发布

@Autowired
private MeterRegistry meterRegistry;public void trackMetric() {meterRegistry.counter("custom.metric").increment();
}

示例20:配置中心集成

spring:cloud:azure:appconfiguration:stores:- endpoint: https://your-config.azconfig.io

以上示例覆盖了Spring Cloud Azure的主要功能模块,实际使用时需替换占位符(如连接字符串、资源名称等)并添加相关依赖。完整代码可参考Spring Cloud Azure官方文档。

使用Spring Boot部署到Google Cloud Run的示例

Spring Boot与Google Cloud Run结合可以快速部署可扩展的无服务器应用。以下是常见场景的示例分类和关键实现方法:

基础部署示例

http://www.xdnf.cn/news/16588.html

相关文章:

  • FFmpeg——参数详解
  • 墨者:通过手工解决SQL手工注入漏洞测试(MongoDB数据库)
  • C++学习(线程相关)
  • 负载均衡Haproxy
  • SABR-Net
  • uniapp input 聚焦时键盘弹起滚动到对应的部分
  • iOS安全和逆向系列教程 第21篇:iOS应用加密与混淆技术深度剖析
  • Java面试宝典:MySQL性能优化
  • 用 ESP32 和 LCD 轻松显示植物湿度
  • 第十八章:AI的“通感”:揭秘图、文、音的共同语言——CLIP模型
  • 系统整理Python的循环语句和常用方法
  • Keil MDK 嵌入式开发问题:Error: L6218E: Undefined symbol HAL_TIM_PWM_ConfigChannel
  • GIt学习——分布式版本控制工具
  • 设计模式(八)结构型:桥接模式详解
  • 设计模式(七)结构型:适配器模式详解
  • 【网络协议安全】任务15:DHCP与FTP服务全配置
  • 安装Selenium⾃动化
  • PiscCode使用OpenCV实现漂浮方块特效
  • 三种常用的抗锯齿
  • Java大数据面试实战:Hadoop生态与分布式计算
  • esp32s3创建rust工程 window成功mac
  • 结构化文本文档的内容抽取与版本重构策略
  • net8.0一键创建支持(Orm-Sqlite-MySql-SqlServer)
  • 【最新最完整】SpringAI-1.0.0开发MCP Server,搭建MCP Client 实战笔记(进阶+详细+完整代码)
  • Map(HashMap、LinkedHashMap、TreeMap)双列集合
  • 【机器学习深度学习】LLaMAFactory评估数据与评估参数解析
  • 《频率之光:危机降临》
  • 下载 | Win11 官方精简版,系统占用空间极少!(7月更新、Win 11 IoT物联网 LTSC版、适合老电脑安装使用)
  • 进度条制作--Linux知识的小应用
  • RabbiteMQ安装-ubuntu