我觉得同时运行多个Ruby/Python网络服务实例像个黑客行为
是我一个人这样觉得,还是说为了扩展功能而不得不在一个服务器上运行多个网络服务器实例,这种做法有点像是个小窍门?
我这样想是不是错了?
澄清一下
我指的是我看到有人在一台服务器上运行多个网络服务实例的情况。我并不是在说一组服务器的事情。
6 个回答
1
没有具体的细节,很难理解你想表达的意思。不过,可以说你可能没有用对方法来解决你的问题。
有时候,分开多个独立的实例会更好。有时候,你的Python服务其实更适合放在一个Apache实例后面(使用mod_wsgi),这样可能会用到多个进程。我对Ruby不太了解,所以没法给出意见。
总之,如果你想让你的服务具备扩展性,那么具体的做法会很依赖于更多的细节。你是想让服务变得更强大,还是想让它能处理更多的请求?你的操作系统是什么?有没有可用或可以安装的服务器软件?这个服务本身是否容易并行处理?它有多依赖数据库?数据库是怎么部署的?
4
现在我们越来越倾向于使用更多的处理核心,而不是单纯追求更快的处理器。为了能够处理更多的任务,你需要同时运行更多的实例。
所以,我觉得你的看法是错的。
这并不是说可以随便写代码,反正可以通过增加实例来解决问题,这样的想法真的不太聪明。
4
其实并不是这样,早在多核CPU普及之前,人们就已经在一群服务器上运行多个前端了。
所以,早在我们觉得在一台机器上运行多个线程很有优势之前,就已经有了支持在多个前端之间正确管理会话的基础设施。
实际上,使用异步风格的前端在相同的硬件上能比多线程的方法表现得更好,所以我认为不运行多个实例而选择一个多线程的“大怪物”其实是一种变通的做法。