基于100个请求 地区:southamerica-east1
在xxx.appspot.com/api/v1/ping执行GET时,平均响应时间为+/- 50 ms。
Example: Load time: 83 ms
激活dispach.yaml(gcloud app deploy dispatch.yaml
)并使用新网址xxx.mydomain.com/api/v1/ping执行请求时,平均响应时间为750毫秒。
Example Load time: 589 ms
dispatch.yaml
dispatch:
- url: "*/api/*"
service: my-service
我在服务器上使用spring boot。关注app.yaml
service: my-service
runtime: java
env: flex
threadsafe: true
runtime_config: # Optional
jdk: openjdk8
handlers:
- url: /api/*
script: this field is required, but ignored
manual_scaling:
instances: 1
resources:
cpu: 2
memory_gb: 2.3
如何改善响应时间?
我是否正确使用调度将我的请求与我的域名相关联?
curl -w" @ curl-format.txt" -o ./ -s http://my.domnai.com/
time_namelookup: 0,253
time_connect: 0,328
time_appconnect: 0,000
time_pretransfer: 0,328
time_redirect: 0,000
time_starttransfer: 1,713
----------
time_total: 1,714
curl -w" @ curl-format.txt" -o ./ -s http://my-app.appspot.com/
time_namelookup: 0,253
time_connect: 0,277
time_appconnect: 0,000
time_pretransfer: 0,277
time_redirect: 0,000
time_starttransfer: 0,554
----------
time_total: 0,554
答案 0 :(得分:1)
使用自定义域与使用调度文件非常正交。
当App Engine收到请求时,首先需要确定哪个应用程序是发往的请求。默认情况下,它只使用请求的域名,无论是appspot.com
还是自定义域。来自Requests and domains:
App Engine确定传入的请求是针对您的 应用程序使用请求的域名。
在做出此决定时,它还根据Routing via URL中描述的规则确定应用程序中要发送请求的特定服务版本。
与使用appspot.com
相比,使用自定义域的请求可能需要一些额外的处理(我对此不确定),这可以解释响应时间的一些增加。这可以通过测量来确认。但如果是这样,我认为你无能为力。
请注意,调度文件不需要来做出上述路由决策。即使您使用自定义域名。事实上,在Adding a custom domain for your application中的任何地方都没有对调度文件的引用。但是如果想要改变这些决定,那么你需要使用一个调度文件。
调度文件允许在做出路由决策时考虑请求路径(除请求域名外)。
使用调度文件将增加响应时间,因为必须将请求域和路径与调度文件中的每个规则进行顺序比较,直到找到匹配项。如果未找到匹配项,则会将请求发送到配置为接收流量的应用程序default
服务的版本。您可以通过在规则文件中提前放置规则来略微减少特定服务的处理时间,但这就是您可以做的所有事情。