当前位置: 首页 > 面试题库 >

Go如何处理Google App Engine上的并发请求

谭繁
2023-03-14
问题内容

我对Go如何处理Google App Engine上的并发请求感到困惑。所以我希望有人可以提供一些清晰度。

这是我收集的事实:

1.Goroutine被多路复用到多个OS线程上,因此,如果一个应阻塞,例如在等待I / O时,其他将继续运行。

  1. [[App Engine]的并发限制为10个[通过每个运行时的并发线程限制来实施]。

如果Go在App Engine上是单线程的,则第3点没有意义。剩下的1和2。如果Go on App Engine是单线程的,并且要求线程在阻止I /
O时继续执行,那么看来App Engine Go实例将在等待I / O时阻止所有goroutine。

这样对吗?如果不是,那么Go的并发在App Engine上如何真正起作用?

帮助量化事物。如果我要保持连接打开30秒钟。单个AE Go实例如何维护并发连接?

谢谢。

编辑:这是功能请求,它将允许Go
Instance处理超过10个并发请求允许每个实例的并发请求的可配置限制。请加注星标。


问题答案:

我一直在寻找答案,并且偶然发现了这个问题,但最终还是找到了关于此事的更多官方文档。根据Andrew Gerrand和Johan
Euphrosine
的帖子,可以对此进行显式配置。

从该帖子:

这会将应用程序的每个实例配置为最多可同时处理100个请求(默认值为10)。您可以将Go实例配置为最多服务500个并发请求。



 类似资料:
  • 有一个场景,1000个请求要求redis获取名为goods_stock的密钥,同时在redis中设置该密钥的vaule等于goods_stocks-1,redis服务器如何处理这些请求?它是否处理默认队列,就像每个请求都是块请求一样?

  • 问题内容: 我有一个关于单例bean如何详细处理并发请求的问题。 我想要有关单例bean如何处理并发请求以及系统处理器如何看到这些请求的完整详细信息。 我已经研究了有关在线处理系统处理器中并发请求的问题。他们说处理器本身有一个调度程序,调度程序将决定处理哪个请求。 好的。如果假设我有多个核心处理器,那么调度程序如何处理并发请求? 谁能向我解释有关单例bean如何为JVM和系统中的并发请求提供服务的

  • 并发请求处理 我创建了一个服务器,并使用s.listenandserve()来处理请求。据我所知,这些请求是同时送达的。我使用一个简单的处理程序来检查它: 我看到,如果我发送了几个请求,我将看到所有的“1”出现,只有在一秒钟后所有的“2”出现。但是如果删除Hibernate行,我会看到程序在完成前一个请求之前从不启动请求(输出为1 2 1 2 1 2...)。所以我不明白,如果它们是并发的还是不是

  • 问题内容: 假设我有某种游戏。我有一个buyItem函数,如下所示: 如果我对该路由进行垃圾邮件处理,直到扣除用户余额(第二次查询),则用户余额仍为正。 我尝试过的 问题是将在第一〜5项要求。因此,这也不起作用。 我们如何处理这种情况?如果重要的话,我正在使用Sails.JS框架。 问题答案: 通过该方法,Sails 1.0现在具有完整的事务支持。例: 更新资料 正如一些评论者所指出的,启用连接池

  • 问题内容: 我正在几个平台上尝试并发请求处理。 实验的目的是对某些选定技术的能力范围进行 广泛的 测量。 我成立了一个Linux VM我的机器上有一个基本的围棋http服务器(香草中的默认包)。然后,服务器将计算 fasta 算法的修改版本,该版本将线程和进程限制为1,并返回结果。N设置为100000。该算法运行大约2秒钟。我在Google App Engine项目上使用了 相同的 算法和逻辑。

  • 本文向大家介绍Go语言如何并发超时处理详解,包括了Go语言如何并发超时处理详解的使用技巧和注意事项,需要的朋友参考一下 实现原理: 并发一个函数,等待1s后向timeout写入数据,在select中如果1s之内有数据向其他channel写入则会顺利执行,如果没有,这是timeout写入了数据,则我们知道超时了。 实现代码: 总结 以上就是这篇文章的全部内容,希望对大家的学习或者工作带来一定的帮助,