一、测试准备
1.程序准备
1、java api程序,springboot restfull api;
2、openresty(nginx)程序,2020-09-21最新版本;
3、gateway(springcloud gateway)springcloud:Hoxton.RELEASE,spring-boot-starter-parent:2.3.1.RELEASE;
4、openresty-gateway;
5、测试客户端(go程序),go 1.15;
2.网络环境
以下测试,均在本地机器进行。
1、java api程序,使用IDE(idea)运行;
2、openresty原生运行+docker中;
3、gateway(springcloud gateway),使用IDE(idea)运行;
4、测试客户端(go程序),使用IDE(goland)运行;
3.测试方式
测试程序,分别按单线程运行、多线程并发执行;
二、单线程方式
1.单线程:1000次请求,延时:0毫秒
单线程: 1000次请求,延时:0毫秒
API 总计(毫秒): 690.82 ,平均耗时(毫秒): 0.69 ,url: http://172.16.4.219:9000/testhello?delay=0
openresty->API 总计(毫秒): 875.71 ,平均耗时(毫秒): 0.88 ,url: http://172.16.4.219:81/testhello?delay=0
docker-openresty->API 总计(毫秒): 2732.03 ,平均耗时(毫秒): 2.73 ,url: http://172.16.4.219:82/testhello?delay=0
gateway->API 总计(毫秒): 1369.94 ,平均耗时(毫秒): 1.37 ,url: http://172.16.4.219:8088/testhello?delay=0
openresty-gateway->API 总计(毫秒): 2253.75 ,平均耗时(毫秒): 2.25 ,url: http://172.16.4.219:81/info?delay=0
docker-openresty->gateway->API 总计(毫秒): 4020.83 ,平均耗时(毫秒): 4.02 ,url: http://172.16.4.219:82/info?delay=0
2.单线程:1000次请求,延时:10毫秒
单线程: 1000次请求,延时:10毫秒
API 总计(毫秒): 12435.07 ,平均耗时(毫秒): 12.44 ,url: http://172.16.4.219:9000/testhello?delay=10
openresty->API 总计(毫秒): 12787.79 ,平均耗时(毫秒): 12.79 ,url: http://172.16.4.219:81/testhello?delay=10
docker-openresty->API 总计(毫秒): 15290.16 ,平均耗时(毫秒): 15.29 ,url: http://172.16.4.219:82/testhello?delay=10
gateway->API 总计(毫秒): 13413.69 ,平均耗时(毫秒): 13.41 ,url: http://172.16.4.219:8088/testhello?delay=10
openresty-gateway->API 总计(毫秒): 14135.69 ,平均耗时(毫秒): 14.14 ,url: http://172.16.4.219:81/info?delay=10
docker-openresty->gateway->API 总计(毫秒): 16905.93 ,平均耗时(毫秒): 16.91 ,url: http://172.16.4.219:82/info?delay=10
3. 单线程:1000次请求,延时:100毫秒
单线程: 1000次请求,延时:100毫秒
API 总计(毫秒): 103827.9 ,平均耗时(毫秒): 103.83 ,url: http://172.16.4.219:9000/testhello?delay=100
openresty->API 总计(毫秒): 104321.18 ,平均耗时(毫秒): 104.32 ,url: http://172.16.4.219:81/testhello?delay=100
docker-openresty->API 总计(毫秒): 107537.79 ,平均耗时(毫秒): 107.54 ,url: http://172.16.4.219:82/testhello?delay=100
gateway->API 总计(毫秒): 105019.33 ,平均耗时(毫秒): 105.02 ,url: http://172.16.4.219:8088/testhello?delay=100
openresty-gateway->API 总计(毫秒): 105711.48 ,平均耗时(毫秒): 105.71 ,url: http://172.16.4.219:81/info?delay=100
docker-openresty->gateway->API 总计(毫秒): 109240.09 ,平均耗时(毫秒): 109.24 ,url: http://172.16.4.219:82/info?delay=100
三、多线程方式(并发模式)
1. 多线程:1000次请求,延时:0毫秒
多线程: 1000次请求,延时:0毫秒
API 总计(毫秒): 492.44 ,平均耗时(毫秒): 0.49 ,url: http://172.16.4.219:9000/testhello?delay=0
openresty->API 总计(毫秒): 569.23 ,平均耗时(毫秒): 0.57 ,url: http://172.16.4.219:81/testhello?delay=0
docker-openresty->API 总计(毫秒): 13053.47 ,平均耗时(毫秒): 13.05 ,url: http://172.16.4.219:82/testhello?delay=0
gateway->API 总计(毫秒): 1123.98 ,平均耗时(毫秒): 1.12 ,url: http://172.16.4.219:8088/testhello?delay=0
openresty-gateway->API 总计(毫秒): 1382.02 ,平均耗时(毫秒): 1.38 ,url: http://172.16.4.219:81/info?delay=0
docker-openresty->gateway->API 总计(毫秒): 16284.98 ,平均耗时(毫秒): 16.28 ,url: http://172.16.4.219:82/info?delay=0
2. 多线程:1000次请求,延时:10毫秒
多线程: 1000次请求,延时:10毫秒
API 总计(毫秒): 11788.78 ,平均耗时(毫秒): 11.79 ,url: http://172.16.4.219:9000/testhello?delay=10
openresty->API 总计(毫秒): 11843.45 ,平均耗时(毫秒): 11.84 ,url: http://172.16.4.219:81/testhello?delay=10
docker-openresty->API 总计(毫秒): 38105.32 ,平均耗时(毫秒): 38.11 ,url: http://172.16.4.219:82/testhello?delay=10
gateway->API 总计(毫秒): 12718.18 ,平均耗时(毫秒): 12.72 ,url: http://172.16.4.219:8088/testhello?delay=10
openresty-gateway->API 总计(毫秒): 12993.85 ,平均耗时(毫秒): 12.99 ,url: http://172.16.4.219:81/info?delay=10
docker-openresty->gateway->API 总计(毫秒): 136980.47 ,平均耗时(毫秒): 136.98 ,url: http://172.16.4.219:82/info?delay=10
3.多线程:1000次请求,延时:100毫秒
多线程: 1000次请求,延时:100毫秒
API 总计(毫秒): 104267.94 ,平均耗时(毫秒): 104.27 ,url: http://172.16.4.219:9000/testhello?delay=100
openresty->API 总计(毫秒): 104248.91 ,平均耗时(毫秒): 104.25 ,url: http://172.16.4.219:81/testhello?delay=100
docker-openresty->API 总计(毫秒): 128519.97 ,平均耗时(毫秒): 128.52 ,url: http://172.16.4.219:82/testhello?delay=100
gateway->API 总计(毫秒): 105339.96 ,平均耗时(毫秒): 105.34 ,url: http://172.16.4.219:8088/testhello?delay=100
openresty-gateway->API 总计(毫秒): 105280.04 ,平均耗时(毫秒): 105.28 ,url: http://172.16.4.219:81/info?delay=100
docker-openresty->gateway->API 总计(毫秒): 185242.13 ,平均耗时(毫秒): 185.24 ,url: http://172.16.4.219:82/info?delay=100
四、总计
总结:统计的结果中,关键数据是平均耗时。可以看出:
1、openresty和gateway,对api的访问延迟大约在3~5毫秒,在可接受范围;
2、docker默认网络环境对访问延迟,不太稳定,单线程的情况在10毫秒以内,多线程情况下延迟明显从28毫秒到85毫秒,甚至于更多。如果生产中,openresty建议使用--net=host网络模式。
网友评论