总体方案–测试驱动
项目背景
该项目为房地产开发商开盘时,电子化的选房(抢房)系统。用于替换传统的线下排队选房,其存在客户体验差,不够公开公平等问题。该项目在大量的开发商中有广泛的需求。 其中的”抢购场景”在大量其他业务中也有广泛应用。同时,该项目对系统正确性,稳定性,大流量处理能力也有较高的要求。
测试方案的设计
- 性能测试方案: JMeter, 2万并发, 4万TPS+, 同时操作。一台JMeter线程数为2000, 故设定20台JMeter集群。
- 可用性测试方案: 在性能测试的阶段,通过kill -9 掉某个微服务的单个实例,kill网关等验证可用性。
通过Docker部署来实现部署的快速伸缩
- Docker部署很快
- Docker简介 see
- Docker-machine (与ansible功能相近,但更简单)
- Docker集群
- Docker的私有repository 2 网关的伸缩-nginx 3 数据层的伸缩,水平伸缩(redis集群)
#关于部署伸缩有趣的结论
- 数据库的性能要先优化,不然数据库性能一定是先成为瓶颈的。
- Zuul网关100线程并发时,就会出现异常了。我们的edge-Service 2万网关仍然不会出错。
- Edge-Service有默认的限流动作,这个限流动作,可以通过多个edge-service来改善。
- 2万并发,4W TPS,一个edge-service性能就能达标,不需要再排脂nginx.
- 重试配置对可用性提高立杆见影。