go webserver与Tomcat,Apache相比,长期运行稳定性如何?

时间:2012-04-13 06:54:34

标签: php ruby apache tomcat go

我一直在考虑而不是使用:

  • Tomcat的
  • Apache
  • 轻量级网络服务器
  • PHP
  • 红宝石
  • JS​​P

为什么不将我的项目切换为Go语言。因为我有:

  • 内置网络服务器
  • 我甚至不需要依赖PHP,Ruby,JSP
  • Go解决跨平台问题,例如:在FreeBSD,Linux,Solaris(Windows,Mac,Android,Tizen)上运行
  • 也不是Apache也不是Tomcat,也不是其他网络服务器维护
  • 浏览器的速度将比其他网络服务器脚本语言快得多。

但我担心的一件事是,与其他网络服务器相比,Go网络服务器的稳定性。

之前有没有人这样做过,还是我一个人为生产版本构建这样的项目?

3 个答案:

答案 0 :(得分:20)

没有稳定性问题。

我有几个网络服务器100%运行了几个月,每月提供大约一百万个查询没有任何问题(主要是json,通过GET,POST和websockets)。

他们使用的是64位ubuntu服务器,但我猜你会遇到很多关于32位错误的问题,尤其是对于一个网络服务器。

如果没有特殊原因,请不要使用前端:只需使用Go即可轻松制作完整的Web应用程序。

你将远离孤独。在我看来,Go特别适合构建长时间运行的服务器。 Goroutines和渠道使得处理用户请求和长期任务变得非常容易(或者,例如,在您回答http查询后对用户查询进行后处理,这在php中并不容易,并且在java中的LOC太多了如果你想做得好的话。)

答案 1 :(得分:2)

为什么不使用Build in Webserver并设置像Varnish这样的反向代理,或者让Nginx充当代理?

http://wiki.nginx.org/ReverseProxyCachingExample

答案 2 :(得分:1)

使用Nginx作为前端,并确保使用的是64位版本的Go。 32位版本存在严重的稳定性问题,这对于任何长期运行的过程来说都是显而易见的。