You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法定位Kubernetes性能瓶颈:单体与微服务架构测试异常

单体与微服务架构对比压测问题

我正在开展单体与微服务架构对比项目,已基于SpringBoot+H2数据库构建两款功能正常的应用,但在Kubernetes环境中遭遇性能瓶颈。原本计划用Locust压测验证单体架构扩展性弱于微服务架构,实际测试中出现以下异常:

  • 在IntelliJ本地运行应用时,Locust可达到2000 RPS(每秒请求数),排除Locust自身瓶颈;
  • 在Docker Desktop中运行时,RPS稳定在350左右,无报错;
  • 在Windows环境的minikube集群中运行时,无论单体还是微服务应用,RPS始终卡在122,随后触发ConnectionRefusedError(10061, '[WinError 10061]')及RetriesExceeded('http://localhost:63254/account/1', 1, original=timed out)错误。即便将Pod数量扩容至10,RPS仍无变化,无法验证两种架构的扩展性差异。已尝试提升minikube资源至15GB内存、6核CPU,问题依旧。

DockerFile

FROM openjdk:17-jdk-slim as builder
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract

FROM openjdk:17-jdk-slim
COPY --from=builder dependencies/ ./
COPY --from=builder spring-boot-loader/ ./
#COPY --from=builder internal-dependencies/ ./
COPY --from=builder snapshot-dependencies/ ./
COPY --from=builder application/ ./
ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]

Deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: monolit-app-deployment   # 修改部署名为monolit-app-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: monolit-app   # 修改应用名为monolit-app
  template:
    metadata:
      labels:
        app: monolit-app   # 修改应用名为monolit-app
    spec:
      containers:
        - name: monolit-cnt   # 修改容器名为monolit-cnt
          image: sonntdav00/test:1.0
          ports:
            - containerPort: 8080
#          resources:
#            requests:
#              cpu: "6  # 500毫核CPU(0.5核)
#              memory: "6Gi"  # 512兆字节
#            limits:
#              cpu: "6"  # 1核CPU
#              memory: "6Gi"  # 1千兆字节
          # 如需添加环境变量请取消注释
          # env:
          #   - name: ENV_VARIABLE_NAME
          #     value: ENV_VARIABLE_VALUE
          # 如需添加其他配置或资源限制请取消注释


---
apiVersion: v1
kind: Service
metadata:
  name: monolit-app-service   # 修改服务名为monolit-app-service
spec:
  selector:
    app: monolit-app   # 修改应用名为monolit-app
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
  #      nodePort: 32000 # 在此指定所需端口
  type: NodePort

Locust单体测试结果

Locust单体测试结果

内容的提问来源于stack exchange,提问作者DavidS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:25:58