在Java Google App Engine中,您可以启用“并发请求/线程安全”模式:https://developers.google.com/appengine/docs/java/config/appconfig#Using_Concurrent_Requests
执行此操作的唯一原因是,Google服务器需要启动较少的应用实例来提供给定数量的请求,因此可能为您节省资金。当然这样做也意味着你必须编写线程安全的代码。
所以有趣的问题是:这会节省多少钱?有没有人试图在一些基准配置/应用程序功能/负载下测量它?
答案 0 :(得分:2)
这实际上取决于您的代码:
在单一请求模式下,您可以轻松计算每秒请求数:如果请求平均需要100毫秒才能完成,那么一个实例将能够每秒执行10个请求。
在并发请求模式下,这取决于两个因素:
一个。您正在使用的实例类型 - AFAIK它们都是相同的,您只需获得不同数量的内核。更多核心意味着更高的并发性能。
B中。请求正在执行的CPU绑定代码与IO绑定代码的比率。如果您的代码更多地受IO限制(=等待数据存储区或其他外部服务),那么CPU将能够并行运行更多内容。
在我的应用程序中,我在基本实例上每个请求看到15-20 rps,200ms,所以我可以说单请求和多请求模式之间的因素大约是3-4。