我有一个用Spring编写的应用程序,它能够根据带有Query参数提交的某些过滤器返回带有实时数据的csv文件。如果筛选器选择了大量数据,则请求将花费更长的时间,甚至不是更快。
我对快速的请求没有任何问题,但是随着请求开始查询更多数据,机会增加了,获得504超时。
到目前为止很容易:)
现在问题开始变得怪异:超时是在比成功的最长请求花费的时间少的几秒钟内发出的-有时只需要5秒即可收到超时,有时我会在20秒后收到,但是再也不需要超过50秒。 ELB空闲连接超时设置为高值(3000秒),并且在本地启动时,该应用程序根本没有时间限制(尝试了超过1分钟的请求)
当我查看ELB访问日志时,没有看到选择任何目标:
2019-08-09T11:38:29.537653Z <elb-id> 123.45.67.89:12345 - -1 -1 -1 504 0 0 0 "GET https://domain:443/path/download?startDate=2019-07-10T00:00:00&endDate=2019-08-09T23:59:59 HTTP/1.1" "PostmanRuntime/7.15.2" <id> TLSv1.2
2019-08-09T11:38:59.559579Z <elb-id> 123.45.67.89:12345 10.0.1.215:32187 0.00006 4.954557 0.000056 200 200 0 2936873 "GET https://domain:443/path/download?startDate=2019-08-08T00:00:00&endDate=2019-08-09T23:59:59 HTTP/1.1" "PostmanRuntime/7.15.2" <id> TLSv1.2
所有这些对我来说绝对没有意义。
应用程序本身部署在ec2实例上运行的自我管理kubernetes集群的docker映像中