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。