【发布时间】:2015-05-06 16:06:57
【问题描述】:
刚开始使用 Go 并希望创建一个简单的 Web API。我正在研究使用 Gorilla mux (http://www.gorillatoolkit.org/pkg/mux) 来处理 Web 请求。
我不确定如何最好地使用 Go 的并发选项来处理请求。我是否在某处读到 main 函数实际上是一个 goroutine,或者我应该在收到每个请求时将它们分派给一个 goroutine?如果我“走远了”,请道歉。
【问题讨论】:
-
您实际上并不需要 Web 服务的例程。库本身已经能够单独处理请求。您只需担心处理调用的效率如何,而库将处理其余的。整个
net机制大多已经被设计成这样工作了。这就是为什么 Go 如此出色的主要原因,它提供了开箱即用的出色功能。 -
谢谢 - 但我假设如果在处理程序中我需要从数据库中获取数据,那么这可以/应该通过 goroutine 完成?
-
没有更好的 mysql 库(或任何其他流行的库)也通过相同的逻辑处理它们的调用。在使用 SQlite3 等库时,您不需要像在 Objective-C/C/C++ 中习惯的那样启动高级队列。再说一次;只关注代码的简洁性。这些图书馆已经很棒了:D
-
哇——听起来好得令人难以置信,哈哈
-
是的!我正在通过我 5 岁的 macbook pro 上的 tiedot 数据库发送数以万计的请求。无论您来自哪种语言,这都是一种解脱。当您的文件甚至不到 200 行长时,您几乎无法相信您的代码已经完成。这就是我爱上 Go 的原因 :) 不用担心线程或开销。在 Go 中调整也非常容易,而在其他语言中,后期优化主要是 *ss 中最大的痛苦。
标签: go