springboot
横向扩展方案
横向扩展方案
- 基于
kubernetes
运行多个springboot pod
即可实现横向扩展效果
实验证明
实验说明
此实验基于kubernetes
使用ClusterIP
服务负载均衡实现多个springboot
实例横向扩展。
实验配置
k8s master
虚拟机centOS8-stream
,4核(无限制CPU
)+8G
内存- 3台
k8s worker
虚拟机centOS8-stream
,2核(最高4400MHz CPU
频率)+4G
内存 - 1台
k8s worker
虚拟机centOS8-stream
(专门用于运行springboot
辅助性能测试目标,注意:k8s
中每个springboot pod CPU
被限制为500m
毫核),8核(无限制CPU
)+8G
内存
实验结果
- 1个
springboot pod
并且CPU
被限制为500m
毫核时,QPS
约为1800次/s
- 3个
springboot pod
并且CPU
分别被限制为500m
毫核时,请求被均衡分发到多个springboot pod
中,QPS
约为5400次/s
实验结论
- 成功模拟横向扩展
springboot
会提升QPS
,并且QPS
提升和增加的springboot pod
个数成正比。
实验步骤
搭建基于
kubernetes
的springboot
性能测试协助目标并修改其CPU
资源限制为500m
毫核,详细搭建步骤请参考 链接yamlcontainers: - name: demo-perf-assistant-target-springboot image: registry.cn-hangzhou.aliyuncs.com/future-public/demo-perf-assistant-target-springboot env: - name: "JAVA_OPTS" value: "-Xmx1536m -Xms1536m" resources: limits: cpu: 500m imagePullPolicy: Always
搭建并配置
jmeter
分布式压测集群,详细搭建和配置步骤请参考 链接,注意:修改jmeter.jmx
中的host
为target-openresty
为target-springboot
。