我是一名新的 Go 程序员,来自 Web 应用程序和服务开发领域。抱歉,这是一个herp de-derp问题,但我在谷歌上搜索答案没有找到任何东西。此外,这是边缘服务器故障领域,但由于我对 API/编程接口更感兴趣,所以我在这里询问。
我使用net/http包的内置 Web 服务器编写了一个小型 Go 程序。我正准备部署到生产环境,但我对模型 go Go 的 web-server 的过程以及我应该如何部署有点不清楚。
具体来说——在我习惯的环境(PHP、Ruby、Python)中,我们的应用程序前面有一个 Web 服务器(Apache、Nginx 等),我们将这些 Web 服务器配置为使用一定数量的工作进程/线程,并配置每个线程应处理多少个单独的 HTTP(S) 连接。
我无法找到有关 Go 的 Web 服务器如何处理此问题的信息,或有关如何为 Go Web 服务器扩展/计划扩展的实用信息。
ie -- 如果我有一个简单的程序正在运行,准备好处理一个 HTTP 请求
func main() {
http.HandleFunc("/", processRequest)
http.ListenAndServe(":8000", nil)
}
HandleFunc一次尝试处理多少个连接?或者它会在连接打开时开始阻塞,并且只有在连接关闭后才提供下一个连接?
还是我应该不担心这个并将所有内容都塞进常规程序中?但是如果我这样做了,我如何防止系统被太多的执行线程阻塞?
我基本上是在尝试
了解go web server的进程模式
找到 go 的内置功能来调整它,和/或人们正在使用的任何标准包
就像我说的,我很新,所以如果我完全错过了这个情节,请告诉我!
哆啦的时光机
慕神8447489
相关分类