项目背景与目标:
进一步提升和优化用户体验,降低机器负载成本且后台服务支持容器动态部署与快速扩容,增加数据通信安全性。
具体技术方案:
ios.andorid 移动端 < -- > grpc.service.gw grpc=网关
|
demo1.service.gw, demo2.service.gw -> demo1.service
大白话:
移动端 根据设备 与grpc.service.gw 建立 长链接 -- 高速公路
用户注册/查询/登录 业务请求 -- 汽车
性能压测关注点:
1.grpc 长链接 支持 最大数,单CPU支持最大/最优链接数;
2.grpc 长链接 稳定性;
3.具体业务TPS与响应时间;
4.具体业务单CPU支持最大/最优TPS。
项目业务数据背景:
1.设备用户数 10W + ;
2.业务请求包含http,grpc,nettey接口;
3.http统计有 普罗米修斯监控,grpc与nettey接口响应需要自己统计;
4.设备用户与grpc长链接 1: 1 。
压测工程技术点:
可以划分两个过程
1. 针对grpc.service.gw grpc网关压测;
关键点:grpc 初始化链接, grpc心跳包检测
2. 在1点基础上,进行业务压测。
关键点:需要动态维护10W+ 有效grpc.client -- 类似与压测点参数话部分
关键点:动态的业务请求控制与有效请求与业务数据统计
整体难点:
10W+ 长链接多线程管理且压测工具性能
解决思路:
master locust python
salve boomer goland
使用goland语言天生对多线程优势,和对grpc\nettey更灵活对扩展性实现salve端代码,使用locust 主从模式与数据统计,后期不排查需要扩展locust统计图表功能。